feat: protect sensitive catalog samples
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { expect, test } from "vitest";
|
||||
import { syntheticSampleValue } from "../src/catalog/synthetic-sample-value.js";
|
||||
|
||||
test.each([
|
||||
["text[]", "tags", 1, "{tags_001,tags_002}"],
|
||||
["json", "payload", 2, '{"example":"payload_002","sequence":2}'],
|
||||
["jsonb", "attributes", 3, '{"example":"attributes_003","sequence":3}'],
|
||||
["inet", "client_ip", 4, "192.0.2.4"],
|
||||
["cidr", "network", 5, "192.0.2.0/24"],
|
||||
["time without time zone", "opening_time", 6, "10:30:06"],
|
||||
["interval", "duration", 7, "7 days 07:00:00"],
|
||||
["bytea", "digest", 8, "\\x00000008"],
|
||||
] as const)(
|
||||
"creates a deterministic PostgreSQL-shaped value for %s",
|
||||
(dataType, name, index, expected) => {
|
||||
const column = { name, dataType };
|
||||
|
||||
expect(syntheticSampleValue(column, index)).toBe(expected);
|
||||
expect(syntheticSampleValue(column, index)).toBe(expected);
|
||||
},
|
||||
);
|
||||
|
||||
test("uses the PostgreSQL type before birth-related name hints", () => {
|
||||
expect(syntheticSampleValue({ name: "birth_year", dataType: "integer" }, 2)).toBe(1002);
|
||||
expect(syntheticSampleValue({ name: "birth_date", dataType: "date" }, 2))
|
||||
.toBe("1982-01-02");
|
||||
expect(syntheticSampleValue({ name: "birth_recorded_at", dataType: "timestamp" }, 2))
|
||||
.toBe("2024-01-02T10:30:00.000Z");
|
||||
});
|
||||
Reference in New Issue
Block a user