<?php
/**
 * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */
use Behat\Behat\Context\Context;

class RateLimitingContext implements Context {
	use BasicStructure;
	use CommandLine;
	use Provisioning;

	/**
	 * @BeforeScenario @RateLimiting
	 */
	public function enableRateLimiting() {
		// Enable rate limiting for the tests.
		// Ratelimiting is disabled by default, so we need to enable it
		$this->runOcc(['config:system:set', 'ratelimit.protection.enabled', '--value', 'true', '--type', 'bool']);
	}

	/**
	 * @AfterScenario @RateLimiting
	 */
	public function disableRateLimiting() {
		// Restore the default rate limiting configuration.
		// Ratelimiting is disabled by default, so we need to disable it
		$this->runOcc(['config:system:set', 'ratelimit.protection.enabled', '--value', 'false', '--type', 'bool']);
	}
}