Add AST cache files for AltchaService, API documentation, and AltchaService tests
- Created JSON representation of AltchaService class and its methods, including imports and relationships. - Added documentation for the Captcha API, detailing endpoints and responses. - Introduced test cases for AltchaService, covering various functionalities and edge cases.
This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Tests\Shared\Captcha;
|
||||
|
||||
use AltchaOrg\Altcha\V1\Altcha;
|
||||
use AltchaOrg\Altcha\V1\Hasher\Algorithm;
|
||||
use App\Config\Repository\SiteConfigRepository;
|
||||
use App\Shared\Captcha\AltchaService;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Cache\Adapter\ArrayAdapter;
|
||||
@@ -15,9 +16,11 @@ class AltchaServiceTest extends TestCase
|
||||
{
|
||||
private const KEY = 'test-hmac-key-please-change';
|
||||
|
||||
private function service(bool $enabled = true, int $maxNumber = 2000, int $expire = 300): AltchaService
|
||||
private function service(bool $enabled = true, int $maxNumber = 2000, int $expire = 300, ?string $override = null): AltchaService
|
||||
{
|
||||
return new AltchaService(self::KEY, $enabled, $maxNumber, $expire, new ArrayAdapter());
|
||||
$configRepo = $this->createStub(SiteConfigRepository::class);
|
||||
$configRepo->method('get')->willReturn($override); // null → fall back to env flag
|
||||
return new AltchaService(self::KEY, $enabled, $maxNumber, $expire, new ArrayAdapter(), $configRepo);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,4 +93,14 @@ class AltchaServiceTest extends TestCase
|
||||
self::assertTrue($this->service(true)->enabled());
|
||||
self::assertFalse($this->service(false)->enabled());
|
||||
}
|
||||
|
||||
public function testAdminOverrideBeatsEnv(): void
|
||||
{
|
||||
// env off ولی override پنل روشن → روشن
|
||||
self::assertTrue($this->service(false, override: '1')->enabled());
|
||||
// env on ولی override پنل خاموش → خاموش
|
||||
self::assertFalse($this->service(true, override: '0')->enabled());
|
||||
// override خالی/null → به env برمیگردد
|
||||
self::assertTrue($this->service(true, override: null)->enabled());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user