Boots the real Nest app (Test.createTestingModule + AppModule) against a
real Postgres — no mocked DB or guards anywhere in this suite. Uses SWC
(unplugin-swc) instead of Vite's default esbuild transform because
esbuild doesn't implement emitDecoratorMetadata, which silently breaks
NestJS's constructor DI (every provider resolves to undefined).
Covers:
- auth.spec.ts: anti-enumeration login message, refresh-token rotation,
replay-detection revoking the whole session chain, idempotent logout
(ADR-0003).
- role-weight.spec.ts: invalid role_key on invite returns 400 not 500
(regression guard), lower-weight actor forbidden from assigning a
heavier role even when holding users:edit (ADR-0004).
- companies.spec.ts: CNPJ digit-check validation (reject/accept).
- mass-assignment.spec.ts: forbidNonWhitelisted actually rejects
unexpected fields on companies/products.
- reseller-assignment.spec.ts: assign-user always targets the URL's
:id, never a body resellerId (regression guard for commit 8d108e0);
unassign-user clears the assignment.
All fixtures are qa-test-/qa_ tagged and cleaned up (deactivated where
no DELETE endpoint exists, deleted where one does) — verified no
pre-existing seed data (super_admin, Handix Telecom LTDA, Handix revenda
própria) was touched.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
23 lines
426 B
Plaintext
23 lines
426 B
Plaintext
{
|
|
"$schema": "https://json.schemastore.org/swcrc",
|
|
"sourceMaps": true,
|
|
"jsc": {
|
|
"parser": {
|
|
"syntax": "typescript",
|
|
"decorators": true,
|
|
"dynamicImport": true
|
|
},
|
|
"transform": {
|
|
"legacyDecorator": true,
|
|
"decoratorMetadata": true
|
|
},
|
|
"keepClassNames": true,
|
|
"target": "es2022",
|
|
"loose": false,
|
|
"externalHelpers": false
|
|
},
|
|
"module": {
|
|
"type": "es6"
|
|
}
|
|
}
|