42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { RecordingDataDelete } from "./recording-data-delete";
|
|
|
|
describe("RecordingDataDelete", () => {
|
|
it("records deleteSubjectData calls", async () => {
|
|
const deleter = new RecordingDataDelete();
|
|
await deleter.deleteSubjectData("alice", "soft");
|
|
|
|
expect(deleter.calls).toHaveLength(1);
|
|
expect(deleter.calls[0]).toEqual({ subjectId: "alice", mode: "soft" });
|
|
});
|
|
|
|
it("returns a DeletionCertificate with the correct shape", async () => {
|
|
const deleter = new RecordingDataDelete();
|
|
const cert = await deleter.deleteSubjectData("alice", "cascade-hard");
|
|
|
|
expect(cert.subjectId).toBe("alice");
|
|
expect(cert.mode).toBe("cascade-hard");
|
|
expect(cert.reason).toBe("art-17-request");
|
|
expect(cert.affected).toEqual([]);
|
|
expect(typeof cert.auditEntryId).toBe("string");
|
|
expect(typeof cert.timestamp).toBe("string");
|
|
});
|
|
|
|
it("records multiple calls in order", async () => {
|
|
const deleter = new RecordingDataDelete();
|
|
await deleter.deleteSubjectData("alice", "soft");
|
|
await deleter.deleteSubjectData("bob", "cascade-hard");
|
|
|
|
expect(deleter.calls[0]?.mode).toBe("soft");
|
|
expect(deleter.calls[1]?.mode).toBe("cascade-hard");
|
|
});
|
|
|
|
it("reset() clears recorded calls", async () => {
|
|
const deleter = new RecordingDataDelete();
|
|
await deleter.deleteSubjectData("alice", "soft");
|
|
deleter.reset();
|
|
|
|
expect(deleter.calls).toHaveLength(0);
|
|
});
|
|
});
|