Files
rea/tests/boundary/cli/reverseEngineeringTargetInput.test.ts

52 lines
1.5 KiB
TypeScript
Raw Permalink Normal View History

import { join } from "node:path";
import { expect } from "vitest";
import { analysisErrorProjectionSchema } from "../../../src/contracts/errorSchemas.js";
import { createTestTempDirectory } from "../../fixtures/temporaryDirectory.js";
import { cliTest } from "../../support/cli/cliFixture.js";
cliTest(
"reports missing and directory objdump inputs with structured reasons",
async ({ cli }) => {
const root = await createTestTempDirectory("rea-objdump-invalid-target-");
const missing = join(root, "missing.bin");
const directory = root;
for (const [path, expectedReason] of [
[missing, "not found"],
[directory, "not a regular file"],
] as const) {
const result = await cli.run({
arguments: [
"inspect-with-objdump",
path,
"symbols",
"--format",
"json",
],
cwd: root,
});
expect(result.exitCode).toBe(1);
expect(analysisErrorProjectionSchema.safeParse(result.json).success).toBe(
true,
);
expect(result.json).toMatchObject({
code: "invalid_request",
category: "invalid_input",
retryable: false,
message: expect.stringContaining(path),
details: {
operation: "inspect_with_objdump",
issues: [
{
path: ["path"],
reason: "invalid_value",
message: expect.stringContaining(expectedReason),
},
],
},
});
}
},
);