feat(scanner): complete localized artifact quality checkpoint
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import type { InventoryBrowserRow } from "../../../lib/inventoryBrowser";
|
||||
import { resolveInventoryDeletionTarget } from "./useInventoryViewModel";
|
||||
|
||||
type DeletionRow = Pick<InventoryBrowserRow, "source" | "runDir" | "scanResultId" | "promotionRecordId">;
|
||||
|
||||
function row(overrides: Partial<DeletionRow> = {}): DeletionRow {
|
||||
return {
|
||||
source: "snapshot",
|
||||
runDir: undefined,
|
||||
scanResultId: undefined,
|
||||
promotionRecordId: undefined,
|
||||
...overrides,
|
||||
};
|
||||
}
|
||||
|
||||
describe("inventory local deletion target", () => {
|
||||
it("allows only a native result with its run identity", () => {
|
||||
expect(resolveInventoryDeletionTarget(row({ source: "native", runDir: "C:/run", scanResultId: "result-1" }), {
|
||||
nativeResultRemoval: true,
|
||||
storeRecordRemoval: true,
|
||||
})).toBe("native");
|
||||
expect(resolveInventoryDeletionTarget(row({ source: "native", scanResultId: "result-1" }), {
|
||||
nativeResultRemoval: true,
|
||||
storeRecordRemoval: true,
|
||||
})).toBeNull();
|
||||
});
|
||||
|
||||
it("allows one exact Store record only when the bridge exposes the capability", () => {
|
||||
expect(resolveInventoryDeletionTarget(row({ source: "store", promotionRecordId: "store-1" }), {
|
||||
nativeResultRemoval: true,
|
||||
storeRecordRemoval: true,
|
||||
})).toBe("store");
|
||||
expect(resolveInventoryDeletionTarget(row({ source: "store", promotionRecordId: "store-1" }), {
|
||||
nativeResultRemoval: true,
|
||||
storeRecordRemoval: false,
|
||||
})).toBeNull();
|
||||
});
|
||||
|
||||
it("never exposes a deletion target for snapshot rows", () => {
|
||||
expect(resolveInventoryDeletionTarget(row({ source: "snapshot", promotionRecordId: "store-1" }), {
|
||||
nativeResultRemoval: true,
|
||||
storeRecordRemoval: true,
|
||||
})).toBeNull();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user