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
54 lines
1.7 KiB
TypeScript
54 lines
1.7 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import { execFileSync } from 'node:child_process';
|
|
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
import { test } from 'vitest';
|
|
import { mkdtempForTest } from '../../src/__tests__/test-utils/tmp-dir.ts';
|
|
import { resolveRepoRoot } from './host.ts';
|
|
|
|
test('CLI refuses an unmarked existing root before any descendant can be cleared', async () => {
|
|
const repoRoot = resolveRepoRoot();
|
|
const stateDir = await mkdtempForTest('agent-device-ios-benchmark-cli-');
|
|
const derivedPath = path.join(stateDir, 'derived-data', 'cell');
|
|
const sentinel = path.join(derivedPath, 'must-survive');
|
|
fs.mkdirSync(derivedPath, { recursive: true });
|
|
fs.writeFileSync(sentinel, 'keep');
|
|
|
|
let exitCode = 0;
|
|
let stderr = '';
|
|
try {
|
|
execFileSync(
|
|
process.execPath,
|
|
[
|
|
'--experimental-strip-types',
|
|
path.join(repoRoot, 'scripts/ios-snapshot-benchmark/run.ts'),
|
|
'--udid',
|
|
'unavailable-simulator',
|
|
'--state-dir',
|
|
stateDir,
|
|
'--derived-path',
|
|
derivedPath,
|
|
'--skip-package-size',
|
|
],
|
|
{
|
|
cwd: repoRoot,
|
|
encoding: 'utf8',
|
|
maxBuffer: 64 * 1024,
|
|
timeout: 60_000,
|
|
},
|
|
);
|
|
} catch (error) {
|
|
const failure = error as { status?: unknown; stderr?: unknown };
|
|
exitCode = typeof failure.status === 'number' ? failure.status : -1;
|
|
stderr = Buffer.isBuffer(failure.stderr)
|
|
? failure.stderr.toString('utf8')
|
|
: typeof failure.stderr === 'string'
|
|
? failure.stderr
|
|
: '';
|
|
}
|
|
|
|
assert.notEqual(exitCode, 0);
|
|
assert.match(stderr, /benchmark-owned/);
|
|
assert.equal(fs.readFileSync(sentinel, 'utf8'), 'keep');
|
|
});
|