Skip to content

Testing

El paquete esta disenado para probar el flujo sin depender de los servicios reales del SRI.

Comandos

bash
composer test
composer stan
composer cs:test
composer rector:test
composer analyze

composer analyze ejecuta CS Fixer en modo check, Rector en dry-run, PHPUnit y PHPStan.

Tests existentes

CarpetaProposito
tests/UnitReglas aisladas por servicio
tests/IntegrationFirma y certificados generados temporalmente
tests/FeatureAPI publica y workflow completo
tests/SupportFakes y factories de pruebas

Probar Sender sin red

Sender permite inyectar un factory SOAP falso:

php
$fakeSoapClient = new FakeSoapClient(
    receptionResponses: [
        receptionResponse('RECIBIDA'),
    ],
    authorizationResponses: [
        authorizationResponse('AUTORIZADO'),
    ],
);

$sender = new Sender(
    config: new SenderConfig(maxAttempts: 1, sendDelay: 0),
    responseParser: new ResponseParser(),
    soapClientFactory: new FakeSoapClientFactory($fakeSoapClient),
    sleeper: new FakeSleeper(),
);

Esto evita llamadas a internet y elimina esperas reales.

Probar Signer sin certificado real

Los tests de integracion generan certificados temporales con TemporaryCertificateFactory.

Para pruebas unitarias de estructura XAdES se puede usar:

  • FakeSignatureEngine
  • FakeClock
  • FakeIdGenerator

Asi se obtienen IDs y fechas deterministicas.

Documentacion

Para validar el sitio:

bash
pnpm docs:build

Para desarrollo local:

bash
pnpm docs:dev

Publicado bajo licencia MIT.