1
0

refactor: 清理测试代码 eslint-disable 指令,消除文件级和重复局部禁用

This commit is contained in:
2026-05-21 00:35:08 +08:00
parent ccd16a583e
commit b432581444
6 changed files with 185 additions and 175 deletions

View File

@@ -4,7 +4,6 @@
* 组件测试使用各自的 test-utils.tsx
*/
/* eslint-disable @typescript-eslint/no-empty-function */
// Set up jsdom for ALL tests (both backend and frontend)
import { JSDOM } from "jsdom";
@@ -34,8 +33,10 @@ const nodeProto = dom.window.Node.prototype;
const elementProto = dom.window.Element.prototype;
const htmlElementProto = dom.window.HTMLElement.prototype;
const attachEventFn = () => {};
const detachEventFn = () => {};
const noop = () => undefined;
const attachEventFn = noop;
const detachEventFn = noop;
Object.defineProperty(nodeProto, "attachEvent", { configurable: true, value: attachEventFn, writable: true });
Object.defineProperty(nodeProto, "detachEvent", { configurable: true, value: detachEventFn, writable: true });
@@ -46,27 +47,53 @@ Object.defineProperty(htmlElementProto, "detachEvent", { configurable: true, val
// Other polyfills
globalThis.ResizeObserver = class {
disconnect() {}
observe() {}
unobserve() {}
disconnect() {
return undefined;
}
observe() {
return undefined;
}
unobserve() {
return undefined;
}
};
globalThis.MutationObserver = class {
disconnect() {}
observe() {}
disconnect() {
return undefined;
}
observe() {
return undefined;
}
takeRecords() {
return [];
}
unobserve() {}
unobserve() {
return undefined;
}
};
globalThis.IntersectionObserver = class {
disconnect() {}
observe() {}
disconnect() {
return undefined;
}
observe() {
return undefined;
}
takeRecords() {
return [];
}
unobserve() {}
unobserve() {
return undefined;
}
} as unknown as typeof IntersectionObserver;
globalThis.requestAnimationFrame = (cb: FrameRequestCallback) => setTimeout(cb, 16);
@@ -74,24 +101,24 @@ globalThis.cancelAnimationFrame = (id: number) => clearTimeout(id);
Object.defineProperty(dom.window, "matchMedia", {
value: (query: string) => ({
addEventListener: () => {},
addListener: () => {},
addEventListener: noop,
addListener: noop,
dispatchEvent: () => true,
matches: false,
media: query,
onchange: null,
removeEventListener: () => {},
removeListener: () => {},
removeEventListener: noop,
removeListener: noop,
}),
writable: true,
});
dom.window.Element.prototype.scrollTo = () => {};
dom.window.Element.prototype.scrollIntoView = () => {};
dom.window.Element.prototype.scrollTo = noop;
dom.window.Element.prototype.scrollIntoView = noop;
Object.defineProperty(dom.window, "customElements", {
value: {
define: () => {},
define: noop,
get: () => undefined,
},
writable: true,