From 95010ddd66b6d66a9911bdc47af8a0427712dcd3 Mon Sep 17 00:00:00 2001 From: Sylvain Duchesne Date: Wed, 8 Jul 2026 14:37:43 +0200 Subject: [PATCH] =?UTF-8?q?test(client):=20couverture=20comportementale=20?= =?UTF-8?q?des=203=20changements=20SDK=20(fake=20d=C3=A9terministe)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les fix récents (anti-fork, open-repo, access-log) n'avaient AUCUN test de comportement dans le domaine de la lib. Ajout de tests DÉTERMINISTES à base de `ng` factice modélisant la condition d'échec (pas de broker réel — le harness e2e réel réhydrate trop vite et ne reproduit pas ces cas). - anti-fork.test.ts : fake avec lag de sync (0 lignes les K premières lectures du record de compte, puis les vraies). Asserte le cœur du fix : compte retrouvé au retry → réutilisé, 0 doc_create (pas de fork) ; compte réellement neuf → 1 seul jeu de docs provisionné, budget de retry prouvé consommé ; idempotence de session ; cas limite « trouvé à la dernière tentative ». - open-repo.test.ts : fake où une requête ancrée rend vide tant que doc_subscribe n'a pas ouvert le repo. Asserte subscribe-avant-read + idempotence (Set des repos ouverts) + no-op si le ng n'a pas doc_subscribe. - access-log.test.ts : off par défaut (silencieux), on via config ET via env NG_EVENTUALLY_ACCESS_LOG, préfixe = identité active (suit setCurrentUser), row-count sur READ. Restaure console.log/env fidèlement. bun test : 91 → 117 pass, 0 fail. tsc --noEmit propre. src/ non touché. Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/client/test/access-log.test.ts | 280 ++++++++++++++++++++++++ packages/client/test/anti-fork.test.ts | 267 ++++++++++++++++++++++ packages/client/test/open-repo.test.ts | 214 ++++++++++++++++++ 3 files changed, 761 insertions(+) create mode 100644 packages/client/test/access-log.test.ts create mode 100644 packages/client/test/anti-fork.test.ts create mode 100644 packages/client/test/open-repo.test.ts diff --git a/packages/client/test/access-log.test.ts b/packages/client/test/access-log.test.ts new file mode 100644 index 0000000..f64c4f6 --- /dev/null +++ b/packages/client/test/access-log.test.ts @@ -0,0 +1,280 @@ +/** + * access-log.test.ts — behavioral tests for logAccess / setAccessLog / enabled + * (src/access-log.ts), as wired through the docs primitives (src/docs.ts). + * + * Tests: + * (a) OFF by default: reads + writes via sparqlQuery / sparqlUpdate / docCreate + * emit nothing to console.log. + * (b) ON via configure({ debugAccessLog: true }): each read/write emits a line + * matching `[] READ/WRITE (