🎭 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.31 preview
> vite preview

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

[STARTED] [22:13:58]  Verifying Cypress can run /home/runner/.cache/Cypress/15.18.1/Cypress
[COMPLETED] [22:14:04]  Verified Cypress!       /home/runner/.cache/Cypress/15.18.1/Cypress

Opening Cypress...
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.18.1                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.4.0 (/opt/hostedtoolcache/node/26.4.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 (920ms)
    ✓ should have proper document structure (271ms)
    ✓ should display site logo/title (240ms)
    ✓ should have navigation menu (281ms)
    ✓ should be responsive on mobile (330ms)
    ✓ should be responsive on tablet (247ms)
    ✓ should be responsive on desktop (242ms)
    ✓ should have language switcher (305ms)
    ✓ should use system-ui font stack (no third-party font CDN) (313ms)
    ✓ should have proper meta tags (259ms)
    ✓ should have Open Graph tags (250ms)
    ✓ should have Twitter Card tags (305ms)
    ✓ should expose the Service Worker API for PWA install + offline support (320ms)


  13 passing (5s)


  (Results)

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


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


  Accessibility (WCAG 2.1 AA)
    ✓ should have valid HTML structure (572ms)
    ✓ should have proper heading hierarchy (347ms)
    ✓ should have alt text on images (369ms)
    ✓ should have labels for form inputs (284ms)
    ✓ should have ARIA roles on interactive elements (312ms)
    ✓ should have visible focus indicators (296ms)
    ✓ should be keyboard navigable (294ms)
    ✓ should have sufficient color contrast (281ms)
    ✓ should have language attribute on HTML tag (321ms)
    ✓ should have skip to content link (312ms)
    ✓ should have skip link as first focusable element (271ms)
    ✓ should support reduced motion preference (606ms)

  Multi-Language Support
    ✓ should load SV version (277ms)
    ✓ should load DA version (330ms)
    ✓ should load NO version (229ms)
    ✓ should load FI version (229ms)
    ✓ should load DE version (235ms)
    ✓ should load FR version (235ms)
    ✓ should load ES version (251ms)
    ✓ should load NL version (266ms)
    ✓ should load AR version (382ms)
    ✓ should load HE version (274ms)
    ✓ should load JA version (793ms)
    ✓ should load KO version (432ms)
    ✓ should load ZH version (436ms)
    ✓ should have proper RTL support for Arabic (310ms)
    ✓ should have proper RTL support for Hebrew (245ms)
    ✓ should have language switcher links (289ms)


  28 passing (11s)


  (Results)

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


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


  Sitemap Pages
    English Sitemap
      ✓ should load sitemap successfully (634ms)
      ✓ should have proper document structure (343ms)
      ✓ should have sitemap heading (314ms)
      ✓ should have multiple links (296ms)
      ✓ should have organized sections (281ms)
      ✓ should have links to main pages (285ms)
      ✓ should have valid internal links (350ms)
      ✓ should have proper meta tags (294ms)
      ✓ should be responsive on mobile (423ms)
    Multi-Language Sitemap Support
      Swedish Sitemap (sv)
        ✓ should load Swedish sitemap successfully (293ms)
        ✓ should have proper lang attribute for Swedish (295ms)
        ✓ should have proper dir attribute for Swedish (376ms)
        ✓ should have links in Swedish (306ms)
        ✓ should have sitemap heading in Swedish (297ms)
      Danish Sitemap (da)
        ✓ should load Danish sitemap successfully (302ms)
        ✓ should have proper lang attribute for Danish (266ms)
        ✓ should have proper dir attribute for Danish (256ms)
        ✓ should have links in Danish (280ms)
        ✓ should have sitemap heading in Danish (334ms)
      Norwegian Sitemap (no)
        ✓ should load Norwegian sitemap successfully (303ms)
        ✓ should have proper lang attribute for Norwegian (317ms)
        ✓ should have proper dir attribute for Norwegian (261ms)
        ✓ should have links in Norwegian (266ms)
        ✓ should have sitemap heading in Norwegian (264ms)
      Finnish Sitemap (fi)
        ✓ should load Finnish sitemap successfully (270ms)
        ✓ should have proper lang attribute for Finnish (267ms)
        ✓ should have proper dir attribute for Finnish (253ms)
        ✓ should have links in Finnish (262ms)
        ✓ should have sitemap heading in Finnish (300ms)
      German Sitemap (de)
        ✓ should load German sitemap successfully (278ms)
        ✓ should have proper lang attribute for German (303ms)
        ✓ should have proper dir attribute for German (336ms)
        ✓ should have links in German (305ms)
        ✓ should have sitemap heading in German (266ms)
      French Sitemap (fr)
        ✓ should load French sitemap successfully (265ms)
        ✓ should have proper lang attribute for French (255ms)
        ✓ should have proper dir attribute for French (305ms)
        ✓ should have links in French (255ms)
        ✓ should have sitemap heading in French (323ms)
      Spanish Sitemap (es)
        ✓ should load Spanish sitemap successfully (249ms)
        ✓ should have proper lang attribute for Spanish (290ms)
        ✓ should have proper dir attribute for Spanish (308ms)
        ✓ should have links in Spanish (286ms)
        ✓ should have sitemap heading in Spanish (265ms)
      Dutch Sitemap (nl)
        ✓ should load Dutch sitemap successfully (292ms)
        ✓ should have proper lang attribute for Dutch (295ms)
        ✓ should have proper dir attribute for Dutch (294ms)
        ✓ should have links in Dutch (253ms)
        ✓ should have sitemap heading in Dutch (341ms)
      Arabic Sitemap (ar)
        ✓ should load Arabic sitemap successfully (554ms)
        ✓ should have proper lang attribute for Arabic (498ms)
        ✓ should have proper dir attribute for Arabic (532ms)
        ✓ should have links in Arabic (516ms)
        ✓ should have sitemap heading in Arabic (507ms)
      Hebrew Sitemap (he)
        ✓ should load Hebrew sitemap successfully (393ms)
        ✓ should have proper lang attribute for Hebrew (327ms)
        ✓ should have proper dir attribute for Hebrew (351ms)
        ✓ should have links in Hebrew (308ms)
        ✓ should have sitemap heading in Hebrew (322ms)
      Japanese Sitemap (ja)
        ✓ should load Japanese sitemap successfully (4006ms)
        ✓ should have proper lang attribute for Japanese (3611ms)
        ✓ should have proper dir attribute for Japanese (3575ms)
        ✓ should have links in Japanese (3503ms)
        ✓ should have sitemap heading in Japanese (3630ms)
      Korean Sitemap (ko)
        ✓ should load Korean sitemap successfully (837ms)
        ✓ should have proper lang attribute for Korean (854ms)
        ✓ should have proper dir attribute for Korean (754ms)
        ✓ should have links in Korean (731ms)
        ✓ should have sitemap heading in Korean (725ms)
      Chinese Sitemap (zh)
        ✓ should load Chinese sitemap successfully (971ms)
        ✓ should have proper lang attribute for Chinese (685ms)
        ✓ should have proper dir attribute for Chinese (885ms)
        ✓ should have links in Chinese (772ms)
        ✓ should have sitemap heading in Chinese (677ms)
    RTL Sitemap Support
      ✓ should have proper RTL layout for Arabic (536ms)
      ✓ should have proper RTL layout for Hebrew (310ms)
    Sitemap Link Organization
      ✓ should have dashboard links (286ms)
      ✓ should have news links (331ms)
      ✓ should have language variant links (311ms)
    Sitemap Accessibility
      ✓ should have proper heading hierarchy (348ms)
      ✓ should have keyboard navigable links (361ms)
      ✓ should have descriptive link text (337ms)
      ✓ should not have empty links (2584ms)
    Sitemap Performance
      ✓ should load quickly (346ms)
      ✓ should not have broken internal links (sample) (603ms)
    Sitemap Responsive Design
      ✓ should be responsive on Mobile (412ms)
      ✓ should be responsive on Tablet (367ms)
      ✓ should be responsive on Desktop (292ms)
    Sitemap Navigation
      ✓ should have link back to homepage (278ms)
      ✓ should have navigation menu (291ms)


  90 passing (59s)


  (Results)

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


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

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  homepage.cy.js                           00:05       13       13        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  accessibility.cy.js                      00:11       28       28        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  sitemap.cy.js                            00:59       90       90        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        01:15      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.31 preview
> vite preview

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

[STARTED] [22:14:12]  Verifying Cypress can run /home/runner/.cache/Cypress/15.18.1/Cypress
[COMPLETED] [22:14:19]  Verified Cypress!       /home/runner/.cache/Cypress/15.18.1/Cypress

Opening Cypress...
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.18.1                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.4.0 (/opt/hostedtoolcache/node/26.4.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 (1761ms)
      ✓ should have dashboard heading (311ms)
      ✓ should have data attribution (242ms)
      Chart.js Charts
        ✓ should have partyEffectivenessChart canvas (282ms)
        ✓ partyEffectivenessChart should be rendered by Chart.js (925ms)
        ✓ should have partyComparisonChart canvas (245ms)
        ✓ partyComparisonChart should be rendered by Chart.js (887ms)
        ✓ should have partyMomentumChart canvas (328ms)
        ✓ partyMomentumChart should be rendered by Chart.js (841ms)
      D3.js Visualizations
        ✓ should have coalitionAlignmentChart container (275ms)
        ✓ coalitionAlignmentChart should render D3 SVG (256ms)
        ✓ coalitionAlignmentChart SVG should have content (353ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (318ms)
        ✓ should have screen reader descriptions (324ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (440ms)
        ✓ should be visible on tablet (768px) (393ms)
        ✓ should be visible on desktop (1440px) (479ms)
    Election Cycle Dashboard
      ✓ should mount the dashboard container and remain visible (353ms)
      ✓ should have dashboard heading (381ms)
      ✓ should have data attribution (321ms)
      Chart.js Charts
        ✓ should have cycle-timeline-chart canvas (321ms)
        ✓ cycle-timeline-chart should be rendered by Chart.js (1067ms)
        ✓ should have risk-forecast-chart canvas (290ms)
        ✓ risk-forecast-chart should be rendered by Chart.js (1014ms)
        ✓ should have temporal-trends-chart canvas (270ms)
        ✓ temporal-trends-chart should be rendered by Chart.js (927ms)
        ✓ should have party-tier-chart canvas (247ms)
        ✓ party-tier-chart should be rendered by Chart.js (840ms)
      D3.js Visualizations
        ✓ should have decision-heatmap container (269ms)
        ✓ decision-heatmap should render D3 SVG (301ms)
        ✓ decision-heatmap SVG should have content (281ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (254ms)
        ✓ should have screen reader descriptions (237ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (371ms)
        ✓ should be visible on tablet (768px) (414ms)
        ✓ should be visible on desktop (1440px) (316ms)
    Committee Dashboard
      ✓ should mount the dashboard container and remain visible (260ms)
      ✓ should have dashboard heading (300ms)
      ✓ should have data attribution (249ms)
      Chart.js Charts
        ✓ should have committeeComparisonChart canvas (264ms)
        ✓ committeeComparisonChart should be rendered by Chart.js (4336ms)
        ✓ should have decisionEffectivenessChart canvas (247ms)
        ✓ decisionEffectivenessChart should be rendered by Chart.js (3742ms)
        ✓ should have seasonalPatternsChart canvas (257ms)
        ✓ seasonalPatternsChart should be rendered by Chart.js (3655ms)
      D3.js Visualizations
        ✓ should have committeeNetwork container (267ms)
        ✓ committeeNetwork should render D3 SVG (275ms)
        ✓ committeeNetwork SVG should have content (264ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (307ms)
        ✓ should have screen reader descriptions (285ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (297ms)
        ✓ should be visible on tablet (768px) (314ms)
        ✓ should be visible on desktop (1440px) (294ms)
    Coalition Dashboard
      ✓ should mount the dashboard container and remain visible (284ms)
      ✓ should have dashboard heading (251ms)
      ✓ should have data attribution (252ms)
      Chart.js Charts
        ✓ should have votingAnomalyChart canvas (268ms)
        ✓ votingAnomalyChart should be rendered by Chart.js (911ms)
        ✓ should have behavioralPatternsChart canvas (283ms)
        ✓ behavioralPatternsChart should be rendered by Chart.js (843ms)
        ✓ should have decisionTrendsChart canvas (237ms)
        ✓ decisionTrendsChart should be rendered by Chart.js (913ms)
      D3.js Visualizations
        ✓ should have coalitionNetwork container (279ms)
        ✓ coalitionNetwork should render D3 SVG (316ms)
        ✓ coalitionNetwork SVG should have content (263ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (299ms)
        ✓ should have screen reader descriptions (266ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (429ms)
        ✓ should be visible on tablet (768px) (300ms)
        ✓ should be visible on desktop (1440px) (344ms)
    Seasonal Patterns Dashboard
      ✓ should mount the dashboard container and remain visible (275ms)
      ✓ should have dashboard heading (253ms)
      ✓ should have data attribution (254ms)
      Chart.js Charts
        ✓ should have zscore-timeline-chart canvas (274ms)
        ✓ zscore-timeline-chart should be rendered by Chart.js (969ms)
        ✓ should have quarter-comparison-chart canvas (291ms)
        ✓ quarter-comparison-chart should be rendered by Chart.js (909ms)
        ✓ should have classification-chart canvas (257ms)
        ✓ classification-chart should be rendered by Chart.js (910ms)
        ✓ should have qoq-change-chart canvas (259ms)
        ✓ qoq-change-chart should be rendered by Chart.js (982ms)
      D3.js Visualizations
        ✓ should have seasonal-heatmap container (249ms)
        ✓ seasonal-heatmap should render D3 SVG (252ms)
        ✓ seasonal-heatmap SVG should have content (326ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (369ms)
        ✓ should have screen reader descriptions (290ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (307ms)
        ✓ should be visible on tablet (768px) (290ms)
        ✓ should be visible on desktop (1440px) (282ms)
    Pre-Election Dashboard
      ✓ should mount the dashboard container and remain visible (264ms)
      ✓ should have dashboard heading (261ms)
      ✓ should have data attribution (259ms)
      Chart.js Charts
        ✓ should have q4-timeline-chart canvas (254ms)
        ✓ q4-timeline-chart should be rendered by Chart.js (919ms)
        ✓ should have election-comparison-chart canvas (303ms)
        ✓ election-comparison-chart should be rendered by Chart.js (865ms)
        ✓ should have deviation-radar-chart canvas (301ms)
        ✓ deviation-radar-chart should be rendered by Chart.js (853ms)
        ✓ should have party-trends-chart canvas (239ms)
        ✓ party-trends-chart should be rendered by Chart.js (921ms)
        ✓ should have yoy-waterfall-chart canvas (238ms)
        ✓ yoy-waterfall-chart should be rendered by Chart.js (917ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (290ms)
        ✓ should have screen reader descriptions (246ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (307ms)
        ✓ should be visible on tablet (768px) (284ms)
        ✓ should be visible on desktop (1440px) (286ms)
    Anomaly Detection Dashboard
      ✓ should mount the dashboard container and remain visible (249ms)
      ✓ should have dashboard heading (260ms)
      ✓ should have data attribution (350ms)
      Chart.js Charts
        ✓ should have anomaly-timeline-chart canvas (263ms)
        ✓ anomaly-timeline-chart should be rendered by Chart.js (865ms)
        ✓ should have zscore-distribution-chart canvas (274ms)
        ✓ zscore-distribution-chart should be rendered by Chart.js (803ms)
        ✓ should have anomaly-type-chart canvas (240ms)
        ✓ anomaly-type-chart should be rendered by Chart.js (801ms)
        ✓ should have quarterly-frequency-chart canvas (349ms)
        ✓ quarterly-frequency-chart should be rendered by Chart.js (840ms)
      D3.js Visualizations
        ✓ should have severity-heatmap container (320ms)
        ✓ severity-heatmap should render D3 SVG (301ms)
        ✓ severity-heatmap SVG should have content (277ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (260ms)
        ✓ should have screen reader descriptions (287ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (317ms)
        ✓ should be visible on tablet (768px) (307ms)
        ✓ should be visible on desktop (1440px) (275ms)
    Ministry Dashboard
      ✓ should mount the dashboard container and remain visible (253ms)
      ✓ should have dashboard heading (258ms)
      ✓ should have data attribution (394ms)
      Chart.js Charts
        ✓ should have ministerInfluenceChart canvas (302ms)
        ✓ ministerInfluenceChart should be rendered by Chart.js (963ms)
        ✓ should have ministryProductivityChart canvas (235ms)
        ✓ ministryProductivityChart should be rendered by Chart.js (859ms)
        ✓ should have decisionImpactChart canvas (270ms)
        ✓ decisionImpactChart should be rendered by Chart.js (951ms)
      D3.js Visualizations
        ✓ should have ministryRiskHeatMap container (308ms)
        ✓ ministryRiskHeatMap should render D3 SVG (266ms)
        ✓ ministryRiskHeatMap SVG should have content (270ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (275ms)
        ✓ should have screen reader descriptions (264ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (383ms)
        ✓ should be visible on tablet (768px) (302ms)
        ✓ should be visible on desktop (1440px) (297ms)
    Risk Dashboard
      ✓ should mount the dashboard container and remain visible (362ms)
      ✓ should have dashboard heading (253ms)
      ✓ should have data attribution (256ms)
      Chart.js Charts
        ✓ should have riskDistributionChart canvas (246ms)
        ✓ riskDistributionChart should be rendered by Chart.js (1565ms)
        ✓ should have anomalyDetectionChart canvas (331ms)
        ✓ anomalyDetectionChart should be rendered by Chart.js (1562ms)
        ✓ should have crisisResilienceChart canvas (231ms)
        ✓ crisisResilienceChart should be rendered by Chart.js (1638ms)
        ✓ should have riskEvolutionChart canvas (239ms)
        ✓ riskEvolutionChart should be rendered by Chart.js (1613ms)
      D3.js Visualizations
        ✓ should have riskHeatMap container (276ms)
        ✓ riskHeatMap should render D3 SVG (270ms)
        ✓ riskHeatMap SVG should have content (261ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (367ms)
        ✓ should have screen reader descriptions (260ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (297ms)
        ✓ should be visible on tablet (768px) (278ms)
        ✓ should be visible on desktop (1440px) (285ms)
    Dashboard Integration
      ✓ all 9 dashboards should have a unique slug + container ID (62ms)
      ✓ home page hub should link to every dashboard slug (293ms)
      ✓ every dashboard page should expose a back-to-home link (2376ms)
      ✓ every dashboard page should link to the other 8 dashboards via related-dashboards aside (2407ms)
    Performance
      ✓ every dashboard page should mount its container within 5s (2370ms)
      ✓ parties dashboard renders its first Chart.js canvas with Chart.js instance (953ms)


  168 passing (3m)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        168                                                                              │
  │ Passing:      168                                                                              │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     2 minutes, 40 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 (582ms)
      ✓ should have proper document structure (299ms)
      ✓ should have dashboard header (247ms)
      ✓ should have chart cards container (323ms)
      ✓ should have proper meta tags (251ms)
      ✓ should have Open Graph tags (238ms)
      ✓ should have canonical link (247ms)
    Chart and Visualization Elements
      ✓ should have chart containers (231ms)
      ✓ should load Chart.js library (281ms)
      ✓ should have chart cards with proper styling (210ms)
      ✓ should have chart titles (249ms)
      ✓ should render canvas elements for charts (232ms)
    Politician Data Display
      ✓ should display politician rankings or data (248ms)
      ✓ should have top rankings section (299ms)
    Responsive Design
      ✓ should be responsive on Mobile (375x667) (375ms)
      ✓ should be responsive on Tablet (768x1024) (396ms)
      ✓ should be responsive on Desktop (1280x720) (259ms)
      ✓ should be responsive on Large Desktop (1920x1080) (218ms)
      ✓ should have mobile-friendly grid layout (302ms)
    Accessibility (WCAG 2.1 AA)
      ✓ should have proper language attribute (238ms)
      ✓ should have proper heading hierarchy (222ms)
      ✓ should have ARIA labels on interactive elements (243ms)
      ✓ should have alt text on images (276ms)
      ✓ should be keyboard navigable (231ms)
      ✓ should have sufficient color contrast (271ms)
    Navigation and Links
      ✓ should have navigation back to homepage (201ms)
      ✓ should have working internal links (207ms)
    Performance
      ✓ should load page within reasonable time (657ms)
      ✓ should not have JavaScript errors (236ms)
    Data Loading States
      ✓ should handle empty state gracefully (246ms)
      ✓ should have loading indicators or data display (214ms)
    CSS and Styling
      ✓ should not load any third-party font CDN (system-ui font stack) (229ms)
      ✓ should have custom styling loaded (220ms)
      ✓ should have cyberpunk theme elements (210ms)


  34 passing (13s)


  (Results)

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


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

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  all-dashboards.cy.js                     02:40      168      168        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  politician-dashboard.cy.js               00:12       34       34        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        02:53      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.31 preview
> vite preview

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

[STARTED] [22:13:55]  Verifying Cypress can run /home/runner/.cache/Cypress/15.18.1/Cypress
[COMPLETED] [22:13:57]  Verified Cypress!       /home/runner/.cache/Cypress/15.18.1/Cypress

Opening Cypress...
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.18.1                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.4.0 (/opt/hostedtoolcache/node/26.4.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 (1013ms)
    ✓ should have proper document structure (288ms)
    ✓ should display page heading (367ms)
    ✓ should have navigation menu (394ms)
    ✓ should have language switcher for all 14 languages (341ms)
    ✓ should have CIA data visualization containers (372ms)
    ✓ should be responsive on mobile (412ms)
    ✓ should be responsive on tablet (278ms)
    ✓ should be responsive on desktop (398ms)
    ✓ should have proper meta tags (364ms)
    ✓ should have link back to homepage (272ms)
    ✓ should load CSS styles (245ms)
    ✓ should load JavaScript modules (266ms)

  Dashboard Page - All Language Variants
    Swedish (SV)
      ✓ should load Swedish dashboard page (254ms)
      ✓ should have correct dir attribute for Swedish (265ms)
      ✓ should have proper page structure for Swedish (278ms)
      ✓ should be responsive for Swedish (383ms)
    Danish (DA)
      ✓ should load Danish dashboard page (259ms)
      ✓ should have correct dir attribute for Danish (388ms)
      ✓ should have proper page structure for Danish (391ms)
      ✓ should be responsive for Danish (457ms)
    Norwegian (NO)
      ✓ should load Norwegian dashboard page (444ms)
      ✓ should have correct dir attribute for Norwegian (408ms)
      ✓ should have proper page structure for Norwegian (440ms)
      ✓ should be responsive for Norwegian (287ms)
    Finnish (FI)
      ✓ should load Finnish dashboard page (323ms)
      ✓ should have correct dir attribute for Finnish (309ms)
      ✓ should have proper page structure for Finnish (282ms)
      ✓ should be responsive for Finnish (279ms)
    German (DE)
      ✓ should load German dashboard page (448ms)
      ✓ should have correct dir attribute for German (281ms)
      ✓ should have proper page structure for German (276ms)
      ✓ should be responsive for German (420ms)
    French (FR)
      ✓ should load French dashboard page (332ms)
      ✓ should have correct dir attribute for French (367ms)
      ✓ should have proper page structure for French (299ms)
      ✓ should be responsive for French (437ms)
    Spanish (ES)
      ✓ should load Spanish dashboard page (427ms)
      ✓ should have correct dir attribute for Spanish (416ms)
      ✓ should have proper page structure for Spanish (258ms)
      ✓ should be responsive for Spanish (252ms)
    Dutch (NL)
      ✓ should load Dutch dashboard page (253ms)
      ✓ should have correct dir attribute for Dutch (403ms)
      ✓ should have proper page structure for Dutch (234ms)
      ✓ should be responsive for Dutch (307ms)
    Arabic (AR)
      ✓ should load Arabic dashboard page (387ms)
      ✓ should have correct dir attribute for Arabic (277ms)
      ✓ should have proper page structure for Arabic (283ms)
      ✓ should be responsive for Arabic (285ms)
    Hebrew (HE)
      ✓ should load Hebrew dashboard page (346ms)
      ✓ should have correct dir attribute for Hebrew (261ms)
      ✓ should have proper page structure for Hebrew (380ms)
      ✓ should be responsive for Hebrew (236ms)
    Japanese (JA)
      ✓ should load Japanese dashboard page (466ms)
      ✓ should have correct dir attribute for Japanese (357ms)
      ✓ should have proper page structure for Japanese (323ms)
      ✓ should be responsive for Japanese (425ms)
    Korean (KO)
      ✓ should load Korean dashboard page (317ms)
      ✓ should have correct dir attribute for Korean (315ms)
      ✓ should have proper page structure for Korean (377ms)
      ✓ should be responsive for Korean (278ms)
    Chinese (ZH)
      ✓ should load Chinese dashboard page (310ms)
      ✓ should have correct dir attribute for Chinese (265ms)
      ✓ should have proper page structure for Chinese (331ms)
      ✓ should be responsive for Chinese (289ms)

  Dashboard Page - Accessibility
    ✓ should have valid HTML lang attribute (260ms)
    ✓ should have proper heading hierarchy (362ms)
    ✓ should have alt text on images (if any) (399ms)
    ✓ should have ARIA labels on charts (if any) (302ms)
    ✓ should be keyboard navigable (364ms)
    ✓ should have visible focus indicators (373ms)

  Dashboard Page - Navigation
    ✓ should navigate from homepage to dashboard (744ms)
    ✓ should navigate from dashboard back to homepage (780ms)
    ✓ should support language switching on dashboard page (303ms)

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

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


  78 passing (39s)


  (Results)

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


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


  Dashboard Functionality
    Party Dashboard
      ✓ should display party dashboard (387ms)
      ✓ should have party effectiveness chart (284ms)
      ✓ should have party comparison chart (212ms)
      ✓ should have coalition alignment chart (250ms)
      ✓ should have party momentum chart (252ms)
      ✓ should render charts after data loads (850ms)
    Anomaly Detection Dashboard
      ✓ should display anomaly dashboard (273ms)
      ✓ should have severity filter (259ms)
      ✓ should have type filter (229ms)
      ✓ should filter anomalies by severity (613ms)
      ✓ should display D3 heatmap (2225ms)
    Seasonal Patterns Dashboard
      ✓ should display seasonal patterns dashboard (205ms)
      ✓ should have year filter (176ms)
      ✓ should have quarter filter (299ms)
    Pre-Election Dashboard
      ✓ should display pre-election dashboard (242ms)
      ✓ should show status cards (214ms)
    Dashboard Accessibility
      ✓ should have ARIA labels on charts (264ms)
      ✓ should have screen reader text (276ms)
      ✓ should be keyboard navigable (206ms)
    Dashboard Performance
      ✓ should load dashboards within reasonable time (245ms)
      ✓ should handle data loading failures without crashing (208ms)
    Dashboard Bundle Integration
      ✓ /dashboards/parties.html ships hashed main bundle (no /src/browser/main.ts) (94ms)
      ✓ /dashboards/pre-election.html ships hashed main bundle (no /src/browser/main.ts) (47ms)
      ✓ /dashboards/coalitions.html ships hashed main bundle (no /src/browser/main.ts) (47ms)
      ✓ /dashboards/committees.html ships hashed main bundle (no /src/browser/main.ts) (42ms)
      ✓ /dashboards/seasonal-patterns.html ships hashed main bundle (no /src/browser/main.ts) (39ms)
      ✓ /dashboards/anomaly-detection.html ships hashed main bundle (no /src/browser/main.ts) (41ms)
      ✓ /dashboards/risk.html ships hashed main bundle (no /src/browser/main.ts) (47ms)
      ✓ /dashboards/ministers.html ships hashed main bundle (no /src/browser/main.ts) (43ms)
      ✓ /dashboards/election-cycle.html ships hashed main bundle (no /src/browser/main.ts) (38ms)
      ✓ runs main.ts → registers Chart.js global on dashboard pages (467ms)


  31 passing (11s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        31                                                                               │
  │ Passing:      31                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     11 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) (433ms)
      ✓ registers window.Chart and window.d3 without any user scroll (427ms)
      ✓ does not show a visible error fallback on first paint (305ms)
    /dashboards/committees.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (354ms)
      ✓ registers window.Chart and window.d3 without any user scroll (317ms)
      ✓ does not show a visible error fallback on first paint (936ms)
    /dashboards/coalitions.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (469ms)
      ✓ registers window.Chart and window.d3 without any user scroll (355ms)
      ✓ does not show a visible error fallback on first paint (342ms)
    /dashboards/election-cycle.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (294ms)
      ✓ registers window.Chart and window.d3 without any user scroll (279ms)
      ✓ does not show a visible error fallback on first paint (363ms)
    /dashboards/seasonal-patterns.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (289ms)
      ✓ registers window.Chart and window.d3 without any user scroll (308ms)
      ✓ does not show a visible error fallback on first paint (299ms)
    /dashboards/pre-election.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (225ms)
      ✓ registers window.Chart and window.d3 without any user scroll (301ms)
      ✓ does not show a visible error fallback on first paint (296ms)
    /dashboards/anomaly-detection.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (288ms)
      ✓ registers window.Chart and window.d3 without any user scroll (290ms)
      ✓ does not show a visible error fallback on first paint (354ms)
    /dashboards/ministers.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (296ms)
      ✓ registers window.Chart and window.d3 without any user scroll (290ms)
      ✓ does not show a visible error fallback on first paint (308ms)
    /dashboards/risk.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (278ms)
      ✓ registers window.Chart and window.d3 without any user scroll (301ms)
      ✓ does not show a visible error fallback on first paint (282ms)


  27 passing (11s)


  (Results)

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


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

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  dashboard-page.cy.js                     00:38       78       78        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  dashboards.cy.js                         00:11       31       31        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  dashboards-no-scroll.cy.js               00:11       27       27        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        01:01      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.31 preview
> vite preview

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

[STARTED] [22:13:47]  Verifying Cypress can run /home/runner/.cache/Cypress/15.18.1/Cypress
[COMPLETED] [22:13:51]  Verified Cypress!       /home/runner/.cache/Cypress/15.18.1/Cypress

Opening Cypress...
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.18.1                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.4.0 (/opt/hostedtoolcache/node/26.4.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 (837ms)
      ✓ should have proper lang attribute for Swedish (243ms)
      ✓ should have correct text direction for Swedish (249ms)
      ✓ should have basic page structure for Swedish (269ms)
      ✓ should load German (de) homepage (319ms)
      ✓ should have proper lang attribute for German (224ms)
      ✓ should have correct text direction for German (265ms)
      ✓ should have basic page structure for German (215ms)
      ✓ should load Arabic (ar) homepage (362ms)
      ✓ should have proper lang attribute for Arabic (258ms)
      ✓ should have correct text direction for Arabic (280ms)
      ✓ should have basic page structure for Arabic (279ms)
      ✓ should load Japanese (ja) homepage (583ms)
      ✓ should have proper lang attribute for Japanese (465ms)
      ✓ should have correct text direction for Japanese (500ms)
      ✓ should have basic page structure for Japanese (512ms)
      ✓ should load Chinese (zh) homepage (376ms)
      ✓ should have proper lang attribute for Chinese (377ms)
      ✓ should have correct text direction for Chinese (511ms)
      ✓ should have basic page structure for Chinese (364ms)
    Dashboard - Representative Languages
      ✓ should load Swedish (sv) dashboard (599ms)
      ✓ should have proper lang attribute for Swedish dashboard (604ms)
      ✓ should have correct text direction for Swedish dashboard (366ms)
      ✓ should have basic page structure for Swedish dashboard (496ms)
      ✓ should load German (de) dashboard (732ms)
      ✓ should have proper lang attribute for German dashboard (416ms)
      ✓ should have correct text direction for German dashboard (366ms)
      ✓ should have basic page structure for German dashboard (415ms)
      ✓ should load Arabic (ar) dashboard (828ms)
      ✓ should have proper lang attribute for Arabic dashboard (528ms)
      ✓ should have correct text direction for Arabic dashboard (355ms)
      ✓ should have basic page structure for Arabic dashboard (646ms)
      ✓ should load Japanese (ja) dashboard (759ms)
      ✓ should have proper lang attribute for Japanese dashboard (344ms)
      ✓ should have correct text direction for Japanese dashboard (446ms)
      ✓ should have basic page structure for Japanese dashboard (436ms)
      ✓ should load Chinese (zh) dashboard (685ms)
      ✓ should have proper lang attribute for Chinese dashboard (336ms)
      ✓ should have correct text direction for Chinese dashboard (334ms)
      ✓ should have basic page structure for Chinese dashboard (387ms)
    News - Representative Languages
      Swedish (sv)
        ✓ should load news page (344ms)
        ✓ should have proper lang attribute (281ms)
        ✓ should have correct text direction (278ms)
        ✓ should have basic page structure (314ms)
      German (de)
        ✓ should load news page (353ms)
        ✓ should have proper lang attribute (323ms)
        ✓ should have correct text direction (307ms)
        ✓ should have basic page structure (284ms)
      Arabic (ar)
        ✓ should load news page (354ms)
        ✓ should have proper lang attribute (327ms)
        ✓ should have correct text direction (354ms)
        ✓ should have basic page structure (374ms)
      Japanese (ja)
        ✓ should load news page (518ms)
        ✓ should have proper lang attribute (403ms)
        ✓ should have correct text direction (418ms)
        ✓ should have basic page structure (443ms)
      Chinese (zh)
        ✓ should load news page (445ms)
        ✓ should have proper lang attribute (343ms)
        ✓ should have correct text direction (371ms)
        ✓ should have basic page structure (374ms)
    Language Consistency
      ✓ should have consistent lang attribute across all pages for Swedish (1201ms)
      ✓ should have consistent lang attribute across all pages for German (1033ms)
      ✓ should have consistent lang attribute across all pages for Arabic (1217ms)
      ✓ should have consistent lang attribute across all pages for Japanese (1619ms)
      ✓ should have consistent lang attribute across all pages for Chinese (1334ms)
    RTL Language Specific Tests
      ✓ should have RTL dir attribute on all pages for Arabic (1362ms)
      ✓ should render RTL content properly for Arabic (245ms)
      ✓ should have RTL dir attribute on all pages for Hebrew (1120ms)
      ✓ should render RTL content properly for Hebrew (239ms)
    LTR Language Specific Tests
      ✓ should have LTR or default dir for Swedish on all pages (1117ms)
      ✓ should have LTR or default dir for German on all pages (1027ms)
      ✓ should have LTR or default dir for Japanese on all pages (1771ms)
      ✓ should have LTR or default dir for Chinese on all pages (1255ms)
    Language Switcher Functionality
      ✓ should have language switcher on all pages (1156ms)
      ✓ should allow switching between languages on homepage (2417ms)
    Responsive Design - All Languages
      ✓ should be responsive on Mobile for Swedish homepage (235ms)
      ✓ should be responsive on Desktop for Swedish homepage (421ms)
      ✓ should be responsive on Mobile for Arabic homepage (248ms)
      ✓ should be responsive on Desktop for Arabic homepage (262ms)
      ✓ should be responsive on Mobile for Japanese homepage (500ms)
      ✓ should be responsive on Desktop for Japanese homepage (555ms)
    Meta Tags - All Languages
      ✓ should have proper meta tags for Swedish (306ms)
      ✓ should have proper meta tags for Arabic (266ms)
      ✓ should have proper meta tags for Chinese (402ms)
    Accessibility - All Languages
      ✓ should have accessible structure for Swedish (244ms)
      ✓ should have accessible structure for Hebrew (243ms)
      ✓ should have accessible structure for Korean (359ms)
    Performance - All Languages
      ✓ should load quickly for Swedish (192ms)
      ✓ should load quickly for Arabic (219ms)
      ✓ should load quickly for Japanese (538ms)
    Content Validation - Sample Languages
      ✓ should have meaningful content for Swedish (237ms)
      ✓ should have meaningful content for Arabic (278ms)
      ✓ should have meaningful content for Japanese (479ms)

  Multi-Language Cross-Page Navigation
    ✓ should maintain language when navigating for sv (1556ms)
    ✓ should maintain language when navigating for de (1474ms)
    ✓ should maintain language when navigating for ar (1669ms)
    ✓ should maintain language when navigating for ja (2490ms)


  97 passing (1m)


  (Results)

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


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

  (Run Finished)


       Spec                                              Tests  Passing  Failing  Pending  Skipped  
  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ ✔  multi-language-sanity.cy.js              01:05       97       97        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        01:05       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.31 preview
> vite preview

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

[STARTED] [22:13:46]  Verifying Cypress can run /home/runner/.cache/Cypress/15.18.1/Cypress
[COMPLETED] [22:13:55]  Verified Cypress!       /home/runner/.cache/Cypress/15.18.1/Cypress

Opening Cypress...
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.18.1                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.4.0 (/opt/hostedtoolcache/node/26.4.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 (877ms)
    ✓ should have proper document structure (288ms)
    ✓ should display page heading (274ms)
    ✓ should have navigation menu (296ms)
    ✓ should have language switcher for all 14 languages (221ms)
    ✓ should display news articles or article list (239ms)
    ✓ should have news article links (331ms)
    ✓ should be responsive on mobile (326ms)
    ✓ should be responsive on tablet (306ms)
    ✓ should be responsive on desktop (282ms)
    ✓ should have proper meta tags (250ms)
    ✓ should have link back to homepage (273ms)
    ✓ should load CSS styles (247ms)
    ✓ should load JavaScript (if any) (226ms)

  News Page - All Language Variants
    Swedish (SV)
      ✓ should load Swedish news page (248ms)
      ✓ should have correct dir attribute for Swedish (232ms)
      ✓ should have proper page structure for Swedish (295ms)
      ✓ should be responsive for Swedish (240ms)
    German (DE)
      ✓ should load German news page (235ms)
      ✓ should have correct dir attribute for German (277ms)
      ✓ should have proper page structure for German (238ms)
      ✓ should be responsive for German (254ms)
    Arabic (AR)
      ✓ should load Arabic news page (356ms)
      ✓ should have correct dir attribute for Arabic (278ms)
      ✓ should have proper page structure for Arabic (302ms)
      ✓ should be responsive for Arabic (280ms)
    Hebrew (HE)
      ✓ should load Hebrew news page (285ms)
      ✓ should have correct dir attribute for Hebrew (261ms)
      ✓ should have proper page structure for Hebrew (297ms)
      ✓ should be responsive for Hebrew (237ms)
    Japanese (JA)
      ✓ should load Japanese news page (432ms)
      ✓ should have correct dir attribute for Japanese (326ms)
      ✓ should have proper page structure for Japanese (495ms)
      ✓ should be responsive for Japanese (484ms)

  News Page - Accessibility
    ✓ should have valid HTML lang attribute (306ms)
    ✓ should have proper heading hierarchy (276ms)
    ✓ should have alt text on images (if any) (392ms)
    ✓ should be keyboard navigable (314ms)
    ✓ should have visible focus indicators (333ms)
    ✓ should have semantic HTML for articles (298ms)

  News Page - Navigation
    ✓ should navigate from homepage to news page (784ms)
    ✓ should navigate from news page back to homepage (716ms)
    ✓ should support language switching on news page (2087ms)
    ✓ should link to individual news articles (743ms)

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

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

  News Page - Content Validation
    ✓ should have news metadata (dates, categories) (301ms)
    ✓ should have proper article structure (253ms)
    ✓ should have readable text content (334ms)

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


  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 (296ms)
      ✓ should load article: /news/2026-02-14-government-propositions-en.html (273ms)
      ✓ should load article: /news/2026-02-14-opposition-motions-en.html (195ms)
      ✓ should load article: /news/2026-02-14-week-ahead-feb-15-21-en.html (164ms)
      ✓ should load article: /news/2026-02-13-evening-analysis-en.html (158ms)
    Article Page Structure
      ✓ should have proper document structure (155ms)
      ✓ should have article heading (117ms)
      ✓ should have article content (109ms)
      ✓ should have proper meta tags (138ms)
      ✓ should have Open Graph tags for social sharing (151ms)
      ✓ should have article metadata (163ms)
      ✓ should have readable typography (139ms)
    Article Content Validation
      ✓ should have paragraphs (235ms)
      ✓ should have headings hierarchy (136ms)
      ✓ should not have Lorem Ipsum placeholder text (134ms)
      ✓ should have substantial content (141ms)
    Multi-Language Article Support
      ✓ should load English article version (125ms)
      ✓ should load Swedish article version (126ms)
      ✓ should load Danish article version (132ms)
      ✓ should load Norwegian article version (142ms)
      ✓ should load Finnish article version (135ms)
      ✓ should have language switcher or alternatives (139ms)
    RTL Article Support
      ✓ should have proper RTL layout for Arabic (228ms)
      ✓ should have proper RTL layout for Hebrew (200ms)
    Article Navigation
      ✓ should have navigation back to news index (168ms)
      ✓ should have navigation to homepage (129ms)
      ✓ should have header navigation (138ms)
    Article Responsive Design
      ✓ should be readable on Mobile (375x667) (187ms)
      ✓ should be readable on Tablet (768x1024) (219ms)
      ✓ should be readable on Desktop (1280x720) (151ms)
      ✓ should be readable on Large Desktop (1920x1080) (156ms)
      ✓ should have mobile-optimized reading experience (184ms)
    Article Accessibility
      ✓ should have proper heading hierarchy (154ms)
      ✓ should have alt text on images (183ms)
      ✓ should have keyboard navigable links (143ms)
      ✓ should have semantic HTML (130ms)
    Article Performance
      ✓ should load quickly (192ms)
      ✓ should not have JavaScript errors (150ms)
    Article SEO
      ✓ should have canonical URL (173ms)
      ✓ should have description meta tag (137ms)
      ✓ should have relevant keywords (156ms)
    Article Categories
      ✓ should load committee-reports article (133ms)
      ✓ should load government-propositions article (149ms)
      ✓ should load opposition-motions article (145ms)
      ✓ should load week-ahead article (131ms)
      ✓ should load evening-analysis article (128ms)


  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