文件
mynode/packages/lib/testing/dom-test-environment.ts
chen 301194963b
一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
feat: Initial clean release of CHM
2026-11-04 11:29:39 +08:00

28 行
1.0 KiB
TypeScript

// Import this file in a test to set up a DOM environment.
// Use instead of jest-environment-jsdom in packages/lib.
//
// As of February 2026, jest-environment-jsdom can't be enabled
// for some tests in @joplin/lib without enabling it for all
// @joplin/lib tests. Jest's environment configuration comment
// (i.e. /** @jest-environment jsdom */) doesn't work in @joplin/lib
// due to the TypeScript/Jest configuration.
//
//
// This is similar to (but somewhat simpler than) the approach taken by
// "global-jsdom" package, which is recommended by the NodeJS native
// test runner documentation (https://nodejs.org/en/learn/test-runner/using-test-runner#user-interface-tests).
import { JSDOM } from 'jsdom';
const dom = new JSDOM(
`
<!DOCTYPE html>
<html><body></body></html>
`,
{ url: 'http://localhost:8088/', pretendToBeVisual: true },
);
globalThis.window = dom.window as unknown as typeof window;
// Allow accessing document, Event, HTMLElement, etc. without the "window." prefix
Object.setPrototypeOf(globalThis, globalThis.window);