🎭 E2E Test Results (Cypress)

Cypress E2E test run

✅ All tests passed
664
Passing
0
Failing
0
Pending
664
Total Tests
0
Spec Files

📜 Full Test Output

===== e2e-output-critical.log =====
1: starting server using command "npm run preview"
and when url "[ 'http://localhost:4173' ]" is responding with HTTP status code 200
running tests using command "npx cypress run --config video=false --spec 'cypress/e2e/homepage.cy.js,cypress/e2e/accessibility.cy.js,cypress/e2e/sitemap.cy.js'"


> riksdagsmonitor@1.0.7 preview
> vite preview

  ➜  Local:   http://localhost:4173/
  ➜  Network: http://10.1.0.196:4173/
It looks like this is your first time using Cypress: 15.16.0

[STARTED] [08:47:56]  Verifying Cypress can run /home/runner/.cache/Cypress/15.16.0/Cypress
[COMPLETED] [08:48:00]  Verified Cypress!       /home/runner/.cache/Cypress/15.16.0/Cypress

Opening Cypress...
(node:3245) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Warning: The allowCypressEnv configuration option is enabled. This allows any browser code to read values from Cypress.env(). This is insecure and will be removed in a future major version.

1. Replace Cypress.env() calls with cy.env() (for sensitive values) or Cypress.expose() (for public configuration)
2. Set allowCypressEnv: false in your Cypress configuration to disable Cypress.env()

Learn more: https://on.cypress.io/cypress-env-migration


====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:        15.16.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.3.0 (/opt/hostedtoolcache/node/26.3.0/x64/bin/node)                        │
  │ Specs:          3 found (homepage.cy.js, accessibility.cy.js, sitemap.cy.js)                   │
  │ Searched:       cypress/e2e/homepage.cy.js, cypress/e2e/accessibility.cy.js, cypress/e2e/sitem │
  │                 ap.cy.js                                                                       │
  │ Experiments:    experimentalMemoryManagement=true                                              │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  homepage.cy.js                                                                  (1 of 3)


  Riksdagsmonitor Homepage
    ✓ should load homepage successfully (653ms)
    ✓ should have proper document structure (653ms)
    ✓ should display site logo/title (611ms)
    ✓ should have navigation menu (611ms)
    ✓ should be responsive on mobile (649ms)
    ✓ should be responsive on tablet (624ms)
    ✓ should be responsive on desktop (650ms)
    ✓ should have language switcher (669ms)
    ✓ should use system-ui font stack (no third-party font CDN) (610ms)
    ✓ should have proper meta tags (651ms)
    ✓ should have Open Graph tags (658ms)
    ✓ should have Twitter Card tags (592ms)
    ✓ should expose the Service Worker API for PWA install + offline support (626ms)


  13 passing (9s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        13                                                                               │
  │ Passing:      13                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     8 seconds                                                                        │
  │ Spec Ran:     homepage.cy.js                                                                   │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  accessibility.cy.js                                                             (2 of 3)


  Accessibility (WCAG 2.1 AA)
    ✓ should have valid HTML structure (407ms)
    ✓ should have proper heading hierarchy (196ms)
    ✓ should have alt text on images (233ms)
    ✓ should have labels for form inputs (145ms)
    ✓ should have ARIA roles on interactive elements (169ms)
    ✓ should have visible focus indicators (168ms)
    ✓ should be keyboard navigable (174ms)
    ✓ should have sufficient color contrast (187ms)
    ✓ should have language attribute on HTML tag (185ms)
    ✓ should have skip to content link (158ms)
    ✓ should have skip link as first focusable element (161ms)
    ✓ should support reduced motion preference (352ms)

  Multi-Language Support
    ✓ should load SV version (150ms)
    ✓ should load DA version (189ms)
    ✓ should load NO version (188ms)
    ✓ should load FI version (161ms)
    ✓ should load DE version (147ms)
    ✓ should load FR version (151ms)
    ✓ should load ES version (185ms)
    ✓ should load NL version (145ms)
    ✓ should load AR version (280ms)
    ✓ should load HE version (160ms)
    ✓ should load JA version (472ms)
    ✓ should load KO version (318ms)
    ✓ should load ZH version (279ms)
    ✓ should have proper RTL support for Arabic (250ms)
    ✓ should have proper RTL support for Hebrew (189ms)
    ✓ should have language switcher links (208ms)


  28 passing (7s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        28                                                                               │
  │ Passing:      28                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     7 seconds                                                                        │
  │ Spec Ran:     accessibility.cy.js                                                              │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  sitemap.cy.js                                                                   (3 of 3)


  Sitemap Pages
    English Sitemap
      ✓ should load sitemap successfully (460ms)
      ✓ should have proper document structure (295ms)
      ✓ should have sitemap heading (278ms)
      ✓ should have multiple links (298ms)
      ✓ should have organized sections (232ms)
      ✓ should have links to main pages (298ms)
      ✓ should have valid internal links (242ms)
      ✓ should have proper meta tags (340ms)
      ✓ should be responsive on mobile (342ms)
    Multi-Language Sitemap Support
      Swedish Sitemap (sv)
        ✓ should load Swedish sitemap successfully (284ms)
        ✓ should have proper lang attribute for Swedish (249ms)
        ✓ should have proper dir attribute for Swedish (275ms)
        ✓ should have links in Swedish (324ms)
        ✓ should have sitemap heading in Swedish (291ms)
      Danish Sitemap (da)
        ✓ should load Danish sitemap successfully (265ms)
        ✓ should have proper lang attribute for Danish (231ms)
        ✓ should have proper dir attribute for Danish (232ms)
        ✓ should have links in Danish (249ms)
        ✓ should have sitemap heading in Danish (191ms)
      Norwegian Sitemap (no)
        ✓ should load Norwegian sitemap successfully (239ms)
        ✓ should have proper lang attribute for Norwegian (218ms)
        ✓ should have proper dir attribute for Norwegian (188ms)
        ✓ should have links in Norwegian (192ms)
        ✓ should have sitemap heading in Norwegian (190ms)
      Finnish Sitemap (fi)
        ✓ should load Finnish sitemap successfully (194ms)
        ✓ should have proper lang attribute for Finnish (186ms)
        ✓ should have proper dir attribute for Finnish (100ms)
        ✓ should have links in Finnish (127ms)
        ✓ should have sitemap heading in Finnish (201ms)
      German Sitemap (de)
        ✓ should load German sitemap successfully (195ms)
        ✓ should have proper lang attribute for German (240ms)
        ✓ should have proper dir attribute for German (220ms)
        ✓ should have links in German (196ms)
        ✓ should have sitemap heading in German (188ms)
      French Sitemap (fr)
        ✓ should load French sitemap successfully (219ms)
        ✓ should have proper lang attribute for French (193ms)
        ✓ should have proper dir attribute for French (188ms)
        ✓ should have links in French (190ms)
        ✓ should have sitemap heading in French (272ms)
      Spanish Sitemap (es)
        ✓ should load Spanish sitemap successfully (199ms)
        ✓ should have proper lang attribute for Spanish (188ms)
        ✓ should have proper dir attribute for Spanish (210ms)
        ✓ should have links in Spanish (180ms)
        ✓ should have sitemap heading in Spanish (214ms)
      Dutch Sitemap (nl)
        ✓ should load Dutch sitemap successfully (212ms)
        ✓ should have proper lang attribute for Dutch (187ms)
        ✓ should have proper dir attribute for Dutch (135ms)
        ✓ should have links in Dutch (84ms)
        ✓ should have sitemap heading in Dutch (217ms)
      Arabic Sitemap (ar)
        ✓ should load Arabic sitemap successfully (357ms)
        ✓ should have proper lang attribute for Arabic (373ms)
        ✓ should have proper dir attribute for Arabic (370ms)
        ✓ should have links in Arabic (355ms)
        ✓ should have sitemap heading in Arabic (343ms)
      Hebrew Sitemap (he)
        ✓ should load Hebrew sitemap successfully (284ms)
        ✓ should have proper lang attribute for Hebrew (297ms)
        ✓ should have proper dir attribute for Hebrew (262ms)
        ✓ should have links in Hebrew (227ms)
        ✓ should have sitemap heading in Hebrew (256ms)
      Japanese Sitemap (ja)
        ✓ should load Japanese sitemap successfully (2718ms)
        ✓ should have proper lang attribute for Japanese (2361ms)
        ✓ should have proper dir attribute for Japanese (2541ms)
        ✓ should have links in Japanese (2499ms)
        ✓ should have sitemap heading in Japanese (2522ms)
      Korean Sitemap (ko)
        ✓ should load Korean sitemap successfully (625ms)
        ✓ should have proper lang attribute for Korean (514ms)
        ✓ should have proper dir attribute for Korean (645ms)
        ✓ should have links in Korean (518ms)
        ✓ should have sitemap heading in Korean (524ms)
      Chinese Sitemap (zh)
        ✓ should load Chinese sitemap successfully (611ms)
        ✓ should have proper lang attribute for Chinese (621ms)
        ✓ should have proper dir attribute for Chinese (509ms)
        ✓ should have links in Chinese (488ms)
        ✓ should have sitemap heading in Chinese (567ms)
    RTL Sitemap Support
      ✓ should have proper RTL layout for Arabic (362ms)
      ✓ should have proper RTL layout for Hebrew (272ms)
    Sitemap Link Organization
      ✓ should have dashboard links (244ms)
      ✓ should have news links (229ms)
      ✓ should have language variant links (257ms)
    Sitemap Accessibility
      ✓ should have proper heading hierarchy (289ms)
      ✓ should have keyboard navigable links (245ms)
      ✓ should have descriptive link text (211ms)
      ✓ should not have empty links (1830ms)
    Sitemap Performance
      ✓ should load quickly (261ms)
      ✓ should not have broken internal links (sample) (407ms)
    Sitemap Responsive Design
      ✓ should be responsive on Mobile (288ms)
      ✓ should be responsive on Tablet (275ms)
      ✓ should be responsive on Desktop (307ms)
    Sitemap Navigation
      ✓ should have link back to homepage (213ms)
      ✓ should have navigation menu (215ms)


  90 passing (44s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        90                                                                               │
  │ Passing:      90                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     43 seconds                                                                       │
  │ Spec Ran:     sitemap.cy.js                                                                    │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


====================================================================================================

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  homepage.cy.js                           00:08       13       13        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  accessibility.cy.js                      00:07       28       28        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  sitemap.cy.js                            00:43       90       90        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        00:59      131      131        -        -        -  


===== e2e-output-dashboards-extra.log =====
1: starting server using command "npm run preview"
and when url "[ 'http://localhost:4173' ]" is responding with HTTP status code 200
running tests using command "npx cypress run --config video=false --spec 'cypress/e2e/all-dashboards.cy.js,cypress/e2e/politician-dashboard.cy.js'"


> riksdagsmonitor@1.0.7 preview
> vite preview

  ➜  Local:   http://localhost:4173/
  ➜  Network: http://10.1.0.181:4173/
It looks like this is your first time using Cypress: 15.16.0

[STARTED] [08:48:05]  Verifying Cypress can run /home/runner/.cache/Cypress/15.16.0/Cypress
[COMPLETED] [08:48:09]  Verified Cypress!       /home/runner/.cache/Cypress/15.16.0/Cypress

Opening Cypress...
(node:3352) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Warning: The allowCypressEnv configuration option is enabled. This allows any browser code to read values from Cypress.env(). This is insecure and will be removed in a future major version.

1. Replace Cypress.env() calls with cy.env() (for sensitive values) or Cypress.expose() (for public configuration)
2. Set allowCypressEnv: false in your Cypress configuration to disable Cypress.env()

Learn more: https://on.cypress.io/cypress-env-migration


====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:        15.16.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.3.0 (/opt/hostedtoolcache/node/26.3.0/x64/bin/node)                        │
  │ Specs:          2 found (all-dashboards.cy.js, politician-dashboard.cy.js)                     │
  │ Searched:       cypress/e2e/all-dashboards.cy.js, cypress/e2e/politician-dashboard.cy.js       │
  │ Experiments:    experimentalMemoryManagement=true                                              │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  all-dashboards.cy.js                                                            (1 of 2)


  All Dashboards - Comprehensive Coverage
    Party Dashboard
      ✓ should mount the dashboard container and remain visible (868ms)
      ✓ should have dashboard heading (284ms)
      ✓ should have data attribution (232ms)
      Chart.js Charts
        ✓ should have partyEffectivenessChart canvas (261ms)
        ✓ partyEffectivenessChart should be rendered by Chart.js (734ms)
        ✓ should have partyComparisonChart canvas (308ms)
        ✓ partyComparisonChart should be rendered by Chart.js (634ms)
        ✓ should have partyMomentumChart canvas (320ms)
        ✓ partyMomentumChart should be rendered by Chart.js (713ms)
      D3.js Visualizations
        ✓ should have coalitionAlignmentChart container (349ms)
        ✓ coalitionAlignmentChart should render D3 SVG (331ms)
        ✓ coalitionAlignmentChart SVG should have content (345ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (331ms)
        ✓ should have screen reader descriptions (318ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (311ms)
        ✓ should be visible on tablet (768px) (315ms)
        ✓ should be visible on desktop (1440px) (320ms)
    Election Cycle Dashboard
      ✓ should mount the dashboard container and remain visible (277ms)
      ✓ should have dashboard heading (215ms)
      ✓ should have data attribution (240ms)
      Chart.js Charts
        ✓ should have cycle-timeline-chart canvas (290ms)
        ✓ cycle-timeline-chart should be rendered by Chart.js (638ms)
        ✓ should have risk-forecast-chart canvas (296ms)
        ✓ risk-forecast-chart should be rendered by Chart.js (635ms)
        ✓ should have temporal-trends-chart canvas (229ms)
        ✓ temporal-trends-chart should be rendered by Chart.js (561ms)
        ✓ should have party-tier-chart canvas (261ms)
        ✓ party-tier-chart should be rendered by Chart.js (623ms)
      D3.js Visualizations
        ✓ should have decision-heatmap container (323ms)
        ✓ decision-heatmap should render D3 SVG (235ms)
        ✓ decision-heatmap SVG should have content (256ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (235ms)
        ✓ should have screen reader descriptions (261ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (287ms)
        ✓ should be visible on tablet (768px) (371ms)
        ✓ should be visible on desktop (1440px) (263ms)
    Committee Dashboard
      ✓ should mount the dashboard container and remain visible (251ms)
      ✓ should have dashboard heading (699ms)
      ✓ should have data attribution (265ms)
      Chart.js Charts
        ✓ should have committeeComparisonChart canvas (232ms)
        ✓ committeeComparisonChart should be rendered by Chart.js (2698ms)
        ✓ should have decisionEffectivenessChart canvas (249ms)
        ✓ decisionEffectivenessChart should be rendered by Chart.js (3387ms)
        ✓ should have seasonalPatternsChart canvas (264ms)
        ✓ seasonalPatternsChart should be rendered by Chart.js (2658ms)
      D3.js Visualizations
        ✓ should have committeeNetwork container (243ms)
        ✓ committeeNetwork should render D3 SVG (308ms)
        ✓ committeeNetwork SVG should have content (261ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (264ms)
        ✓ should have screen reader descriptions (333ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (305ms)
        ✓ should be visible on tablet (768px) (279ms)
        ✓ should be visible on desktop (1440px) (285ms)
    Coalition Dashboard
      ✓ should mount the dashboard container and remain visible (248ms)
      ✓ should have dashboard heading (244ms)
      ✓ should have data attribution (240ms)
      Chart.js Charts
        ✓ should have votingAnomalyChart canvas (243ms)
        ✓ votingAnomalyChart should be rendered by Chart.js (631ms)
        ✓ should have behavioralPatternsChart canvas (255ms)
        ✓ behavioralPatternsChart should be rendered by Chart.js (576ms)
        ✓ should have decisionTrendsChart canvas (338ms)
        ✓ decisionTrendsChart should be rendered by Chart.js (653ms)
      D3.js Visualizations
        ✓ should have coalitionNetwork container (262ms)
        ✓ coalitionNetwork should render D3 SVG (295ms)
        ✓ coalitionNetwork SVG should have content (256ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (277ms)
        ✓ should have screen reader descriptions (261ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (390ms)
        ✓ should be visible on tablet (768px) (347ms)
        ✓ should be visible on desktop (1440px) (400ms)
    Seasonal Patterns Dashboard
      ✓ should mount the dashboard container and remain visible (266ms)
      ✓ should have dashboard heading (228ms)
      ✓ should have data attribution (265ms)
      Chart.js Charts
        ✓ should have zscore-timeline-chart canvas (289ms)
        ✓ zscore-timeline-chart should be rendered by Chart.js (673ms)
        ✓ should have quarter-comparison-chart canvas (261ms)
        ✓ quarter-comparison-chart should be rendered by Chart.js (1208ms)
        ✓ should have classification-chart canvas (265ms)
        ✓ classification-chart should be rendered by Chart.js (702ms)
        ✓ should have qoq-change-chart canvas (263ms)
        ✓ qoq-change-chart should be rendered by Chart.js (663ms)
      D3.js Visualizations
        ✓ should have seasonal-heatmap container (269ms)
        ✓ seasonal-heatmap should render D3 SVG (276ms)
        ✓ seasonal-heatmap SVG should have content (263ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (277ms)
        ✓ should have screen reader descriptions (262ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (423ms)
        ✓ should be visible on tablet (768px) (287ms)
        ✓ should be visible on desktop (1440px) (278ms)
    Pre-Election Dashboard
      ✓ should mount the dashboard container and remain visible (269ms)
      ✓ should have dashboard heading (260ms)
      ✓ should have data attribution (282ms)
      Chart.js Charts
        ✓ should have q4-timeline-chart canvas (259ms)
        ✓ q4-timeline-chart should be rendered by Chart.js (624ms)
        ✓ should have election-comparison-chart canvas (286ms)
        ✓ election-comparison-chart should be rendered by Chart.js (540ms)
        ✓ should have deviation-radar-chart canvas (251ms)
        ✓ deviation-radar-chart should be rendered by Chart.js (651ms)
        ✓ should have party-trends-chart canvas (255ms)
        ✓ party-trends-chart should be rendered by Chart.js (565ms)
        ✓ should have yoy-waterfall-chart canvas (245ms)
        ✓ yoy-waterfall-chart should be rendered by Chart.js (658ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (272ms)
        ✓ should have screen reader descriptions (245ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (309ms)
        ✓ should be visible on tablet (768px) (272ms)
        ✓ should be visible on desktop (1440px) (329ms)
    Anomaly Detection Dashboard
      ✓ should mount the dashboard container and remain visible (270ms)
      ✓ should have dashboard heading (288ms)
      ✓ should have data attribution (244ms)
      Chart.js Charts
        ✓ should have anomaly-timeline-chart canvas (287ms)
        ✓ anomaly-timeline-chart should be rendered by Chart.js (591ms)
        ✓ should have zscore-distribution-chart canvas (285ms)
        ✓ zscore-distribution-chart should be rendered by Chart.js (611ms)
        ✓ should have anomaly-type-chart canvas (252ms)
        ✓ anomaly-type-chart should be rendered by Chart.js (571ms)
        ✓ should have quarterly-frequency-chart canvas (282ms)
        ✓ quarterly-frequency-chart should be rendered by Chart.js (562ms)
      D3.js Visualizations
        ✓ should have severity-heatmap container (349ms)
        ✓ severity-heatmap should render D3 SVG (268ms)
        ✓ severity-heatmap SVG should have content (362ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (308ms)
        ✓ should have screen reader descriptions (276ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (309ms)
        ✓ should be visible on tablet (768px) (309ms)
        ✓ should be visible on desktop (1440px) (340ms)
    Ministry Dashboard
      ✓ should mount the dashboard container and remain visible (230ms)
      ✓ should have dashboard heading (248ms)
      ✓ should have data attribution (256ms)
      Chart.js Charts
        ✓ should have ministerInfluenceChart canvas (250ms)
        ✓ ministerInfluenceChart should be rendered by Chart.js (653ms)
        ✓ should have ministryProductivityChart canvas (256ms)
        ✓ ministryProductivityChart should be rendered by Chart.js (560ms)
        ✓ should have decisionImpactChart canvas (284ms)
        ✓ decisionImpactChart should be rendered by Chart.js (619ms)
      D3.js Visualizations
        ✓ should have ministryRiskHeatMap container (254ms)
        ✓ ministryRiskHeatMap should render D3 SVG (277ms)
        ✓ ministryRiskHeatMap SVG should have content (256ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (270ms)
        ✓ should have screen reader descriptions (289ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (354ms)
        ✓ should be visible on tablet (768px) (389ms)
        ✓ should be visible on desktop (1440px) (316ms)
    Risk Dashboard
      ✓ should mount the dashboard container and remain visible (259ms)
      ✓ should have dashboard heading (288ms)
      ✓ should have data attribution (238ms)
      Chart.js Charts
        ✓ should have riskDistributionChart canvas (259ms)
        ✓ riskDistributionChart should be rendered by Chart.js (1418ms)
        ✓ should have anomalyDetectionChart canvas (276ms)
        ✓ anomalyDetectionChart should be rendered by Chart.js (1578ms)
        ✓ should have crisisResilienceChart canvas (294ms)
        ✓ crisisResilienceChart should be rendered by Chart.js (1295ms)
        ✓ should have riskEvolutionChart canvas (244ms)
        ✓ riskEvolutionChart should be rendered by Chart.js (1337ms)
      D3.js Visualizations
        ✓ should have riskHeatMap container (242ms)
        ✓ riskHeatMap should render D3 SVG (1089ms)
        ✓ riskHeatMap SVG should have content (250ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (320ms)
        ✓ should have screen reader descriptions (242ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (295ms)
        ✓ should be visible on tablet (768px) (270ms)
        ✓ should be visible on desktop (1440px) (415ms)
    Dashboard Integration
      ✓ all 9 dashboards should have a unique slug + container ID (64ms)
      ✓ home page hub should link to every dashboard slug (286ms)
      ✓ every dashboard page should expose a back-to-home link (2650ms)
      ✓ every dashboard page should link to the other 8 dashboards via related-dashboards aside (2801ms)
    Performance
      ✓ every dashboard page should mount its container within 5s (2626ms)
      ✓ parties dashboard renders its first Chart.js canvas with Chart.js instance (522ms)


  168 passing (3m)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        168                                                                              │
  │ Passing:      168                                                                              │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     3 minutes, 30 seconds                                                            │
  │ Spec Ran:     all-dashboards.cy.js                                                             │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  politician-dashboard.cy.js                                                      (2 of 2)


  Politician Dashboard
    Page Loading and Structure
      ✓ should load politician dashboard successfully (513ms)
      ✓ should have proper document structure (280ms)
      ✓ should have dashboard header (204ms)
      ✓ should have chart cards container (195ms)
      ✓ should have proper meta tags (246ms)
      ✓ should have Open Graph tags (208ms)
      ✓ should have canonical link (191ms)
    Chart and Visualization Elements
      ✓ should have chart containers (298ms)
      ✓ should load Chart.js library (308ms)
      ✓ should have chart cards with proper styling (245ms)
      ✓ should have chart titles (254ms)
      ✓ should render canvas elements for charts (264ms)
    Politician Data Display
      ✓ should display politician rankings or data (226ms)
      ✓ should have top rankings section (209ms)
    Responsive Design
      ✓ should be responsive on Mobile (375x667) (304ms)
      ✓ should be responsive on Tablet (768x1024) (237ms)
      ✓ should be responsive on Desktop (1280x720) (246ms)
      ✓ should be responsive on Large Desktop (1920x1080) (317ms)
      ✓ should have mobile-friendly grid layout (314ms)
    Accessibility (WCAG 2.1 AA)
      ✓ should have proper language attribute (221ms)
      ✓ should have proper heading hierarchy (205ms)
      ✓ should have ARIA labels on interactive elements (239ms)
      ✓ should have alt text on images (468ms)
      ✓ should be keyboard navigable (237ms)
      ✓ should have sufficient color contrast (225ms)
    Navigation and Links
      ✓ should have navigation back to homepage (218ms)
      ✓ should have working internal links (214ms)
    Performance
      ✓ should load page within reasonable time (476ms)
      ✓ should not have JavaScript errors (204ms)
    Data Loading States
      ✓ should handle empty state gracefully (238ms)
      ✓ should have loading indicators or data display (200ms)
    CSS and Styling
      ✓ should not load any third-party font CDN (system-ui font stack) (219ms)
      ✓ should have custom styling loaded (264ms)
      ✓ should have cyberpunk theme elements (299ms)


  34 passing (12s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        34                                                                               │
  │ Passing:      34                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     11 seconds                                                                       │
  │ Spec Ran:     politician-dashboard.cy.js                                                       │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


====================================================================================================

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  all-dashboards.cy.js                     03:30      168      168        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  politician-dashboard.cy.js               00:11       34       34        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        03:41      202      202        -        -        -  


===== e2e-output-dashboards.log =====
1: starting server using command "npm run preview"
and when url "[ 'http://localhost:4173' ]" is responding with HTTP status code 200
running tests using command "npx cypress run --config video=false --spec 'cypress/e2e/dashboard-page.cy.js,cypress/e2e/dashboards.cy.js,cypress/e2e/dashboards-no-scroll.cy.js'"


> riksdagsmonitor@1.0.7 preview
> vite preview

  ➜  Local:   http://localhost:4173/
  ➜  Network: http://10.1.0.70:4173/
It looks like this is your first time using Cypress: 15.16.0

[STARTED] [08:47:48]  Verifying Cypress can run /home/runner/.cache/Cypress/15.16.0/Cypress
[COMPLETED] [08:47:52]  Verified Cypress!       /home/runner/.cache/Cypress/15.16.0/Cypress

Opening Cypress...
(node:3342) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Warning: The allowCypressEnv configuration option is enabled. This allows any browser code to read values from Cypress.env(). This is insecure and will be removed in a future major version.

1. Replace Cypress.env() calls with cy.env() (for sensitive values) or Cypress.expose() (for public configuration)
2. Set allowCypressEnv: false in your Cypress configuration to disable Cypress.env()

Learn more: https://on.cypress.io/cypress-env-migration


====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:        15.16.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.3.0 (/opt/hostedtoolcache/node/26.3.0/x64/bin/node)                        │
  │ Specs:          3 found (dashboard-page.cy.js, dashboards.cy.js, dashboards-no-scroll.cy.js)   │
  │ Searched:       cypress/e2e/dashboard-page.cy.js, cypress/e2e/dashboards.cy.js, cypress/e2e/da │
  │                 shboards-no-scroll.cy.js                                                       │
  │ Experiments:    experimentalMemoryManagement=true                                              │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  dashboard-page.cy.js                                                            (1 of 3)


  Dashboard Page - Main English Version
    ✓ should load dashboard page successfully (933ms)
    ✓ should have proper document structure (247ms)
    ✓ should display page heading (365ms)
    ✓ should have navigation menu (388ms)
    ✓ should have language switcher for all 14 languages (277ms)
    ✓ should have CIA data visualization containers (364ms)
    ✓ should be responsive on mobile (341ms)
    ✓ should be responsive on tablet (317ms)
    ✓ should be responsive on desktop (324ms)
    ✓ should have proper meta tags (304ms)
    ✓ should have link back to homepage (304ms)
    ✓ should load CSS styles (280ms)
    ✓ should load JavaScript modules (271ms)

  Dashboard Page - All Language Variants
    Swedish (SV)
      ✓ should load Swedish dashboard page (320ms)
      ✓ should have correct dir attribute for Swedish (289ms)
      ✓ should have proper page structure for Swedish (297ms)
      ✓ should be responsive for Swedish (310ms)
    Danish (DA)
      ✓ should load Danish dashboard page (348ms)
      ✓ should have correct dir attribute for Danish (355ms)
      ✓ should have proper page structure for Danish (339ms)
      ✓ should be responsive for Danish (267ms)
    Norwegian (NO)
      ✓ should load Norwegian dashboard page (302ms)
      ✓ should have correct dir attribute for Norwegian (330ms)
      ✓ should have proper page structure for Norwegian (314ms)
      ✓ should be responsive for Norwegian (263ms)
    Finnish (FI)
      ✓ should load Finnish dashboard page (261ms)
      ✓ should have correct dir attribute for Finnish (233ms)
      ✓ should have proper page structure for Finnish (248ms)
      ✓ should be responsive for Finnish (211ms)
    German (DE)
      ✓ should load German dashboard page (262ms)
      ✓ should have correct dir attribute for German (257ms)
      ✓ should have proper page structure for German (240ms)
      ✓ should be responsive for German (248ms)
    French (FR)
      ✓ should load French dashboard page (240ms)
      ✓ should have correct dir attribute for French (247ms)
      ✓ should have proper page structure for French (311ms)
      ✓ should be responsive for French (217ms)
    Spanish (ES)
      ✓ should load Spanish dashboard page (284ms)
      ✓ should have correct dir attribute for Spanish (214ms)
      ✓ should have proper page structure for Spanish (272ms)
      ✓ should be responsive for Spanish (247ms)
    Dutch (NL)
      ✓ should load Dutch dashboard page (324ms)
      ✓ should have correct dir attribute for Dutch (216ms)
      ✓ should have proper page structure for Dutch (273ms)
      ✓ should be responsive for Dutch (237ms)
    Arabic (AR)
      ✓ should load Arabic dashboard page (314ms)
      ✓ should have correct dir attribute for Arabic (377ms)
      ✓ should have proper page structure for Arabic (303ms)
      ✓ should be responsive for Arabic (223ms)
    Hebrew (HE)
      ✓ should load Hebrew dashboard page (204ms)
      ✓ should have correct dir attribute for Hebrew (242ms)
      ✓ should have proper page structure for Hebrew (371ms)
      ✓ should be responsive for Hebrew (190ms)
    Japanese (JA)
      ✓ should load Japanese dashboard page (348ms)
      ✓ should have correct dir attribute for Japanese (313ms)
      ✓ should have proper page structure for Japanese (272ms)
      ✓ should be responsive for Japanese (273ms)
    Korean (KO)
      ✓ should load Korean dashboard page (253ms)
      ✓ should have correct dir attribute for Korean (288ms)
      ✓ should have proper page structure for Korean (254ms)
      ✓ should be responsive for Korean (278ms)
    Chinese (ZH)
      ✓ should load Chinese dashboard page (250ms)
      ✓ should have correct dir attribute for Chinese (290ms)
      ✓ should have proper page structure for Chinese (401ms)
      ✓ should be responsive for Chinese (334ms)

  Dashboard Page - Accessibility
    ✓ should have valid HTML lang attribute (306ms)
    ✓ should have proper heading hierarchy (211ms)
    ✓ should have alt text on images (if any) (279ms)
    ✓ should have ARIA labels on charts (if any) (299ms)
    ✓ should be keyboard navigable (199ms)
    ✓ should have visible focus indicators (220ms)

  Dashboard Page - Navigation
    ✓ should navigate from homepage to dashboard (612ms)
    ✓ should navigate from dashboard back to homepage (717ms)
    ✓ should support language switching on dashboard page (272ms)

  Dashboard Page - Performance
    ✓ should load dashboard page within reasonable time (352ms)
    ✓ should handle missing data gracefully (302ms)

  Dashboard Page - RTL Support
    ✓ should have proper RTL layout for Arabic (354ms)
    ✓ should have proper RTL layout for Hebrew (229ms)


  78 passing (34s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        78                                                                               │
  │ Passing:      78                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     34 seconds                                                                       │
  │ Spec Ran:     dashboard-page.cy.js                                                             │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  dashboards.cy.js                                                                (2 of 3)


  Dashboard Functionality
    Party Dashboard
      ✓ should display party dashboard (329ms)
      ✓ should have party effectiveness chart (240ms)
      ✓ should have party comparison chart (200ms)
      ✓ should have coalition alignment chart (149ms)
      ✓ should have party momentum chart (175ms)
      ✓ should render charts after data loads (783ms)
    Anomaly Detection Dashboard
      ✓ should display anomaly dashboard (187ms)
      ✓ should have severity filter (185ms)
      ✓ should have type filter (204ms)
      ✓ should filter anomalies by severity (680ms)
      ✓ should display D3 heatmap (2208ms)
    Seasonal Patterns Dashboard
      ✓ should display seasonal patterns dashboard (149ms)
      ✓ should have year filter (182ms)
      ✓ should have quarter filter (238ms)
    Pre-Election Dashboard
      ✓ should display pre-election dashboard (170ms)
      ✓ should show status cards (210ms)
    Dashboard Accessibility
      ✓ should have ARIA labels on charts (177ms)
      ✓ should have screen reader text (212ms)
      ✓ should be keyboard navigable (214ms)
    Dashboard Performance
      ✓ should load dashboards within reasonable time (188ms)
      ✓ should handle data loading failures without crashing (189ms)
    Dashboard Bundle Integration
      ✓ /dashboards/parties.html ships hashed main bundle (no /src/browser/main.ts) (51ms)
      ✓ /dashboards/pre-election.html ships hashed main bundle (no /src/browser/main.ts) (41ms)
      ✓ /dashboards/coalitions.html ships hashed main bundle (no /src/browser/main.ts) (37ms)
      ✓ /dashboards/committees.html ships hashed main bundle (no /src/browser/main.ts) (39ms)
      ✓ /dashboards/seasonal-patterns.html ships hashed main bundle (no /src/browser/main.ts) (37ms)
      ✓ /dashboards/anomaly-detection.html ships hashed main bundle (no /src/browser/main.ts) (37ms)
      ✓ /dashboards/risk.html ships hashed main bundle (no /src/browser/main.ts) (38ms)
      ✓ /dashboards/ministers.html ships hashed main bundle (no /src/browser/main.ts) (40ms)
      ✓ /dashboards/election-cycle.html ships hashed main bundle (no /src/browser/main.ts) (34ms)
      ✓ runs main.ts → registers Chart.js global on dashboard pages (511ms)


  31 passing (10s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        31                                                                               │
  │ Passing:      31                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     10 seconds                                                                       │
  │ Spec Ran:     dashboards.cy.js                                                                 │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  dashboards-no-scroll.cy.js                                                      (3 of 3)


  Dedicated dashboard pages — no-scroll lazy-load regression
    /dashboards/parties.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (369ms)
      ✓ registers window.Chart and window.d3 without any user scroll (565ms)
      ✓ does not show a visible error fallback on first paint (514ms)
    /dashboards/committees.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (283ms)
      ✓ registers window.Chart and window.d3 without any user scroll (541ms)
      ✓ does not show a visible error fallback on first paint (797ms)
    /dashboards/coalitions.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (551ms)
      ✓ registers window.Chart and window.d3 without any user scroll (547ms)
      ✓ does not show a visible error fallback on first paint (523ms)
    /dashboards/election-cycle.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (250ms)
      ✓ registers window.Chart and window.d3 without any user scroll (550ms)
      ✓ does not show a visible error fallback on first paint (500ms)
    /dashboards/seasonal-patterns.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (224ms)
      ✓ registers window.Chart and window.d3 without any user scroll (549ms)
      ✓ does not show a visible error fallback on first paint (541ms)
    /dashboards/pre-election.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (215ms)
      ✓ registers window.Chart and window.d3 without any user scroll (530ms)
      ✓ does not show a visible error fallback on first paint (492ms)
    /dashboards/anomaly-detection.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (213ms)
      ✓ registers window.Chart and window.d3 without any user scroll (575ms)
      ✓ does not show a visible error fallback on first paint (494ms)
    /dashboards/ministers.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (205ms)
      ✓ registers window.Chart and window.d3 without any user scroll (556ms)
      ✓ does not show a visible error fallback on first paint (554ms)
    /dashboards/risk.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (268ms)
      ✓ registers window.Chart and window.d3 without any user scroll (621ms)
      ✓ does not show a visible error fallback on first paint (497ms)


  27 passing (15s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        27                                                                               │
  │ Passing:      27                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     15 seconds                                                                       │
  │ Spec Ran:     dashboards-no-scroll.cy.js                                                       │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


====================================================================================================

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  dashboard-page.cy.js                     00:34       78       78        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  dashboards.cy.js                         00:10       31       31        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  dashboards-no-scroll.cy.js               00:15       27       27        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        01:00      136      136        -        -        -  


===== e2e-output-i18n.log =====
1: starting server using command "npm run preview"
and when url "[ 'http://localhost:4173' ]" is responding with HTTP status code 200
running tests using command "npx cypress run --config video=false --spec 'cypress/e2e/multi-language-sanity.cy.js'"


> riksdagsmonitor@1.0.7 preview
> vite preview

  ➜  Local:   http://localhost:4173/
  ➜  Network: http://10.1.0.4:4173/
It looks like this is your first time using Cypress: 15.16.0

[STARTED] [08:47:57]  Verifying Cypress can run /home/runner/.cache/Cypress/15.16.0/Cypress
[COMPLETED] [08:48:13]  Verified Cypress!       /home/runner/.cache/Cypress/15.16.0/Cypress

Opening Cypress...
(node:3433) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Warning: The allowCypressEnv configuration option is enabled. This allows any browser code to read values from Cypress.env(). This is insecure and will be removed in a future major version.

1. Replace Cypress.env() calls with cy.env() (for sensitive values) or Cypress.expose() (for public configuration)
2. Set allowCypressEnv: false in your Cypress configuration to disable Cypress.env()

Learn more: https://on.cypress.io/cypress-env-migration


====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:        15.16.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.3.0 (/opt/hostedtoolcache/node/26.3.0/x64/bin/node)                        │
  │ Specs:          1 found (multi-language-sanity.cy.js)                                          │
  │ Searched:       cypress/e2e/multi-language-sanity.cy.js                                        │
  │ Experiments:    experimentalMemoryManagement=true                                              │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  multi-language-sanity.cy.js                                                     (1 of 1)


  Multi-Language Sanity Tests
    Homepage - Representative Languages
      ✓ should load Swedish (sv) homepage (617ms)
      ✓ should have proper lang attribute for Swedish (291ms)
      ✓ should have correct text direction for Swedish (261ms)
      ✓ should have basic page structure for Swedish (293ms)
      ✓ should load German (de) homepage (291ms)
      ✓ should have proper lang attribute for German (228ms)
      ✓ should have correct text direction for German (288ms)
      ✓ should have basic page structure for German (286ms)
      ✓ should load Arabic (ar) homepage (369ms)
      ✓ should have proper lang attribute for Arabic (257ms)
      ✓ should have correct text direction for Arabic (274ms)
      ✓ should have basic page structure for Arabic (321ms)
      ✓ should load Japanese (ja) homepage (701ms)
      ✓ should have proper lang attribute for Japanese (692ms)
      ✓ should have correct text direction for Japanese (711ms)
      ✓ should have basic page structure for Japanese (722ms)
      ✓ should load Chinese (zh) homepage (615ms)
      ✓ should have proper lang attribute for Chinese (510ms)
      ✓ should have correct text direction for Chinese (505ms)
      ✓ should have basic page structure for Chinese (467ms)
    Dashboard - Representative Languages
      ✓ should load Swedish (sv) dashboard (754ms)
      ✓ should have proper lang attribute for Swedish dashboard (463ms)
      ✓ should have correct text direction for Swedish dashboard (723ms)
      ✓ should have basic page structure for Swedish dashboard (374ms)
      ✓ should load German (de) dashboard (834ms)
      ✓ should have proper lang attribute for German dashboard (371ms)
      ✓ should have correct text direction for German dashboard (280ms)
      ✓ should have basic page structure for German dashboard (395ms)
      ✓ should load Arabic (ar) dashboard (699ms)
      ✓ should have proper lang attribute for Arabic dashboard (435ms)
      ✓ should have correct text direction for Arabic dashboard (278ms)
      ✓ should have basic page structure for Arabic dashboard (383ms)
      ✓ should load Japanese (ja) dashboard (818ms)
      ✓ should have proper lang attribute for Japanese dashboard (476ms)
      ✓ should have correct text direction for Japanese dashboard (433ms)
      ✓ should have basic page structure for Japanese dashboard (705ms)
      ✓ should load Chinese (zh) dashboard (686ms)
      ✓ should have proper lang attribute for Chinese dashboard (376ms)
      ✓ should have correct text direction for Chinese dashboard (354ms)
      ✓ should have basic page structure for Chinese dashboard (328ms)
    News - Representative Languages
      Swedish (sv)
        ✓ should load news page (401ms)
        ✓ should have proper lang attribute (320ms)
        ✓ should have correct text direction (313ms)
        ✓ should have basic page structure (310ms)
      German (de)
        ✓ should load news page (341ms)
        ✓ should have proper lang attribute (315ms)
        ✓ should have correct text direction (303ms)
        ✓ should have basic page structure (313ms)
      Arabic (ar)
        ✓ should load news page (516ms)
        ✓ should have proper lang attribute (342ms)
        ✓ should have correct text direction (349ms)
        ✓ should have basic page structure (380ms)
      Japanese (ja)
        ✓ should load news page (588ms)
        ✓ should have proper lang attribute (441ms)
        ✓ should have correct text direction (486ms)
        ✓ should have basic page structure (432ms)
      Chinese (zh)
        ✓ should load news page (592ms)
        ✓ should have proper lang attribute (396ms)
        ✓ should have correct text direction (390ms)
        ✓ should have basic page structure (426ms)
    Language Consistency
      ✓ should have consistent lang attribute across all pages for Swedish (1283ms)
      ✓ should have consistent lang attribute across all pages for German (1082ms)
      ✓ should have consistent lang attribute across all pages for Arabic (1364ms)
      ✓ should have consistent lang attribute across all pages for Japanese (1917ms)
      ✓ should have consistent lang attribute across all pages for Chinese (1619ms)
    RTL Language Specific Tests
      ✓ should have RTL dir attribute on all pages for Arabic (1375ms)
      ✓ should render RTL content properly for Arabic (255ms)
      ✓ should have RTL dir attribute on all pages for Hebrew (1289ms)
      ✓ should render RTL content properly for Hebrew (266ms)
    LTR Language Specific Tests
      ✓ should have LTR or default dir for Swedish on all pages (1279ms)
      ✓ should have LTR or default dir for German on all pages (1110ms)
      ✓ should have LTR or default dir for Japanese on all pages (2014ms)
      ✓ should have LTR or default dir for Chinese on all pages (1556ms)
    Language Switcher Functionality
      ✓ should have language switcher on all pages (1105ms)
      ✓ should allow switching between languages on homepage (2716ms)
    Responsive Design - All Languages
      ✓ should be responsive on Mobile for Swedish homepage (240ms)
      ✓ should be responsive on Desktop for Swedish homepage (234ms)
      ✓ should be responsive on Mobile for Arabic homepage (310ms)
      ✓ should be responsive on Desktop for Arabic homepage (293ms)
      ✓ should be responsive on Mobile for Japanese homepage (658ms)
      ✓ should be responsive on Desktop for Japanese homepage (817ms)
    Meta Tags - All Languages
      ✓ should have proper meta tags for Swedish (237ms)
      ✓ should have proper meta tags for Arabic (283ms)
      ✓ should have proper meta tags for Chinese (419ms)
    Accessibility - All Languages
      ✓ should have accessible structure for Swedish (253ms)
      ✓ should have accessible structure for Hebrew (285ms)
      ✓ should have accessible structure for Korean (447ms)
    Performance - All Languages
      ✓ should load quickly for Swedish (207ms)
      ✓ should load quickly for Arabic (282ms)
      ✓ should load quickly for Japanese (651ms)
    Content Validation - Sample Languages
      ✓ should have meaningful content for Swedish (247ms)
      ✓ should have meaningful content for Arabic (251ms)
      ✓ should have meaningful content for Japanese (612ms)

  Multi-Language Cross-Page Navigation
    ✓ should maintain language when navigating for sv (1626ms)
    ✓ should maintain language when navigating for de (1546ms)
    ✓ should maintain language when navigating for ar (1898ms)
    ✓ should maintain language when navigating for ja (2922ms)


  97 passing (1m)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        97                                                                               │
  │ Passing:      97                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     1 minute, 11 seconds                                                             │
  │ Spec Ran:     multi-language-sanity.cy.js                                                      │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


====================================================================================================

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  multi-language-sanity.cy.js              01:11       97       97        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        01:11       97       97        -        -        -  


===== e2e-output-news.log =====
1: starting server using command "npm run preview"
and when url "[ 'http://localhost:4173' ]" is responding with HTTP status code 200
running tests using command "npx cypress run --config video=false --spec 'cypress/e2e/news-page.cy.js,cypress/e2e/news-articles.cy.js'"


> riksdagsmonitor@1.0.7 preview
> vite preview

  ➜  Local:   http://localhost:4173/
  ➜  Network: http://10.1.0.252:4173/
It looks like this is your first time using Cypress: 15.16.0

[STARTED] [08:47:56]  Verifying Cypress can run /home/runner/.cache/Cypress/15.16.0/Cypress
[COMPLETED] [08:48:01]  Verified Cypress!       /home/runner/.cache/Cypress/15.16.0/Cypress

Opening Cypress...
(node:3349) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Warning: The allowCypressEnv configuration option is enabled. This allows any browser code to read values from Cypress.env(). This is insecure and will be removed in a future major version.

1. Replace Cypress.env() calls with cy.env() (for sensitive values) or Cypress.expose() (for public configuration)
2. Set allowCypressEnv: false in your Cypress configuration to disable Cypress.env()

Learn more: https://on.cypress.io/cypress-env-migration


====================================================================================================

  (Run Starting)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Cypress:        15.16.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.3.0 (/opt/hostedtoolcache/node/26.3.0/x64/bin/node)                        │
  │ Specs:          2 found (news-page.cy.js, news-articles.cy.js)                                 │
  │ Searched:       cypress/e2e/news-page.cy.js, cypress/e2e/news-articles.cy.js                   │
  │ Experiments:    experimentalMemoryManagement=true                                              │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  news-page.cy.js                                                                 (1 of 2)


  News Page - Main English Version
    ✓ should load news page successfully (626ms)
    ✓ should have proper document structure (326ms)
    ✓ should display page heading (242ms)
    ✓ should have navigation menu (299ms)
    ✓ should have language switcher for all 14 languages (268ms)
    ✓ should display news articles or article list (251ms)
    ✓ should have news article links (241ms)
    ✓ should be responsive on mobile (370ms)
    ✓ should be responsive on tablet (323ms)
    ✓ should be responsive on desktop (335ms)
    ✓ should have proper meta tags (243ms)
    ✓ should have link back to homepage (260ms)
    ✓ should load CSS styles (295ms)
    ✓ should load JavaScript (if any) (254ms)

  News Page - All Language Variants
    Swedish (SV)
      ✓ should load Swedish news page (316ms)
      ✓ should have correct dir attribute for Swedish (275ms)
      ✓ should have proper page structure for Swedish (304ms)
      ✓ should be responsive for Swedish (386ms)
    German (DE)
      ✓ should load German news page (312ms)
      ✓ should have correct dir attribute for German (269ms)
      ✓ should have proper page structure for German (300ms)
      ✓ should be responsive for German (276ms)
    Arabic (AR)
      ✓ should load Arabic news page (431ms)
      ✓ should have correct dir attribute for Arabic (360ms)
      ✓ should have proper page structure for Arabic (396ms)
      ✓ should be responsive for Arabic (383ms)
    Hebrew (HE)
      ✓ should load Hebrew news page (390ms)
      ✓ should have correct dir attribute for Hebrew (340ms)
      ✓ should have proper page structure for Hebrew (331ms)
      ✓ should be responsive for Hebrew (341ms)
    Japanese (JA)
      ✓ should load Japanese news page (589ms)
      ✓ should have correct dir attribute for Japanese (539ms)
      ✓ should have proper page structure for Japanese (489ms)
      ✓ should be responsive for Japanese (427ms)

  News Page - Accessibility
    ✓ should have valid HTML lang attribute (251ms)
    ✓ should have proper heading hierarchy (260ms)
    ✓ should have alt text on images (if any) (273ms)
    ✓ should be keyboard navigable (267ms)
    ✓ should have visible focus indicators (247ms)
    ✓ should have semantic HTML for articles (252ms)

  News Page - Navigation
    ✓ should navigate from homepage to news page (647ms)
    ✓ should navigate from news page back to homepage (615ms)
    ✓ should support language switching on news page (1726ms)
    ✓ should link to individual news articles (634ms)

  News Page - Performance
    ✓ should load news page within reasonable time (305ms)
    ✓ should handle errors gracefully (263ms)

  News Page - RTL Support
    ✓ should have proper RTL layout for Arabic (350ms)
    ✓ should have proper RTL layout for Hebrew (411ms)

  News Page - Content Validation
    ✓ should have news metadata (dates, categories) (305ms)
    ✓ should have proper article structure (266ms)
    ✓ should have readable text content (319ms)

  News Page - Article Categories
    ✓ should show different news categories or types (275ms)


  52 passing (22s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        52                                                                               │
  │ Passing:      52                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     22 seconds                                                                       │
  │ Spec Ran:     news-page.cy.js                                                                  │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


────────────────────────────────────────────────────────────────────────────────────────────────────
                                                                                                    
  Running:  news-articles.cy.js                                                             (2 of 2)


  News Articles
    Sample Article Loading
      ✓ should load article: /news/2026-02-14-committee-reports-en.html (341ms)
      ✓ should load article: /news/2026-02-14-government-propositions-en.html (170ms)
      ✓ should load article: /news/2026-02-14-opposition-motions-en.html (171ms)
      ✓ should load article: /news/2026-02-14-week-ahead-feb-15-21-en.html (137ms)
      ✓ should load article: /news/2026-02-13-evening-analysis-en.html (175ms)
    Article Page Structure
      ✓ should have proper document structure (154ms)
      ✓ should have article heading (146ms)
      ✓ should have article content (164ms)
      ✓ should have proper meta tags (141ms)
      ✓ should have Open Graph tags for social sharing (166ms)
      ✓ should have article metadata (143ms)
      ✓ should have readable typography (141ms)
    Article Content Validation
      ✓ should have paragraphs (140ms)
      ✓ should have headings hierarchy (183ms)
      ✓ should not have Lorem Ipsum placeholder text (189ms)
      ✓ should have substantial content (164ms)
    Multi-Language Article Support
      ✓ should load English article version (136ms)
      ✓ should load Swedish article version (127ms)
      ✓ should load Danish article version (133ms)
      ✓ should load Norwegian article version (145ms)
      ✓ should load Finnish article version (85ms)
      ✓ should have language switcher or alternatives (131ms)
    RTL Article Support
      ✓ should have proper RTL layout for Arabic (249ms)
      ✓ should have proper RTL layout for Hebrew (175ms)
    Article Navigation
      ✓ should have navigation back to news index (139ms)
      ✓ should have navigation to homepage (184ms)
      ✓ should have header navigation (149ms)
    Article Responsive Design
      ✓ should be readable on Mobile (375x667) (203ms)
      ✓ should be readable on Tablet (768x1024) (139ms)
      ✓ should be readable on Desktop (1280x720) (126ms)
      ✓ should be readable on Large Desktop (1920x1080) (161ms)
      ✓ should have mobile-optimized reading experience (245ms)
    Article Accessibility
      ✓ should have proper heading hierarchy (146ms)
      ✓ should have alt text on images (181ms)
      ✓ should have keyboard navigable links (156ms)
      ✓ should have semantic HTML (142ms)
    Article Performance
      ✓ should load quickly (140ms)
      ✓ should not have JavaScript errors (143ms)
    Article SEO
      ✓ should have canonical URL (141ms)
      ✓ should have description meta tag (147ms)
      ✓ should have relevant keywords (147ms)
    Article Categories
      ✓ should load committee-reports article (185ms)
      ✓ should load government-propositions article (161ms)
      ✓ should load opposition-motions article (140ms)
      ✓ should load week-ahead article (111ms)
      ✓ should load evening-analysis article (134ms)


  46 passing (9s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        46                                                                               │
  │ Passing:      46                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     9 seconds                                                                        │
  │ Spec Ran:     news-articles.cy.js                                                              │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘


====================================================================================================

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  news-page.cy.js                          00:22       52       52        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  news-articles.cy.js                      00:09       46       46        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        00:31       98       98        -        -        -  


← Back to Documentation Hub