Files
Claude-Code-Workflow/ccw/frontend/playwright-report/data/e12890e1d9aac9689b5d6d1b720b5141662d8562.md
catlog22 81725c94b1 Add E2E tests for internationalization across multiple pages
- Implemented navigation.spec.ts to test language switching and translation of navigation elements.
- Created sessions-page.spec.ts to verify translations on the sessions page, including headers, status badges, and date formatting.
- Developed settings-page.spec.ts to ensure settings page content is translated and persists across sessions.
- Added skills-page.spec.ts to validate translations for skill categories, action buttons, and empty states.
2026-01-30 22:54:21 +08:00

6.2 KiB

Page snapshot

- generic [ref=e3]:
  - banner [ref=e4]:
    - link "navigation.header.brand" [ref=e6] [cursor=pointer]:
      - /url: /
      - img [ref=e7]
      - generic [ref=e11]: navigation.header.brand
    - generic [ref=e12]:
      - combobox "Select language" [active] [ref=e13] [cursor=pointer]:
        - img [ref=e14]
        - generic:
          - generic:
            - generic: 🇨🇳
            - generic: 中文
        - img [ref=e18]
      - button "common.aria.switchToDarkMode" [ref=e20] [cursor=pointer]:
        - img [ref=e21]
      - button "common.aria.userMenu" [ref=e24] [cursor=pointer]:
        - img [ref=e25]
  - generic [ref=e28]:
    - navigation "Claude Code Workflow" [ref=e29]:
      - navigation [ref=e30]:
        - list [ref=e31]:
          - listitem [ref=e32]:
            - link "navigation.main.home" [ref=e33] [cursor=pointer]:
              - /url: /
              - img [ref=e34]
              - generic [ref=e37]: navigation.main.home
          - listitem [ref=e38]:
            - link "navigation.main.sessions" [ref=e39] [cursor=pointer]:
              - /url: /sessions
              - img [ref=e40]
              - generic [ref=e42]: navigation.main.sessions
          - listitem [ref=e43]:
            - link "navigation.main.liteTasks" [ref=e44] [cursor=pointer]:
              - /url: /lite-tasks
              - img [ref=e45]
              - generic [ref=e47]: navigation.main.liteTasks
          - listitem [ref=e48]:
            - link "navigation.main.project" [ref=e49] [cursor=pointer]:
              - /url: /project
              - img [ref=e50]
              - generic [ref=e55]: navigation.main.project
          - listitem [ref=e56]:
            - link "navigation.main.history" [ref=e57] [cursor=pointer]:
              - /url: /history
              - img [ref=e58]
              - generic [ref=e61]: navigation.main.history
          - listitem [ref=e62]:
            - link "navigation.main.orchestrator" [ref=e63] [cursor=pointer]:
              - /url: /orchestrator
              - img [ref=e64]
              - generic [ref=e68]: navigation.main.orchestrator
          - listitem [ref=e69]:
            - link "navigation.main.loops" [ref=e70] [cursor=pointer]:
              - /url: /loops
              - img [ref=e71]
              - generic [ref=e76]: navigation.main.loops
          - listitem [ref=e77]:
            - link "navigation.main.issues" [ref=e78] [cursor=pointer]:
              - /url: /issues
              - img [ref=e79]
              - generic [ref=e81]: navigation.main.issues
          - listitem [ref=e82]:
            - link "navigation.main.skills" [ref=e83] [cursor=pointer]:
              - /url: /skills
              - img [ref=e84]
              - generic [ref=e86]: navigation.main.skills
          - listitem [ref=e87]:
            - link "navigation.main.commands" [ref=e88] [cursor=pointer]:
              - /url: /commands
              - img [ref=e89]
              - generic [ref=e91]: navigation.main.commands
          - listitem [ref=e92]:
            - link "navigation.main.memory" [ref=e93] [cursor=pointer]:
              - /url: /memory
              - img [ref=e94]
              - generic [ref=e104]: navigation.main.memory
          - listitem [ref=e105]:
            - link "navigation.main.settings" [ref=e106] [cursor=pointer]:
              - /url: /settings
              - img [ref=e107]
              - generic [ref=e110]: navigation.main.settings
          - listitem [ref=e111]:
            - link "navigation.main.help" [ref=e112] [cursor=pointer]:
              - /url: /help
              - img [ref=e113]
              - generic [ref=e116]: navigation.main.help
      - button "navigation.sidebar.collapseAria" [ref=e118] [cursor=pointer]:
        - img [ref=e119]
        - generic [ref=e122]: navigation.sidebar.collapse
    - main [ref=e123]:
      - generic [ref=e124]:
        - generic [ref=e125]:
          - generic [ref=e126]:
            - heading "skills.title" [level=1] [ref=e127]:
              - img [ref=e128]
              - text: skills.title
            - paragraph [ref=e130]: skills.description
          - generic [ref=e131]:
            - button "common.actions.refresh" [disabled]:
              - img
              - text: common.actions.refresh
            - button "skills.actions.install" [ref=e132] [cursor=pointer]:
              - img [ref=e133]
              - text: skills.actions.install
        - generic [ref=e134]:
          - generic [ref=e135]:
            - generic [ref=e136]:
              - img [ref=e137]
              - generic [ref=e139]: "0"
            - paragraph [ref=e140]: common.stats.totalSkills
          - generic [ref=e141]:
            - generic [ref=e142]:
              - img [ref=e143]
              - generic [ref=e145]: "0"
            - paragraph [ref=e146]: skills.state.enabled
          - generic [ref=e147]:
            - generic [ref=e148]:
              - img [ref=e149]
              - generic [ref=e153]: "0"
            - paragraph [ref=e154]: skills.state.disabled
          - generic [ref=e155]:
            - generic [ref=e156]:
              - img [ref=e157]
              - generic [ref=e160]: "0"
            - paragraph [ref=e161]: skills.card.category
        - generic [ref=e162]:
          - generic [ref=e163]:
            - img [ref=e164]
            - textbox "skills.filters.searchPlaceholder" [ref=e167]
          - generic [ref=e168]:
            - combobox [ref=e169] [cursor=pointer]:
              - generic: skills.filters.all
              - img [ref=e170]
            - combobox [ref=e172] [cursor=pointer]:
              - generic: skills.filters.allSources
              - img [ref=e173]
            - combobox [ref=e175] [cursor=pointer]:
              - generic: skills.filters.all
              - img [ref=e176]
        - generic [ref=e178]:
          - button "skills.filters.all (0)" [ref=e179] [cursor=pointer]
          - button "skills.state.enabled (0)" [ref=e180] [cursor=pointer]:
            - img [ref=e181]
            - text: skills.state.enabled (0)
          - button "skills.state.disabled (0)" [ref=e183] [cursor=pointer]:
            - img [ref=e184]
            - text: skills.state.disabled (0)
          - button "skills.view.compact" [ref=e189] [cursor=pointer]