Commit Graph

1028 Commits

Author SHA1 Message Date
aa2661b556 Add Playwright E2E tests replacing Cypress with MSW integration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 18:52:18 +08:00
67a723207f Remove old Cypress fixture files now served by MSW handlers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 09:30:38 +08:00
3d1de913f8 Migrate Cypress E2E from cy.intercept to MSW service worker
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 09:30:22 +08:00
b978071f94 Add conditional MSW browser worker startup for E2E testing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 08:24:33 +08:00
3918755b7c Migrate Vitest store tests from vi.mock to MSW request handlers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 07:48:53 +08:00
7e052f0d36 Add MSW infrastructure: handlers, fixtures, request-log, and Vitest setup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 07:38:02 +08:00
0ff03ec0ef Suppress expected console.error output in error-path tests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 20:05:04 +08:00
0af0ff39d4 Remove unused cytoscape-spread and split build into manual chunks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:39:05 +08:00
aeb6d207c5 Export store interfaces and fix dotenv code block to resolve TypeDoc warnings
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:26:29 +08:00
97748bea60 Fix JSDoc errors: remove unsupported @constant tags and correct @param names
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:20:05 +08:00
093eabaea3 Add TypeDoc for API documentation generation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:18:07 +08:00
5020d91277 Rewrite README with project overview, tech stack, and usage guide
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:10:28 +08:00
fe8a1e8a00 Replace hard-coded test passwords with crypto.randomUUID() (S2068)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:51:34 +08:00
30ea7711ce Remove outdated doc directory with stale project structure snapshot
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:40:28 +08:00
ced1ff617a Replace void with expect().toBeDefined() for getter side-effect access (S3735)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:30:45 +08:00
af69b6695c Use defineOptions for beforeRouteEnter, eliminating dual script block (S3863)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:25:00 +08:00
dcb497d64b Use void operator for getter side-effect access in tests (S1481)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:11:19 +08:00
289d4213e2 Refactor MainContainer to use onBeforeRouteUpdate Composition API, eliminating dual script block (S3863)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:10:27 +08:00
bbca475bbe Replace async IIFE with onMounted for page initialization (S7785)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 08:47:34 +08:00
e9e588385b Replace JSON.parse(JSON.stringify()) with lodash-es cloneDeep for deep cloning Vue reactive data (S7784)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 08:34:31 +08:00
2374363484 Refactor mapPathStore: extract helpers, use for-of, remove unnecessary await, collapse else-if (S3776, S4138, S4123, S6660)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:38:11 +08:00
67a26ae726 Remove TODO comment from conformanceInput store (S1135)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:38:06 +08:00
fad0b6f50e Assign getter access to variable to avoid bare expression statements (S905)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:38:02 +08:00
cb22ce72c1 Collapse if-only-in-else to else-if (S6660)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:57 +08:00
4cd61aed0d Use childNode.remove() instead of parentNode.removeChild() (S7762)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:50 +08:00
75adbd9c6b Use Math.min to simplify ternary clamping expressions (S7766)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:46 +08:00
731649ed0a Use throw instead of return Promise.reject in async error handlers (S7746)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:42 +08:00
a54b4cc7bb Use globalThis instead of window for global object access (S7764)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 07:37:37 +08:00
81df955845 Reduce cognitive complexity by extracting helper functions (S3776)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:03:44 +08:00
201f94e133 Use String.raw for backslash-escaped CSS selectors in Cypress tests (S7780)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:02:33 +08:00
e522bd0796 Move functions to outer scope for clarity (S7721)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:01:29 +08:00
5942c9ff51 Handle caught exceptions properly in catch blocks (S2486)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 01:00:32 +08:00
804d78837b Flip negated conditions to positive for readability (S7735)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:59:37 +08:00
5a936cad97 Use nullish coalescing operator (S6606) and fix duplicate id (S7930)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:55:19 +08:00
ad53494f26 Use optional chaining instead of repeated access (S6582)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:53:48 +08:00
d4429571d5 Revert "Use structuredClone instead of JSON.parse(JSON.stringify()) (S7784)"
This reverts commit 2b0dadedd4.
2026-03-10 00:50:31 +08:00
f0065db295 Remove conditional that returns the same value on both branches (S3923)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:32:50 +08:00
4e5129ca13 Use Set with .has() instead of Array with .includes() (S7776)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:32:30 +08:00
1df984c567 Use default parameter instead of reassignment (S7760)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:31:57 +08:00
468fa63201 Remove zero fractions from number literals (S7748)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:31:40 +08:00
94e200bded Use codePointAt/fromCodePoint instead of charCodeAt/fromCharCode (S7758)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:31:21 +08:00
1c8ac09184 Compare with undefined directly instead of using typeof (S7741)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:30:58 +08:00
5d143d4cc3 Use globalThis instead of window (S7764)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:30:33 +08:00
ebd198e28d Use String.replaceAll() instead of String.replace() with /g flag (S7781)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:29:28 +08:00
2b0dadedd4 Use structuredClone instead of JSON.parse(JSON.stringify()) (S7784)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:28:30 +08:00
3768c6e5ec Use Number.parseInt/parseFloat/isNaN/isFinite instead of globals (S7773)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:26:59 +08:00
12068281e9 Remove unused imports and variables (S1128, S1481, S1854)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:18:03 +08:00
6d13bc9eb8 Replace deprecated PrimeVue components with their successors (S1874)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:14:01 +08:00
716edb33b7 Initialize result to null and remove redundant await in MoreModal switchCaseData
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:38:13 +08:00
1258829c01 Add null guard for infiniteData.length in MoreModal handleScroll
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 23:37:34 +08:00