Skip to content

Commit c596686

Browse files
authored
feat: Update dependencies, define min Node.js as v18, and migrate Jest (#116)
* Update dependencies, define min Node.js as v16, and migrate Jest * Two months left for Node.js v16 and since semantic-release already needs v18, lets go with that
1 parent 943fabd commit c596686

File tree

6 files changed

+5922
-4650
lines changed

6 files changed

+5922
-4650
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- name: Setup Node.js environment
1515
uses: actions/setup-node@v3
1616
with:
17-
node-version: 16
17+
node-version: 18
1818

1919
- name: Install npm dependencies
2020
run: npm ci

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Setup Node.js environment
1818
uses: actions/setup-node@v3
1919
with:
20-
node-version: 16
20+
node-version: 18
2121

2222
- name: Install dependencies
2323
run: npm ci

lib/playwright.interfaces.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { IgnoreArea } from "@visual-regression-tracker/sdk-js";
2-
import { ElementHandle } from "playwright-core";
3-
import { Page } from "@playwright/test";
2+
import { Page, ElementHandle } from "@playwright/test";
43

54
export interface Agent {
65
os?: string;

lib/playwrightVisualRegressionTracker.spec.ts

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@ import {
22
Config,
33
VisualRegressionTracker,
44
} from "@visual-regression-tracker/sdk-js";
5-
import { Browser, BrowserContext, Page, chromium } from "@playwright/test";
5+
import { Browser, BrowserContext, ElementHandle, Page, chromium } from "@playwright/test";
66
import {
77
PlaywrightVisualRegressionTracker,
88
PageTrackOptions,
99
ElementHandleTrackOptions,
1010
} from "./index";
11-
import { mocked } from "ts-jest/utils";
12-
import { MaybeMocked } from "ts-jest/dist/utils/testing";
11+
import { mocked, type Mocked } from "jest-mock";
1312

1413
jest.mock("@visual-regression-tracker/sdk-js");
1514

@@ -66,13 +65,13 @@ describe("playwright", () => {
6665
});
6766

6867
describe("track", () => {
69-
let pageMocked: MaybeMocked<Page>;
68+
let pageMocked: Mocked<Page>;
7069
const screenshot: Buffer = Buffer.from("image mocked");
7170

7271
beforeEach(() => {
7372
playwrightVrt["vrt"]["isStarted"] = jest.fn().mockReturnValueOnce(true);
7473
pageMocked = mocked(page);
75-
pageMocked.screenshot = jest.fn().mockResolvedValueOnce(screenshot);
74+
pageMocked.screenshot = jest.fn().mockResolvedValueOnce(screenshot) as any;
7675
});
7776

7877
describe("trackPage", () => {
@@ -128,7 +127,7 @@ describe("playwright", () => {
128127

129128
it("track default fields", async () => {
130129
const imageName = "test name";
131-
pageMocked.viewportSize = jest.fn().mockReturnValueOnce(null);
130+
pageMocked.viewportSize = jest.fn().mockReturnValueOnce(null) as any;
132131

133132
await playwrightVrt.trackPage(page, imageName);
134133

@@ -173,12 +172,10 @@ describe("playwright", () => {
173172
},
174173
comment: "Test comment",
175174
};
176-
pageMocked.$ = jest.fn().mockResolvedValueOnce({});
175+
pageMocked.$ = jest.fn().mockResolvedValueOnce({} as ElementHandle<HTMLElement>) as any;
177176
const elementHandle = await page.$("#test");
178-
const elementHandleMocked = mocked(elementHandle);
179-
elementHandleMocked!.screenshot = jest
180-
.fn()
181-
.mockResolvedValueOnce(screenshot);
177+
const elementHandleMocked = mocked(elementHandle as object as ElementHandle<HTMLElement>);
178+
elementHandleMocked!.screenshot = jest.fn().mockResolvedValueOnce(screenshot) as any;
182179

183180
await playwrightVrt.trackElementHandle(
184181
elementHandle,
@@ -207,12 +204,10 @@ describe("playwright", () => {
207204

208205
it("track default fields", async () => {
209206
const imageName = "test name";
210-
pageMocked.$ = jest.fn().mockResolvedValueOnce({});
207+
pageMocked.$ = jest.fn().mockResolvedValueOnce({} as ElementHandle<HTMLElement>) as any;
211208
const elementHandle = await page.$("#test");
212-
const elementHandleMocked = mocked(elementHandle);
213-
elementHandleMocked!.screenshot = jest
214-
.fn()
215-
.mockResolvedValueOnce(screenshot);
209+
const elementHandleMocked = mocked(elementHandle as object as ElementHandle<HTMLElement>);
210+
elementHandleMocked!.screenshot = jest.fn().mockResolvedValueOnce(screenshot) as any;
216211

217212
await playwrightVrt.trackElementHandle(elementHandle, imageName);
218213

@@ -234,7 +229,7 @@ describe("playwright", () => {
234229

235230
it("should throw if no elementHandle", async () => {
236231
const imageName = "test name";
237-
pageMocked.$ = jest.fn().mockResolvedValueOnce(null);
232+
pageMocked.$ = jest.fn().mockResolvedValueOnce(null) as any;
238233
const elementHandle = await page.$("#test");
239234

240235
await expect(

0 commit comments

Comments
 (0)