@eqs/testing : la porte, la base jetable, les identités simulées et le cadre en assertions #10

Merged
nicolas-fryder merged 1 commit from feat/testing into main 2026-09-07 07:54:50 +00:00

L'échafaudage que six dépôts avaient copié : check.mjs d'ATLAS devient
eqs check (cinq tâches en parallèle, binaires par process.execPath, sorties
tamponnées dans un ordre fixe, durée par tâche, budget total, sélection vide
refusée, outil absent retiré en le disant), le compose jetable de MCP devient
withTestDatabase (tmpfs, projet eqs-test-*, port libre, sql, reset,
down -v), le harnais hors processus de HQ et le démarrage en processus
d'ATLAS deviennent un seul createTestApp, la sonde d'eqs-homepage devient
probe.

mockAuth() rend les quatre identités du socle sous forme d'en-têtes qui
passent par les vraies fonctions de @eqs/auth : une clé API est hachée et
déposée, un jeton de service est signé par un locataire simulé et vérifié
contre son JWKS. Rien n'est court-circuité — un simulacre qui contourne le
garde donnerait une suite verte contre un garde cassé.

Les huit suites du cadre s'appellent au lieu de se relire : quatre pannes par
frontière réseau, double-soumission, horloge injectée, socket interdite en
unitaire, restauration, migration depuis la version précédente, dérives
.env.example et compose. Chacune rend la liste des problèmes.

runConformance découvre les @eqs/* installés, déduit le profil et délègue
aux harnais des packages de profil plutôt que de refabriquer leur contexte :
deux versions du même contexte finiraient par diverger, et c'est celle qui ne
tourne pas ailleurs qui deviendrait fausse en silence.

73 tests, dont les six contrôles contre un dépôt conforme et un dépôt fautif,
et la base jetable contre un vrai Docker (levée 2,4 s, détruite 1,1 s).

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

L'échafaudage que six dépôts avaient copié : `check.mjs` d'ATLAS devient `eqs check` (cinq tâches en parallèle, binaires par `process.execPath`, sorties tamponnées dans un ordre fixe, durée par tâche, budget total, sélection vide refusée, outil absent retiré en le disant), le compose jetable de MCP devient `withTestDatabase` (tmpfs, projet `eqs-test-*`, port libre, `sql`, `reset`, `down -v`), le harnais hors processus de HQ et le démarrage en processus d'ATLAS deviennent un seul `createTestApp`, la sonde d'eqs-homepage devient `probe`. `mockAuth()` rend les quatre identités du socle sous forme d'en-têtes qui passent par les vraies fonctions de `@eqs/auth` : une clé API est hachée et déposée, un jeton de service est signé par un locataire simulé et vérifié contre son JWKS. Rien n'est court-circuité — un simulacre qui contourne le garde donnerait une suite verte contre un garde cassé. Les huit suites du cadre s'appellent au lieu de se relire : quatre pannes par frontière réseau, double-soumission, horloge injectée, socket interdite en unitaire, restauration, migration depuis la version précédente, dérives `.env.example` et compose. Chacune rend la liste des problèmes. `runConformance` découvre les `@eqs/*` installés, déduit le profil et délègue aux harnais des packages de profil plutôt que de refabriquer leur contexte : deux versions du même contexte finiraient par diverger, et c'est celle qui ne tourne pas ailleurs qui deviendrait fausse en silence. 73 tests, dont les six contrôles contre un dépôt conforme et un dépôt fautif, et la base jetable contre un vrai Docker (levée 2,4 s, détruite 1,1 s). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
L'échafaudage que six dépôts avaient copié : `check.mjs` d'ATLAS devient
`eqs check` (cinq tâches en parallèle, binaires par `process.execPath`, sorties
tamponnées dans un ordre fixe, durée par tâche, budget total, sélection vide
refusée, outil absent retiré en le disant), le compose jetable de MCP devient
`withTestDatabase` (tmpfs, projet `eqs-test-*`, port libre, `sql`, `reset`,
`down -v`), le harnais hors processus de HQ et le démarrage en processus
d'ATLAS deviennent un seul `createTestApp`, la sonde d'eqs-homepage devient
`probe`.

`mockAuth()` rend les quatre identités du socle sous forme d'en-têtes qui
passent par les vraies fonctions de `@eqs/auth` : une clé API est hachée et
déposée, un jeton de service est signé par un locataire simulé et vérifié
contre son JWKS. Rien n'est court-circuité — un simulacre qui contourne le
garde donnerait une suite verte contre un garde cassé.

Les huit suites du cadre s'appellent au lieu de se relire : quatre pannes par
frontière réseau, double-soumission, horloge injectée, socket interdite en
unitaire, restauration, migration depuis la version précédente, dérives
`.env.example` et compose. Chacune rend la liste des problèmes.

`runConformance` découvre les `@eqs/*` installés, déduit le profil et délègue
aux harnais des packages de profil plutôt que de refabriquer leur contexte :
deux versions du même contexte finiraient par diverger, et c'est celle qui ne
tourne pas ailleurs qui deviendrait fausse en silence.

73 tests, dont les six contrôles contre un dépôt conforme et un dépôt fautif,
et la base jetable contre un vrai Docker (levée 2,4 s, détruite 1,1 s).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Infrastructure/eqs-platform!10
No description provided.