Skip to content
Source
Sign inSign up

no-dom-test-environment.test.ts

20 lines1.2 KB

1import { describe } from "@effect/vitest";
2​
3import { createOxlintRuleHarness } from "../test/utils.ts";
4​
5const rule = createOxlintRuleHarness("t3code/no-dom-test-environment");
6​
7describe("t3code/no-dom-test-environment", () => {
8 rule.valid("allows browser tests", 'import { page } from "vite-plus/test/browser";');
9 rule.valid("allows similarly named packages", 'import "jsdom-helper";');
10 rule.invalid("rejects line pragmas", "// @vitest-environment jsdom\nexport {};");
11 rule.invalid("rejects block pragmas for any environment", "/** @vitest-environment node */");
12 rule.invalid("rejects jsdom imports", 'import { JSDOM } from "jsdom";');
13 rule.invalid("rejects happy-dom imports", 'import "happy-dom";');
14 rule.invalid("rejects emulator subpaths", 'import "jsdom/lib/api.js";');
15 rule.invalid("rejects dynamic imports", 'const dom = import("happy-dom");');
16 rule.invalid("rejects template imports", "const dom = import(`jsdom`);");
17 rule.invalid("rejects CommonJS imports", 'const dom = require("jsdom");');
18 rule.invalid("rejects TypeScript require imports", 'import dom = require("happy-dom");');
19 rule.invalid("rejects re-exports", 'export { JSDOM } from "jsdom";');
20});