1
import * as fs from "fs";
2
import * as path from "path";
9
updateSnapshot: boolean;
10
}) => !pass && !updateSnapshot;
11
const shouldUpdate = ({
16
updateSnapshot: boolean;
17
}) => !pass && updateSnapshot;
19
export function diffSVGToSnapshot(options: {
21
snapshotIdentifier: string;
23
updateSnapshot: boolean;
29
updateSnapshot = false,
41
const baselineSnapshotPath = path.join(
43
`${snapshotIdentifier}-snap.svg`
46
if (!fs.existsSync(baselineSnapshotPath)) {
47
fs.mkdirSync(snapshotsDir, { recursive: true });
48
fs.writeFileSync(baselineSnapshotPath, receivedSVG, "utf-8");
49
result = { added: true, pass: false };
51
const expectedSVG = fs.readFileSync(baselineSnapshotPath, "utf8");
53
const pass = expectedSVG === receivedSVG;
55
if (isFailure({ pass, updateSnapshot })) {
58
expected: expectedSVG,
60
} else if (shouldUpdate({ pass, updateSnapshot })) {
61
fs.mkdirSync(snapshotsDir, { recursive: true });
62
fs.writeFileSync(baselineSnapshotPath, receivedSVG, "utf-8");
63
result = { updated: true, pass: false };