mirror of
https://github.com/callstack/agent-device.git
synced 2026-09-14 20:06:34 +08:00
3f0a4c7a89
* perf(ios): add bounded Simulator AX bridge spike * fix(ios): use snapshot planning subpath in AX spike * docs(ios): record AX bridge spike NO-GO evidence * docs(ios): add fixture stop diagnostics * docs(ios): refresh prerequisite provenance * docs(ios): record current prerequisite head * docs(ios): record current prerequisite head * ci: refresh exact-head pull request checks * fix(ios-ax-bridge): preserve raw control node types * docs(ios): refresh prerequisite provenance * docs(ios): refresh prerequisite provenance * fix: make iOS AX spike evidence executable * fix: scope Simulator AX evidence to device content * perf: compact AX spike evidence payloads * perf: keep AX spike reports compact * fix: keep AX evidence claims literal * docs: replace blocked AX spike with live evidence * chore: preserve raw AX evidence format * fix: make simulator AX spike evidence decisive * docs: record clean simulator AX spike run * fix: close AX spike measurement gaps * fix: initialize preference evidence owner * fix: distinguish transient AX probe readiness * docs: refresh review-corrected AX evidence * fix: preserve preference failure evidence * fix: close final AX evidence edge cases * docs: publish final simulator AX decision evidence * fix(ios): keep AX spike out of npm package * docs(ios): correct AX bridge viability verdict
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import fs from 'node:fs';
|
|
import { test } from 'vitest';
|
|
import { defaultPublicMacOsAxHelperPath, readControlSnapshot } from './adapter.ts';
|
|
|
|
test('public AX adapter resolves the SwiftPM release product', () => {
|
|
assert.equal(
|
|
defaultPublicMacOsAxHelperPath('/repo'),
|
|
'/repo/scripts/ios-ax-bridge-spike/swift/.build/release/agent-device-ios-ax-bridge-spike',
|
|
);
|
|
});
|
|
|
|
test('spike executable stays outside the distributed macOS helper package', () => {
|
|
const manifest = fs.readFileSync(
|
|
new URL('../../apple/macos-helper/Package.swift', import.meta.url),
|
|
'utf8',
|
|
);
|
|
|
|
assert.doesNotMatch(manifest, /AgentDeviceIosAxBridgeSpike|agent-device-ios-ax-bridge-spike/);
|
|
});
|
|
|
|
test('control mapping preserves the producer raw node type', () => {
|
|
const result = readControlSnapshot({
|
|
data: {
|
|
results: [
|
|
{
|
|
data: {
|
|
snapshot: {
|
|
nodes: [
|
|
{
|
|
index: 7,
|
|
type: 'XCUIElementTypeButton',
|
|
role: 'AXButton',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
});
|
|
|
|
assert.equal(result?.nodes[0]?.type, 'XCUIElementTypeButton');
|
|
assert.equal(result?.nodes[0]?.role, 'AXButton');
|
|
});
|