Skip to content

Commit 4793063

Browse files
committed
Merge branch 'fix/update-dependencies' into feature/barplot
2 parents 106ff35 + 5b52203 commit 4793063

File tree

28 files changed

+1154
-1562
lines changed

28 files changed

+1154
-1562
lines changed

.github/workflows/test.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,16 @@ jobs:
2424
run: npm i -g jest-cli
2525
- name: Run tests
2626
run: npm run test
27+
- name: Sanitize filenames
28+
if: failure()
29+
run: |
30+
find test/snapshots -depth -name '*[<>:"|?*]*' | while read file; do
31+
safe_name=$(echo "$file" | sed 's/[<>:"|?*]/_/g')
32+
mv "$file" "$safe_name"
33+
done
34+
- name: Upload failed images
35+
if: failure()
36+
uses: actions/upload-artifact@v4
37+
with:
38+
name: regression-images
39+
path: test/snapshots

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
node_modules/*
22
.DS_Store
3+
test/snapshots/diffs

package-lock.json

Lines changed: 244 additions & 585 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
"d3": "^7.9.0"
3333
},
3434
"devDependencies": {
35+
"@eslint/js": "^9.0.0",
3536
"@types/d3": "^7.4.3",
3637
"@types/jsdom": "^16.2.7",
37-
"@eslint/js": "^9.0.0",
3838
"@typescript-eslint/eslint-plugin": "^8.29.0",
3939
"@typescript-eslint/parser": "^8.29.0",
4040
"@vitest/ui": "^3.1.2",
@@ -44,6 +44,8 @@
4444
"eslint-define-config": "^2.1.0",
4545
"flush-promises": "^1.0.2",
4646
"jsdom": "^26.1.0",
47+
"pixelmatch": "^7.1.0",
48+
"pngjs": "^7.0.0",
4749
"puppeteer": "^24.7.2",
4850
"regenerator-runtime": "^0.13.7",
4951
"typescript": "^4.1.2",

src/test/TestConsts.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default class TestConsts {
1313

1414
return {
1515
comparisonMethod: "ssim",
16-
failureThreshold: 0.02,
16+
failureThreshold: 0.1,
1717
failureThresholdType: "percent",
1818
customSnapshotsDir: path.replace("src", "test/snapshots"),
1919
customDiffDir: path.replace("src", "test/snapshots/diffs")

src/visualizations/treemap/__tests__/Treemap.spec.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11

2-
import { waitForCondition } from "./../../../test/TestUtils";
2+
import { waitForCondition } from "../../../test/TestUtils";
33
import TestConsts from "./../../../test/TestConsts";
44
import TreemapSettings from "./../TreemapSettings";
55
import { JSDOM } from "jsdom";
66
import Treemap from "./../Treemap";
77
import DataNode from "./../../../DataNode";
88
import { describe, it, expect, beforeAll, afterAll } from "vitest";
99

10-
const puppeteer = require("puppeteer");
11-
const taxonomyObject = require("./resources/taxonomy.json");
10+
import puppeteer from "puppeteer";
11+
import taxonomyObject from "./resources/taxonomy.json";
1212

1313
describe("Treemap", () => {
1414
let browser: any;
@@ -56,7 +56,7 @@ describe("Treemap", () => {
5656

5757
it("should render a treemap with default settings", async() => {
5858
const jsDom = createJSDom();
59-
const treemap = await createTreemap(jsDom, {});
59+
const treemap = await createTreemap(jsDom, new TreemapSettings());
6060

6161
const image = await makeScreenshot(jsDom);
6262
expect(image).toMatchImageSnapshot(TestConsts.resolveImageSnapshotFolder(__filename));
@@ -67,23 +67,24 @@ describe("Treemap", () => {
6767

6868
let nodeFromCallback: DataNode | null = null;
6969

70-
const treemap = await createTreemap(jsDom, {
71-
rerootCallback: (d: DataNode) => nodeFromCallback = d
72-
});
70+
const settings = new TreemapSettings();
71+
settings.rerootCallback = (d: DataNode) => nodeFromCallback = d;
72+
73+
const treemap = await createTreemap(jsDom, settings);
7374

74-
expect(nodeFromCallback.name).toEqual("root");
75+
expect(nodeFromCallback!.name).toEqual("root");
7576

7677
// new Event("click") does apparently not work in combination with Jest and JSDOM
7778
const event = jsDom.window.document.createEvent("CustomEvent");
7879
event.initEvent("click", true, true);
7980

8081
const oldSerializedHtml = jsDom.serialize();
8182

82-
jsDom.window.document.getElementsByClassName("node").item(1).dispatchEvent(event);
83+
jsDom.window.document.getElementsByClassName("node").item(1)!.dispatchEvent(event);
8384

8485
await waitForCondition(() => oldSerializedHtml !== jsDom.serialize(), 2000, 500);
8586

86-
expect(nodeFromCallback.name).toEqual("Bacteria");
87+
expect(nodeFromCallback!.name).toEqual("Bacteria");
8788
});
8889

8990
afterAll(async() => {
31.5 KB
Loading
31.4 KB
Loading
Loading
35.6 KB
Loading

0 commit comments

Comments
 (0)