Files
dc/.gitignore
T
dc 6262843f3f
Build / Build-and-ng-test (pull_request) Successful in 3m57s
Build / Build-and-test-development (pull_request) Canceled after 0s
Lighthouse Checks / lighthouse (pull_request) Canceled after 5m36s
feat(mocks): check the mock against recorded SAS responses
The mock services are a second implementation of the SAS backend, and the only
thing comparing them was a human reading two files. This adds the harness that
compares their output instead.

A golden is a projection of a SAS response, never a copy: project.js keeps a
fixed member list per scenario, drops the whole envelope (hostname, site id,
user, home paths, job ids, _PROGRAM), substitutes the identifiers the diff
needs (<LIBREF>, <PATH>, <EMAIL>, <STAGING_ID>, <DATETIME>), and redacts secrets
by key name. The recorder then refuses to publish if any identifier class
survives, or if any literal the envelope just discarded still appears in the
projection - which is what catches a hostname echoed inside an error message.

record.js records from a live estate into .captures/ (gitignored) and writes
only the projection to golden/. check.js replays a golden against a mock estate
built by the test harness and prints field-level differences; it needs no
server and no credentials. parity-golden.test.js re-runs the identifier scan
over every committed golden, so a hand-edited file cannot slip through either.

Phase 0 ships one scenario, public/startupservice. The replay is advisory and
already reports twelve differences worth a look (admin group casing, the
registration counters, timezone representation, the sasdatasets order, blank
versus empty Excel map descriptions); the corpus, the merge gate and the
nightly drift job follow.

Stacked on the mocks context in the parent branch: it seeds the mock estate with
seededEstate(), which that branch adds.
2026-11-06 15:08:26 +00:00

29 lines
532 B
Plaintext

coverage/
dist/
node_modules/
client/.angular/cache/
**/*npm-debug.log.*
**/*yarn-error.log.*
.idea/
.DS_Store
client/src/environments/version.ts
client/cypress/screenshots
client/cypress/results
client/cypress/videos
client/documentation
client/**/sheet-crypto.tgz
client/.nx
client/libraries/sheet-crypto.tgz
client/lighthouse-reports
cypress.env.json
sasjsbuild
sasjsresults
.env*
.sasjsrc
*~
.lighthouseci
audit.log
tmp/
# raw parity captures - only the projection in parity/golden is committed
sas/mocks/test/parity/.captures/