mirror of
https://github.com/morluto/rea
synced 2026-10-27 22:45:19 -04:00
55dd21a5e2
Preserve XML and Interface Builder identity at their parsing boundary, retain usable Objective-C slots with precise coverage, and keep native trace failures distinct from absence. Add caller-selected Interface Builder summaries backed by complete retained Evidence, and preserve comparison limitations. Reviewed fixes: #1969, #2088, #2108, #2513, #2639, #2684, #2731, #2759, #2875, #2888, #2889, #2970, #2971, #3002. Validation: relevant native/domain focused lane passed 142 tests; earlier Interface Builder/MCP checks passed 24 tests. Real native UI and Ghidra producer coverage was not repeated.
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { expect } from "vitest";
|
|
import { z } from "zod";
|
|
|
|
import { keyedArchiveResultSchema } from "../../../src/domain/apple/keyedArchive.js";
|
|
import {
|
|
archiveNumberMetadataCases,
|
|
expectKeyedArchiveNumberMetadata,
|
|
keyedArchiveNumberMetadataFixture,
|
|
} from "../../fixtures/keyedArchiveNumberMetadata.js";
|
|
import { mcpTest } from "../../support/mcp/mcpFixture.js";
|
|
import { openProductionTarget } from "../../support/mcp/productionSession.js";
|
|
|
|
mcpTest.for(archiveNumberMetadataCases)(
|
|
"MCP preserves numeric meaning for $name",
|
|
async (item, { mcp, onTestFinished }) => {
|
|
const fixture = await keyedArchiveNumberMetadataFixture(item);
|
|
const client = await openProductionTarget(
|
|
mcp,
|
|
onTestFinished,
|
|
fixture.path,
|
|
);
|
|
const result = await client.callTool({
|
|
name: "inspect_keyed_archive",
|
|
arguments: {},
|
|
});
|
|
expect(result.isError, JSON.stringify(result.content)).not.toBe(true);
|
|
expectKeyedArchiveNumberMetadata(
|
|
z
|
|
.object({ normalized_result: keyedArchiveResultSchema })
|
|
.parse(result.structuredContent).normalized_result,
|
|
item,
|
|
fixture.digest,
|
|
);
|
|
},
|
|
);
|