Skip to content

Test modernization: add Vitest unit lane and begin suite migration split #670

Description

@johnpapa

Summary

Let's speed up and modernize the tests!

Execute the approved test modernization plan for johnpapa/vscode-peacock using a phased approach:

  • Total tests: 257
    • 200 extension/live-share tests
    • 57 docs e2e Playwright tests
  • Current skipped tests: 1 (src/test/suite/status-bar.test.ts uses suite.skip)
  • Target split for extension/live-share tests:
    • 130 unit-fast tests (Vitest lane)
    • 70 host contract tests (VS Code host lane)
    • 57 docs e2e tests unchanged
  • Refactor scope: 14 suite files / 140 tests require extraction-and-split

Approved per-file migration table

# File Tests Planned lane split Refactor level
1 src/test/suite/affected-elements.test.ts 40 Split Unit 36 / Host 4 High refactor
2 src/test/suite/activity-bar-top.test.ts 9 Split Unit 7 / Host 2 Medium
3 src/test/suite/basic.test.ts 7 Host 7 No refactor
4 src/test/suite/built-in-colors.test.ts 8 Split Unit 5 / Host 3 Medium
5 src/test/suite/color-input.test.ts 26 Split Unit 24 / Host 2 High
6 src/test/suite/config-changes.test.ts 5 Host 5 No refactor
7 src/test/suite/current-color.test.ts 4 Host 4 No refactor
8 src/test/suite/cursor-titlebar.test.ts 2 Split Unit 1 / Host 1 Low
9 src/test/suite/darken-lighten.test.ts 2 Split Unit 1 / Host 1 Low
10 src/test/suite/documentation.test.ts 1 Host 1 No refactor
11 src/test/suite/editing-color-settings.test.ts 24 Split Unit 20 / Host 4 High
12 src/test/suite/element-adjustments.test.ts 7 Split Unit 5 / Host 2 Medium
13 src/test/suite/excluded-settings.test.ts 3 Split Unit 2 / Host 1 Medium
14 src/test/suite/favorite-colors.test.ts 4 Split Unit 3 / Host 1 Medium
15 src/test/suite/foreground.test.ts 6 Unit 6 Low
16 src/test/suite/notification.test.ts 2 Unit 2 No refactor
17 src/test/suite/object-library.test.ts 12 Unit 12 No refactor
18 src/test/suite/remote.test.ts 13 Host 13 No refactor
19 src/test/suite/reset.test.ts 4 Host 4 No refactor
20 src/test/suite/save-favorite-color.test.ts 3 Split Unit 2 / Host 1 Medium
21 src/test/suite/save-starter-favorite-colors.test.ts 3 Split Unit 2 / Host 1 Medium
22 src/test/suite/set-sidebar-darkness-level.test.ts 3 Split Unit 2 / Host 1 Medium
23 src/test/suite/status-bar.test.ts 1 Host 1 skipped Optional rehab/removal decision
24 src/test/suite/surprise-me-on-startup.test.ts 3 Host 3 No refactor
25 src/live-share/test/suite/live-share.test.ts 8 Host 8 No refactor
26 e2e/homepage.spec.ts 7 E2E unchanged
27 e2e/images.spec.ts 4 E2E unchanged
28 e2e/links.spec.ts 5 E2E unchanged
29 e2e/navigation.spec.ts 8 E2E unchanged
30 e2e/pages.spec.ts 9 E2E unchanged
31 e2e/screenshots.spec.ts 9 E2E unchanged
32 e2e/search.spec.ts 5 E2E unchanged
33 e2e/styling.spec.ts 10 E2E unchanged

First implementation slice

  1. Add Vitest setup and scripts (test:unit, test:host) while preserving current host runner.
  2. Move pure suites first (object-library, notification) to the unit lane.
  3. Begin split pattern with low-risk files (foreground and one split suite such as cursor-titlebar) to prove extraction + host/unit separation.
  4. Keep changes focused and reviewable with docs/changelog updates and CI-ready checks.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions