Apply repository-wide ESLint auto-fix formatting pass

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
2026-03-08 12:11:57 +08:00
parent 7c48faaa3d
commit 847904c49b
172 changed files with 13629 additions and 9154 deletions

View File

@@ -3,108 +3,106 @@
// Authors:
// imacat.yang@dsp.im (imacat), 2026/03/05
import { describe, it, expect, beforeEach, vi } from 'vitest';
import { describe, it, expect, beforeEach, vi } from "vitest";
import {
getCookie,
setCookie,
setCookieWithoutExpiration,
deleteCookie,
} from '@/utils/cookieUtil.js';
} from "@/utils/cookieUtil.js";
describe('cookieUtil', () => {
describe("cookieUtil", () => {
let cookieSetter;
beforeEach(() => {
// Clear all cookies before each test
document.cookie.split(';').forEach((c) => {
const name = c.split('=')[0].trim();
document.cookie.split(";").forEach((c) => {
const name = c.split("=")[0].trim();
if (name) {
document.cookie =
name + '=; Max-Age=-99999999; path=/';
document.cookie = name + "=; Max-Age=-99999999; path=/";
}
});
// Spy on document.cookie setter to capture the raw string
// (jsdom silently drops Secure cookies on http://)
cookieSetter = vi.spyOn(document, 'cookie', 'set');
cookieSetter = vi.spyOn(document, "cookie", "set");
});
describe('getCookie', () => {
it('returns null when cookie does not exist', () => {
expect(getCookie('nonexistent')).toBeNull();
describe("getCookie", () => {
it("returns null when cookie does not exist", () => {
expect(getCookie("nonexistent")).toBeNull();
});
it('returns value of an existing cookie', () => {
document.cookie = 'testKey=testValue';
expect(getCookie('testKey')).toBe('testValue');
it("returns value of an existing cookie", () => {
document.cookie = "testKey=testValue";
expect(getCookie("testKey")).toBe("testValue");
});
it('returns correct value when multiple cookies exist',
() => {
document.cookie = 'first=aaa';
document.cookie = 'second=bbb';
document.cookie = 'third=ccc';
expect(getCookie('second')).toBe('bbb');
});
it("returns correct value when multiple cookies exist", () => {
document.cookie = "first=aaa";
document.cookie = "second=bbb";
document.cookie = "third=ccc";
expect(getCookie("second")).toBe("bbb");
});
it('does not match partial cookie names', () => {
document.cookie = 'testKey=value';
expect(getCookie('test')).toBeNull();
it("does not match partial cookie names", () => {
document.cookie = "testKey=value";
expect(getCookie("test")).toBeNull();
});
});
describe('setCookie', () => {
it('sets cookie with Secure and SameSite=Lax flags', () => {
setCookie('myKey', 'myValue');
describe("setCookie", () => {
it("sets cookie with Secure and SameSite=Lax flags", () => {
setCookie("myKey", "myValue");
const written = cookieSetter.mock.calls.find(
(c) => c[0].startsWith('myKey='),
const written = cookieSetter.mock.calls.find((c) =>
c[0].startsWith("myKey="),
);
expect(written).toBeDefined();
const str = written[0];
expect(str).toContain('myKey=myValue');
expect(str).toContain('expires=');
expect(str).toContain('path=/');
expect(str).toContain('Secure');
expect(str).toContain('SameSite=Lax');
expect(str).toContain("myKey=myValue");
expect(str).toContain("expires=");
expect(str).toContain("path=/");
expect(str).toContain("Secure");
expect(str).toContain("SameSite=Lax");
});
});
describe('setCookieWithoutExpiration', () => {
it('sets session cookie with Secure and SameSite=Lax flags', () => {
setCookieWithoutExpiration('sessionKey', 'sessionVal');
describe("setCookieWithoutExpiration", () => {
it("sets session cookie with Secure and SameSite=Lax flags", () => {
setCookieWithoutExpiration("sessionKey", "sessionVal");
const written = cookieSetter.mock.calls.find(
(c) => c[0].startsWith('sessionKey='),
const written = cookieSetter.mock.calls.find((c) =>
c[0].startsWith("sessionKey="),
);
expect(written).toBeDefined();
const str = written[0];
expect(str).toContain('sessionKey=sessionVal');
expect(str).toContain('Secure');
expect(str).toContain('SameSite=Lax');
expect(str).toContain("sessionKey=sessionVal");
expect(str).toContain("Secure");
expect(str).toContain("SameSite=Lax");
});
it('sets cookie with path=/', () => {
setCookieWithoutExpiration('pathKey', 'pathVal');
it("sets cookie with path=/", () => {
setCookieWithoutExpiration("pathKey", "pathVal");
const written = cookieSetter.mock.calls.find(
(c) => c[0].startsWith('pathKey='),
const written = cookieSetter.mock.calls.find((c) =>
c[0].startsWith("pathKey="),
);
expect(written[0]).toContain('path=/');
expect(written[0]).toContain("path=/");
});
});
describe('deleteCookie', () => {
it('sets Max-Age=-99999999 with Secure and SameSite=Lax flags', () => {
deleteCookie('toDelete');
describe("deleteCookie", () => {
it("sets Max-Age=-99999999 with Secure and SameSite=Lax flags", () => {
deleteCookie("toDelete");
const written = cookieSetter.mock.calls.find(
(c) => c[0].startsWith('toDelete='),
const written = cookieSetter.mock.calls.find((c) =>
c[0].startsWith("toDelete="),
);
expect(written).toBeDefined();
const str = written[0];
expect(str).toContain('Max-Age=-99999999');
expect(str).toContain('Secure');
expect(str).toContain('SameSite=Lax');
expect(str).toContain("Max-Age=-99999999");
expect(str).toContain("Secure");
expect(str).toContain("SameSite=Lax");
});
});
});

View File

@@ -3,32 +3,33 @@
// Authors:
// imacat.yang@dsp.im (imacat), 2026/03/06
import { describe, it, expect } from 'vitest';
import { escapeHtml } from '@/utils/escapeHtml.js';
import { describe, it, expect } from "vitest";
import { escapeHtml } from "@/utils/escapeHtml.js";
describe('escapeHtml', () => {
it('escapes ampersand', () => {
expect(escapeHtml('a&b')).toBe('a&amp;b');
describe("escapeHtml", () => {
it("escapes ampersand", () => {
expect(escapeHtml("a&b")).toBe("a&amp;b");
});
it('escapes angle brackets', () => {
expect(escapeHtml('<script>')).toBe('&lt;script&gt;');
it("escapes angle brackets", () => {
expect(escapeHtml("<script>")).toBe("&lt;script&gt;");
});
it('escapes double quotes', () => {
expect(escapeHtml('"hello"')).toBe('&quot;hello&quot;');
it("escapes double quotes", () => {
expect(escapeHtml('"hello"')).toBe("&quot;hello&quot;");
});
it('escapes single quotes', () => {
it("escapes single quotes", () => {
expect(escapeHtml("it's")).toBe("it&#039;s");
});
it('escapes all special characters together', () => {
expect(escapeHtml('<img src="x" onerror="alert(\'XSS\')">'))
.toBe('&lt;img src=&quot;x&quot; onerror=&quot;alert(&#039;XSS&#039;)&quot;&gt;');
it("escapes all special characters together", () => {
expect(escapeHtml('<img src="x" onerror="alert(\'XSS\')">')).toBe(
"&lt;img src=&quot;x&quot; onerror=&quot;alert(&#039;XSS&#039;)&quot;&gt;",
);
});
it('returns plain text unchanged', () => {
expect(escapeHtml('hello world')).toBe('hello world');
it("returns plain text unchanged", () => {
expect(escapeHtml("hello world")).toBe("hello world");
});
});

View File

@@ -3,57 +3,47 @@
// Authors:
// imacat.yang@dsp.im (imacat), 2026/03/05
import { describe, it, expect } from 'vitest';
import {
mapPageNameToCapitalUnifiedName,
} from '@/utils/pageUtils.js';
import { describe, it, expect } from "vitest";
import { mapPageNameToCapitalUnifiedName } from "@/utils/pageUtils.js";
describe('pageUtils', () => {
describe('mapPageNameToCapitalUnifiedName', () => {
it('converts CheckMap to MAP', () => {
expect(mapPageNameToCapitalUnifiedName('CheckMap'))
.toBe('MAP');
describe("pageUtils", () => {
describe("mapPageNameToCapitalUnifiedName", () => {
it("converts CheckMap to MAP", () => {
expect(mapPageNameToCapitalUnifiedName("CheckMap")).toBe("MAP");
});
it('converts CheckConformance to CONFORMANCE', () => {
expect(
mapPageNameToCapitalUnifiedName('CheckConformance')
).toBe('CONFORMANCE');
it("converts CheckConformance to CONFORMANCE", () => {
expect(mapPageNameToCapitalUnifiedName("CheckConformance")).toBe(
"CONFORMANCE",
);
});
it('converts CheckPerformance to PERFORMANCE', () => {
expect(
mapPageNameToCapitalUnifiedName('CheckPerformance')
).toBe('PERFORMANCE');
it("converts CheckPerformance to PERFORMANCE", () => {
expect(mapPageNameToCapitalUnifiedName("CheckPerformance")).toBe(
"PERFORMANCE",
);
});
it('converts CompareDashboard to DASHBOARD', () => {
expect(
mapPageNameToCapitalUnifiedName('CompareDashboard')
).toBe('DASHBOARD');
it("converts CompareDashboard to DASHBOARD", () => {
expect(mapPageNameToCapitalUnifiedName("CompareDashboard")).toBe(
"DASHBOARD",
);
});
it('converts other names to uppercase', () => {
expect(mapPageNameToCapitalUnifiedName('files'))
.toBe('FILES');
expect(mapPageNameToCapitalUnifiedName('Map'))
.toBe('MAP');
it("converts other names to uppercase", () => {
expect(mapPageNameToCapitalUnifiedName("files")).toBe("FILES");
expect(mapPageNameToCapitalUnifiedName("Map")).toBe("MAP");
});
it('handles case-insensitive input', () => {
expect(mapPageNameToCapitalUnifiedName('checkmap'))
.toBe('MAP');
expect(mapPageNameToCapitalUnifiedName('CHECKMAP'))
.toBe('MAP');
it("handles case-insensitive input", () => {
expect(mapPageNameToCapitalUnifiedName("checkmap")).toBe("MAP");
expect(mapPageNameToCapitalUnifiedName("CHECKMAP")).toBe("MAP");
});
it('returns undefined for falsy input', () => {
expect(mapPageNameToCapitalUnifiedName(undefined))
.toBeUndefined();
expect(mapPageNameToCapitalUnifiedName(null))
.toBeUndefined();
expect(mapPageNameToCapitalUnifiedName(''))
.toBeUndefined();
it("returns undefined for falsy input", () => {
expect(mapPageNameToCapitalUnifiedName(undefined)).toBeUndefined();
expect(mapPageNameToCapitalUnifiedName(null)).toBeUndefined();
expect(mapPageNameToCapitalUnifiedName("")).toBeUndefined();
});
});
});