Skip to content
Source
Sign inSign up

no-raw-resize-observer.test.ts

36 lines1.0 KB

1import { describe } from "@effect/vitest";
2​
3import { createOxlintRuleHarness } from "../test/utils.ts";
4​
5const rule = createOxlintRuleHarness("t3code/no-raw-resize-observer");
6​
7describe("t3code/no-raw-resize-observer", () => {
8 rule.valid(
9 "allows ResizeObserver types and feature detection",
10 `
11 let observer: ResizeObserver | null = null;
12 export const supported = typeof ResizeObserver !== "undefined";
13 export const entries: ResizeObserverEntry[] = [];
14 `,
15 );
16​
17 rule.valid(
18 "allows other DOM observers",
19 `export const observer = new MutationObserver(() => {});`,
20 );
21​
22 rule.invalid(
23 "reports a direct ResizeObserver construction",
24 `export const observer = new ResizeObserver(() => {});`,
25 );
26​
27 rule.invalid(
28 "reports construction through a global object",
29 `export const observer = new window.ResizeObserver(() => {});`,
30 );
31​
32 rule.invalid(
33 "reports computed construction through a global object",
34 `export const observer = new globalThis["ResizeObserver"](() => {});`,
35 );
36});