aa6bbc436e
Une seconde suite e2e, `packages/sdk/e2e/notebook.ts` (`test:e2e:app`), qui pilote `examples/notebook` par le DOM — une page de navigateur par identité — contre le même broker réel. **Pourquoi une seconde suite plutôt qu'un ajout dans la première.** `run.ts` parle à un sac de méthodes sur `window.__sdk` : cela prouve que les fonctions TOURNENT, jamais qu'une application peut s'écrire avec. L'écart a déjà coûté un défaut livré — l'inbox d'un document était verte ici et inutilisable en pratique, parce que le harnais pouvait faire traverser une adresse d'une identité à l'autre par une variable, canal qu'aucune application n'a. Ici, rien ne traverse que ce qui traverse dans la vie : la RÉFÉRENCE d'une note, recopiée d'un écran, et un identifiant tapé dans un champ. Quatre parcours, qui se lisent comme des parcours : - Bob lit la note publique d'Alice depuis sa seule référence — la propriété pour laquelle l'émulation du store public existe, vérifiée bout en bout et sans qu'aucune clé ne circule ; - la note protégée d'Alice reste fermée jusqu'à ce qu'elle la partage — même geste côté Bob, issue opposée, décidée par où la note se trouve ; - Bob laisse un message sur la note d'Alice, et seule Alice le lit — il TROUVE l'adresse depuis la note, personne ne la lui donne ; - la liste de chacun ne contient que ses notes. **Deux étapes quittent `run.ts`** (`documentInboxDeposit`, `capsShareCap`), avec un commentaire disant où elles sont parties : ce sont des parcours, et ils valent plus joués sur deux écrans que sur deux appels d'une même page. Ce qui reste là-bas est ce qu'une application ne fait pas : primitives, caractérisation, régressions de démarrage à froid. **Trois défauts trouvés en écrivant la suite**, tous côté application et invisibles pour le harnais : `connectedUser()` devait être attendu à la connexion (sinon une note qu'on vient de vous partager se lit comme illisible — ce qui ressemble à un problème de droits alors que c'est un problème de moment) ; une réponse périmée restait affichée à côté d'une question fraîche ; et changer de portée ne rafraîchissait pas la liste. L'app affiche désormais la référence de chaque note — ce qu'aucun écran ne montre, aucun utilisateur ne peut le faire circuler. Corrigé au passage : le `.gitignore` pointait encore `packages/client/`, si bien que le commit de renommage a embarqué le profil Playwright de la suite e2e (226 fichiers). Les chemins sont réalignés et le commit précédent a été amendé — rien n'était poussé. 179 tests unitaires, e2e 40/40 (3,2 min) et applicatif 10/10 (0,7 min).
43 lines
1.0 KiB
JSON
43 lines
1.0 KiB
JSON
{
|
|
"name": "@ng-eventually/sdk",
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"description": "SDK-identical wrapper over @ng-org/web + @ng-org/orm with emulated capabilities and inbox. Drop-in; remove at migration.",
|
|
"main": "./src/index.ts",
|
|
"types": "./src/index.ts",
|
|
"exports": {
|
|
".": "./src/index.ts"
|
|
},
|
|
"peerDependencies": {
|
|
"@ng-org/web": "*",
|
|
"@ng-org/orm": "*",
|
|
"@ng-org/shex-orm": "*",
|
|
"@ng-org/alien-deepsignals": "*"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"@ng-org/web": {
|
|
"optional": true
|
|
},
|
|
"@ng-org/orm": {
|
|
"optional": true
|
|
},
|
|
"@ng-org/shex-orm": {
|
|
"optional": true
|
|
},
|
|
"@ng-org/alien-deepsignals": {
|
|
"optional": true
|
|
}
|
|
},
|
|
"devDependencies": {
|
|
"@ng-org/web": "0.1.2-alpha.13",
|
|
"@ng-org/shex-orm": "0.1.2-alpha.8",
|
|
"@ng-org/alien-deepsignals": "0.1.2-alpha.11"
|
|
},
|
|
"scripts": {
|
|
"test": "bun test",
|
|
"test:e2e": "bun run e2e/run.ts",
|
|
"test:e2e:app": "bun run e2e/notebook.ts",
|
|
"test:e2e:reactivity": "bun run e2e/reactivity-doc-subscribe.ts"
|
|
}
|
|
}
|