mirror of
https://github.com/callstack/agent-device.git
synced 2026-09-14 20:06:34 +08:00
b15121ffc8
* test(ios): add snapshot convergence evidence harness * fix(ios): satisfy benchmark CI guards * fix(ios): constrain benchmark proxy routes * fix(ios-benchmark): enforce cell admission evidence * fix(ios-benchmark): protect benchmark state ownership * fix(ios-benchmark): use proxy port flag * fix(ios-benchmark): let proxy choose an ephemeral port * test(ios-benchmark): keep CLI process seam local * fix(ios-benchmark): parse proxy startup envelope * fix(ios-benchmark): bind proxy lease to simulator * fix(ios-benchmark): keep fresh proxy CLI sessions isolated * fix(ios-benchmark): preserve async timeout evidence * docs(ios-benchmark): retain exact-head evidence * test(ios): reveal offscreen alert fixture controls * test(ios): reset alert between relaunch samples * test(ios): admit native alert snapshots * docs(ios): publish snapshot convergence corpus * chore(ios): format benchmark evidence * fix(ios-benchmark): admit proxy fixture anchors * docs(ios): republish exact-head benchmark corpus * fix(size): make publish asset evidence hermetic * style(size): format package evidence test * test(size): update publish preparation contracts * fix: retire stale utils layering zone * test: pin shared publish asset owner * test: verify preserved size reporter closure * fix: move mutation ownership to snapshot module * test(ios): add snapshot convergence evidence harness * fix(ios): satisfy benchmark CI guards * fix(ios): constrain benchmark proxy routes * fix(ios-benchmark): enforce cell admission evidence * fix(ios-benchmark): protect benchmark state ownership * fix(ios-benchmark): use proxy port flag * fix(ios-benchmark): let proxy choose an ephemeral port * test(ios-benchmark): keep CLI process seam local * fix(ios-benchmark): parse proxy startup envelope * fix(ios-benchmark): bind proxy lease to simulator * fix(ios-benchmark): keep fresh proxy CLI sessions isolated * fix(ios-benchmark): preserve async timeout evidence * docs(ios-benchmark): retain exact-head evidence * test(ios): reveal offscreen alert fixture controls * test(ios): reset alert between relaunch samples * test(ios): admit native alert snapshots * docs(ios): publish snapshot convergence corpus * chore(ios): format benchmark evidence * fix(ios-benchmark): admit proxy fixture anchors * docs(ios): republish exact-head benchmark corpus * fix(size): make publish asset evidence hermetic * test(size): update publish preparation contracts * fix: keep git-state gates out of mutation sandboxes
33 lines
1.4 KiB
TypeScript
33 lines
1.4 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import { test } from 'vitest';
|
|
import {
|
|
assertInvalidShallowRuleFails,
|
|
assertSafeFullRulePasses,
|
|
deepButtonFixtureEvidence,
|
|
readDeepButtonFixtureArtifact,
|
|
} from './deep-button.ts';
|
|
|
|
test('the checked-in fixture has a real 72-level ancestor chain', () => {
|
|
const artifact = readDeepButtonFixtureArtifact();
|
|
assert.equal(artifact.depth, 72);
|
|
assert.equal(artifact.nodes.length, 73);
|
|
assert.equal(artifact.before.changedNode.depth, 72);
|
|
assert.equal(artifact.after.changedNode.depth, 72);
|
|
assert.notDeepEqual(artifact.before.changedNode, artifact.after.changedNode);
|
|
});
|
|
|
|
test('the shallow control observes no change while the full tree changes', () => {
|
|
const evidence = deepButtonFixtureEvidence();
|
|
assert.equal(evidence.artifact, 'deep-button-fixture.v1.json');
|
|
assert.equal(evidence.depth, 72);
|
|
assert.equal(evidence.before.surfaceDigest, evidence.after.surfaceDigest);
|
|
assert.notEqual(evidence.before.fullDigest, evidence.after.fullDigest);
|
|
assert.ok(!evidence.after.surfaceNodeIds.includes(evidence.changedDescendant));
|
|
assert.ok(evidence.after.fullNodeIds.includes(evidence.changedDescendant));
|
|
});
|
|
|
|
test('the planted invalid rule is red and the full rule is green', () => {
|
|
assert.throws(assertInvalidShallowRuleFails, /changed descendant was omitted/);
|
|
assert.doesNotThrow(assertSafeFullRulePasses);
|
|
});
|