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

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

[STARTED] [16:47:11]  Verifying Cypress can run /home/runner/.cache/Cypress/15.19.0/Cypress
[COMPLETED] [16:47:15]  Verified Cypress!       /home/runner/.cache/Cypress/15.19.0/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.19.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.5.0 (/opt/hostedtoolcache/node/26.5.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 (550ms)
    ✓ should have proper document structure (342ms)
    ✓ should display site logo/title (262ms)
    ✓ should have navigation menu (219ms)
    ✓ should be responsive on mobile (316ms)
    ✓ should be responsive on tablet (243ms)
    ✓ should be responsive on desktop (256ms)
    ✓ should have language switcher (215ms)
    ✓ should use system-ui font stack (no third-party font CDN) (221ms)
    ✓ should have proper meta tags (244ms)
    ✓ should have Open Graph tags (243ms)
    ✓ should have Twitter Card tags (203ms)
    ✓ should expose the Service Worker API for PWA install + offline support (215ms)


  13 passing (4s)


  (Results)

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


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


  Accessibility (WCAG 2.1 AA)
    ✓ should have valid HTML structure (392ms)
    ✓ should have proper heading hierarchy (317ms)
    ✓ should have alt text on images (302ms)
    ✓ should have labels for form inputs (214ms)
    ✓ should have ARIA roles on interactive elements (252ms)
    ✓ should have visible focus indicators (230ms)
    ✓ should be keyboard navigable (226ms)
    ✓ should have sufficient color contrast (311ms)
    ✓ should have language attribute on HTML tag (221ms)
    ✓ should have skip to content link (200ms)
    ✓ should have skip link as first focusable element (203ms)
    ✓ should support reduced motion preference (546ms)

  Multi-Language Support
    ✓ should load SV version (267ms)
    ✓ should load DA version (298ms)
    ✓ should load NO version (280ms)
    ✓ should load FI version (277ms)
    ✓ should load DE version (280ms)
    ✓ should load FR version (256ms)
    ✓ should load ES version (328ms)
    ✓ should load NL version (288ms)
    ✓ should load AR version (357ms)
    ✓ should load HE version (357ms)
    ✓ should load JA version (653ms)
    ✓ should load KO version (524ms)
    ✓ should load ZH version (409ms)
    ✓ should have proper RTL support for Arabic (307ms)
    ✓ should have proper RTL support for Hebrew (308ms)
    ✓ should have language switcher links (367ms)


  28 passing (11s)


  (Results)

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


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


  Sitemap Pages
    English Sitemap
      ✓ should load sitemap successfully (638ms)
      ✓ should have proper document structure (332ms)
      ✓ should have sitemap heading (316ms)
      ✓ should have multiple links (303ms)
      ✓ should have organized sections (259ms)
      ✓ should have links to main pages (276ms)
      ✓ should have valid internal links (291ms)
      ✓ should have proper meta tags (352ms)
      ✓ should be responsive on mobile (379ms)
    Multi-Language Sitemap Support
      Swedish Sitemap (sv)
        ✓ should load Swedish sitemap successfully (320ms)
        ✓ should have proper lang attribute for Swedish (284ms)
        ✓ should have proper dir attribute for Swedish (392ms)
        ✓ should have links in Swedish (265ms)
        ✓ should have sitemap heading in Swedish (302ms)
      Danish Sitemap (da)
        ✓ should load Danish sitemap successfully (294ms)
        ✓ should have proper lang attribute for Danish (258ms)
        ✓ should have proper dir attribute for Danish (237ms)
        ✓ should have links in Danish (239ms)
        ✓ should have sitemap heading in Danish (245ms)
      Norwegian Sitemap (no)
        ✓ should load Norwegian sitemap successfully (301ms)
        ✓ should have proper lang attribute for Norwegian (298ms)
        ✓ should have proper dir attribute for Norwegian (283ms)
        ✓ should have links in Norwegian (279ms)
        ✓ should have sitemap heading in Norwegian (273ms)
      Finnish Sitemap (fi)
        ✓ should load Finnish sitemap successfully (307ms)
        ✓ should have proper lang attribute for Finnish (251ms)
        ✓ should have proper dir attribute for Finnish (248ms)
        ✓ should have links in Finnish (257ms)
        ✓ should have sitemap heading in Finnish (270ms)
      German Sitemap (de)
        ✓ should load German sitemap successfully (253ms)
        ✓ should have proper lang attribute for German (269ms)
        ✓ should have proper dir attribute for German (241ms)
        ✓ should have links in German (252ms)
        ✓ should have sitemap heading in German (278ms)
      French Sitemap (fr)
        ✓ should load French sitemap successfully (253ms)
        ✓ should have proper lang attribute for French (289ms)
        ✓ should have proper dir attribute for French (268ms)
        ✓ should have links in French (243ms)
        ✓ should have sitemap heading in French (306ms)
      Spanish Sitemap (es)
        ✓ should load Spanish sitemap successfully (244ms)
        ✓ should have proper lang attribute for Spanish (264ms)
        ✓ should have proper dir attribute for Spanish (239ms)
        ✓ should have links in Spanish (266ms)
        ✓ should have sitemap heading in Spanish (244ms)
      Dutch Sitemap (nl)
        ✓ should load Dutch sitemap successfully (287ms)
        ✓ should have proper lang attribute for Dutch (282ms)
        ✓ should have proper dir attribute for Dutch (239ms)
        ✓ should have links in Dutch (315ms)
        ✓ should have sitemap heading in Dutch (247ms)
      Arabic Sitemap (ar)
        ✓ should load Arabic sitemap successfully (469ms)
        ✓ should have proper lang attribute for Arabic (440ms)
        ✓ should have proper dir attribute for Arabic (438ms)
        ✓ should have links in Arabic (567ms)
        ✓ should have sitemap heading in Arabic (453ms)
      Hebrew Sitemap (he)
        ✓ should load Hebrew sitemap successfully (310ms)
        ✓ should have proper lang attribute for Hebrew (336ms)
        ✓ should have proper dir attribute for Hebrew (296ms)
        ✓ should have links in Hebrew (344ms)
        ✓ should have sitemap heading in Hebrew (295ms)
      Japanese Sitemap (ja)
        ✓ should load Japanese sitemap successfully (3863ms)
        ✓ should have proper lang attribute for Japanese (3433ms)
        ✓ should have proper dir attribute for Japanese (3714ms)
        ✓ should have links in Japanese (3473ms)
        ✓ should have sitemap heading in Japanese (3430ms)
      Korean Sitemap (ko)
        ✓ should load Korean sitemap successfully (872ms)
        ✓ should have proper lang attribute for Korean (683ms)
        ✓ should have proper dir attribute for Korean (744ms)
        ✓ should have links in Korean (709ms)
        ✓ should have sitemap heading in Korean (687ms)
      Chinese Sitemap (zh)
        ✓ should load Chinese sitemap successfully (961ms)
        ✓ should have proper lang attribute for Chinese (677ms)
        ✓ should have proper dir attribute for Chinese (660ms)
        ✓ should have links in Chinese (659ms)
        ✓ should have sitemap heading in Chinese (791ms)
    RTL Sitemap Support
      ✓ should have proper RTL layout for Arabic (450ms)
      ✓ should have proper RTL layout for Hebrew (303ms)
    Sitemap Link Organization
      ✓ should have dashboard links (292ms)
      ✓ should have news links (272ms)
      ✓ should have language variant links (287ms)
    Sitemap Accessibility
      ✓ should have proper heading hierarchy (315ms)
      ✓ should have keyboard navigable links (312ms)
      ✓ should have descriptive link text (314ms)
      ✓ should not have empty links (2376ms)
    Sitemap Performance
      ✓ should load quickly (324ms)
      ✓ should not have broken internal links (sample) (496ms)
    Sitemap Responsive Design
      ✓ should be responsive on Mobile (395ms)
      ✓ should be responsive on Tablet (492ms)
      ✓ should be responsive on Desktop (290ms)
    Sitemap Navigation
      ✓ should have link back to homepage (271ms)
      ✓ should have navigation menu (275ms)


  90 passing (57s)


  (Results)

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


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

  (Run Finished)


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

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

[STARTED] [16:47:32]  Verifying Cypress can run /home/runner/.cache/Cypress/15.19.0/Cypress
[COMPLETED] [16:47:38]  Verified Cypress!       /home/runner/.cache/Cypress/15.19.0/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.19.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.5.0 (/opt/hostedtoolcache/node/26.5.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 (1024ms)
      ✓ should have dashboard heading (314ms)
      ✓ should have data attribution (268ms)
      Chart.js Charts
        ✓ should have partyEffectivenessChart canvas (255ms)
        ✓ partyEffectivenessChart should be rendered by Chart.js (737ms)
        ✓ should have partyComparisonChart canvas (307ms)
        ✓ partyComparisonChart should be rendered by Chart.js (791ms)
        ✓ should have partyMomentumChart canvas (291ms)
        ✓ partyMomentumChart should be rendered by Chart.js (816ms)
      D3.js Visualizations
        ✓ should have coalitionAlignmentChart container (286ms)
        ✓ coalitionAlignmentChart should render D3 SVG (290ms)
        ✓ coalitionAlignmentChart SVG should have content (391ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (333ms)
        ✓ should have screen reader descriptions (375ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (347ms)
        ✓ should be visible on tablet (768px) (273ms)
        ✓ should be visible on desktop (1440px) (255ms)
    Election Cycle Dashboard
      ✓ should mount the dashboard container and remain visible (339ms)
      ✓ should have dashboard heading (233ms)
      ✓ should have data attribution (269ms)
      Chart.js Charts
        ✓ should have cycle-timeline-chart canvas (283ms)
        ✓ cycle-timeline-chart should be rendered by Chart.js (689ms)
        ✓ should have risk-forecast-chart canvas (252ms)
        ✓ risk-forecast-chart should be rendered by Chart.js (711ms)
        ✓ should have temporal-trends-chart canvas (259ms)
        ✓ temporal-trends-chart should be rendered by Chart.js (657ms)
        ✓ should have party-tier-chart canvas (248ms)
        ✓ party-tier-chart should be rendered by Chart.js (647ms)
      D3.js Visualizations
        ✓ should have decision-heatmap container (250ms)
        ✓ decision-heatmap should render D3 SVG (265ms)
        ✓ decision-heatmap SVG should have content (268ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (234ms)
        ✓ should have screen reader descriptions (287ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (412ms)
        ✓ should be visible on tablet (768px) (316ms)
        ✓ should be visible on desktop (1440px) (263ms)
    Committee Dashboard
      ✓ should mount the dashboard container and remain visible (269ms)
      ✓ should have dashboard heading (576ms)
      ✓ should have data attribution (227ms)
      Chart.js Charts
        ✓ should have committeeComparisonChart canvas (264ms)
        ✓ committeeComparisonChart should be rendered by Chart.js (3360ms)
        ✓ should have decisionEffectivenessChart canvas (291ms)
        ✓ decisionEffectivenessChart should be rendered by Chart.js (3213ms)
        ✓ should have seasonalPatternsChart canvas (249ms)
        ✓ seasonalPatternsChart should be rendered by Chart.js (3274ms)
      D3.js Visualizations
        ✓ should have committeeNetwork container (238ms)
        ✓ committeeNetwork should render D3 SVG (379ms)
        ✓ committeeNetwork SVG should have content (260ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (269ms)
        ✓ should have screen reader descriptions (237ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (392ms)
        ✓ should be visible on tablet (768px) (263ms)
        ✓ should be visible on desktop (1440px) (267ms)
    Coalition Dashboard
      ✓ should mount the dashboard container and remain visible (230ms)
      ✓ should have dashboard heading (258ms)
      ✓ should have data attribution (294ms)
      Chart.js Charts
        ✓ should have votingAnomalyChart canvas (304ms)
        ✓ votingAnomalyChart should be rendered by Chart.js (681ms)
        ✓ should have behavioralPatternsChart canvas (244ms)
        ✓ behavioralPatternsChart should be rendered by Chart.js (574ms)
        ✓ should have decisionTrendsChart canvas (240ms)
        ✓ decisionTrendsChart should be rendered by Chart.js (748ms)
      D3.js Visualizations
        ✓ should have coalitionNetwork container (243ms)
        ✓ coalitionNetwork should render D3 SVG (236ms)
        ✓ coalitionNetwork SVG should have content (251ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (266ms)
        ✓ should have screen reader descriptions (249ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (333ms)
        ✓ should be visible on tablet (768px) (268ms)
        ✓ should be visible on desktop (1440px) (344ms)
    Seasonal Patterns Dashboard
      ✓ should mount the dashboard container and remain visible (284ms)
      ✓ should have dashboard heading (312ms)
      ✓ should have data attribution (246ms)
      Chart.js Charts
        ✓ should have zscore-timeline-chart canvas (265ms)
        ✓ zscore-timeline-chart should be rendered by Chart.js (785ms)
        ✓ should have quarter-comparison-chart canvas (315ms)
        ✓ quarter-comparison-chart should be rendered by Chart.js (684ms)
        ✓ should have classification-chart canvas (247ms)
        ✓ classification-chart should be rendered by Chart.js (668ms)
        ✓ should have qoq-change-chart canvas (232ms)
        ✓ qoq-change-chart should be rendered by Chart.js (686ms)
      D3.js Visualizations
        ✓ should have seasonal-heatmap container (329ms)
        ✓ seasonal-heatmap should render D3 SVG (254ms)
        ✓ seasonal-heatmap SVG should have content (247ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (254ms)
        ✓ should have screen reader descriptions (246ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (283ms)
        ✓ should be visible on tablet (768px) (271ms)
        ✓ should be visible on desktop (1440px) (274ms)
    Pre-Election Dashboard
      ✓ should mount the dashboard container and remain visible (323ms)
      ✓ should have dashboard heading (245ms)
      ✓ should have data attribution (228ms)
      Chart.js Charts
        ✓ should have q4-timeline-chart canvas (230ms)
        ✓ q4-timeline-chart should be rendered by Chart.js (730ms)
        ✓ should have election-comparison-chart canvas (224ms)
        ✓ election-comparison-chart should be rendered by Chart.js (546ms)
        ✓ should have deviation-radar-chart canvas (232ms)
        ✓ deviation-radar-chart should be rendered by Chart.js (693ms)
        ✓ should have party-trends-chart canvas (240ms)
        ✓ party-trends-chart should be rendered by Chart.js (612ms)
        ✓ should have yoy-waterfall-chart canvas (234ms)
        ✓ yoy-waterfall-chart should be rendered by Chart.js (571ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (243ms)
        ✓ should have screen reader descriptions (256ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (281ms)
        ✓ should be visible on tablet (768px) (274ms)
        ✓ should be visible on desktop (1440px) (259ms)
    Anomaly Detection Dashboard
      ✓ should mount the dashboard container and remain visible (233ms)
      ✓ should have dashboard heading (247ms)
      ✓ should have data attribution (254ms)
      Chart.js Charts
        ✓ should have anomaly-timeline-chart canvas (243ms)
        ✓ anomaly-timeline-chart should be rendered by Chart.js (581ms)
        ✓ should have zscore-distribution-chart canvas (245ms)
        ✓ zscore-distribution-chart should be rendered by Chart.js (676ms)
        ✓ should have anomaly-type-chart canvas (274ms)
        ✓ anomaly-type-chart should be rendered by Chart.js (671ms)
        ✓ should have quarterly-frequency-chart canvas (218ms)
        ✓ quarterly-frequency-chart should be rendered by Chart.js (576ms)
      D3.js Visualizations
        ✓ should have severity-heatmap container (262ms)
        ✓ severity-heatmap should render D3 SVG (221ms)
        ✓ severity-heatmap SVG should have content (229ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (238ms)
        ✓ should have screen reader descriptions (290ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (290ms)
        ✓ should be visible on tablet (768px) (278ms)
        ✓ should be visible on desktop (1440px) (281ms)
    Ministry Dashboard
      ✓ should mount the dashboard container and remain visible (226ms)
      ✓ should have dashboard heading (242ms)
      ✓ should have data attribution (224ms)
      Chart.js Charts
        ✓ should have ministerInfluenceChart canvas (240ms)
        ✓ ministerInfluenceChart should be rendered by Chart.js (585ms)
        ✓ should have ministryProductivityChart canvas (234ms)
        ✓ ministryProductivityChart should be rendered by Chart.js (615ms)
        ✓ should have decisionImpactChart canvas (260ms)
        ✓ decisionImpactChart should be rendered by Chart.js (654ms)
      D3.js Visualizations
        ✓ should have ministryRiskHeatMap container (241ms)
        ✓ ministryRiskHeatMap should render D3 SVG (240ms)
        ✓ ministryRiskHeatMap SVG should have content (276ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (258ms)
        ✓ should have screen reader descriptions (227ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (329ms)
        ✓ should be visible on tablet (768px) (280ms)
        ✓ should be visible on desktop (1440px) (290ms)
    Risk Dashboard
      ✓ should mount the dashboard container and remain visible (258ms)
      ✓ should have dashboard heading (226ms)
      ✓ should have data attribution (256ms)
      Chart.js Charts
        ✓ should have riskDistributionChart canvas (305ms)
        ✓ riskDistributionChart should be rendered by Chart.js (1289ms)
        ✓ should have anomalyDetectionChart canvas (292ms)
        ✓ anomalyDetectionChart should be rendered by Chart.js (1303ms)
        ✓ should have crisisResilienceChart canvas (218ms)
        ✓ crisisResilienceChart should be rendered by Chart.js (1259ms)
        ✓ should have riskEvolutionChart canvas (238ms)
        ✓ riskEvolutionChart should be rendered by Chart.js (2281ms)
      D3.js Visualizations
        ✓ should have riskHeatMap container (244ms)
        ✓ riskHeatMap should render D3 SVG (330ms)
        ✓ riskHeatMap SVG should have content (325ms)
      Accessibility
        ✓ should have ARIA labels on charts (where present) (282ms)
        ✓ should have screen reader descriptions (295ms)
      Responsive Design
        ✓ should be visible on mobile (375px) (295ms)
        ✓ should be visible on tablet (768px) (261ms)
        ✓ should be visible on desktop (1440px) (310ms)
    Dashboard Integration
      ✓ all 9 dashboards should have a unique slug + container ID (52ms)
      ✓ home page hub should link to every dashboard slug (277ms)
      ✓ every dashboard page should expose a back-to-home link (2741ms)
      ✓ every dashboard page should link to the other 8 dashboards via related-dashboards aside (2973ms)
    Performance
      ✓ every dashboard page should mount its container within 5s (3452ms)
      ✓ parties dashboard renders its first Chart.js canvas with Chart.js instance (614ms)


  168 passing (4m)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        168                                                                              │
  │ Passing:      168                                                                              │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     3 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 (523ms)
      ✓ should have proper document structure (362ms)
      ✓ should have dashboard header (243ms)
      ✓ should have chart cards container (321ms)
      ✓ should have proper meta tags (231ms)
      ✓ should have Open Graph tags (247ms)
      ✓ should have canonical link (241ms)
    Chart and Visualization Elements
      ✓ should have chart containers (219ms)
      ✓ should load Chart.js library (323ms)
      ✓ should have chart cards with proper styling (248ms)
      ✓ should have chart titles (268ms)
      ✓ should render canvas elements for charts (295ms)
    Politician Data Display
      ✓ should display politician rankings or data (212ms)
      ✓ should have top rankings section (245ms)
    Responsive Design
      ✓ should be responsive on Mobile (375x667) (301ms)
      ✓ should be responsive on Tablet (768x1024) (245ms)
      ✓ should be responsive on Desktop (1280x720) (260ms)
      ✓ should be responsive on Large Desktop (1920x1080) (356ms)
      ✓ should have mobile-friendly grid layout (301ms)
    Accessibility (WCAG 2.1 AA)
      ✓ should have proper language attribute (244ms)
      ✓ should have proper heading hierarchy (195ms)
      ✓ should have ARIA labels on interactive elements (242ms)
      ✓ should have alt text on images (231ms)
      ✓ should be keyboard navigable (201ms)
      ✓ should have sufficient color contrast (263ms)
    Navigation and Links
      ✓ should have navigation back to homepage (227ms)
      ✓ should have working internal links (179ms)
    Performance
      ✓ should load page within reasonable time (480ms)
      ✓ should not have JavaScript errors (193ms)
    Data Loading States
      ✓ should handle empty state gracefully (180ms)
      ✓ should have loading indicators or data display (321ms)
    CSS and Styling
      ✓ should not load any third-party font CDN (system-ui font stack) (226ms)
      ✓ should have custom styling loaded (335ms)
      ✓ should have cyberpunk theme elements (392ms)


  34 passing (12s)


  (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                     03:40      168      168        -        -        - │
  ├────────────────────────────────────────────────────────────────────────────────────────────────┤
  │ ✔  politician-dashboard.cy.js               00:12       34       34        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        03:52      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.47 preview
> vite preview

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

[STARTED] [16:47:25]  Verifying Cypress can run /home/runner/.cache/Cypress/15.19.0/Cypress
[COMPLETED] [16:47:32]  Verified Cypress!       /home/runner/.cache/Cypress/15.19.0/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.19.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.5.0 (/opt/hostedtoolcache/node/26.5.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 (1132ms)
    ✓ should have proper document structure (477ms)
    ✓ should display page heading (246ms)
    ✓ should have navigation menu (382ms)
    ✓ should have language switcher for all 14 languages (264ms)
    ✓ should have CIA data visualization containers (319ms)
    ✓ should be responsive on mobile (539ms)
    ✓ should be responsive on tablet (375ms)
    ✓ should be responsive on desktop (471ms)
    ✓ should have proper meta tags (332ms)
    ✓ should have link back to homepage (394ms)
    ✓ should load CSS styles (606ms)
    ✓ should load JavaScript modules (326ms)

  Dashboard Page - All Language Variants
    Swedish (SV)
      ✓ should load Swedish dashboard page (471ms)
      ✓ should have correct dir attribute for Swedish (405ms)
      ✓ should have proper page structure for Swedish (348ms)
      ✓ should be responsive for Swedish (359ms)
    Danish (DA)
      ✓ should load Danish dashboard page (379ms)
      ✓ should have correct dir attribute for Danish (394ms)
      ✓ should have proper page structure for Danish (325ms)
      ✓ should be responsive for Danish (383ms)
    Norwegian (NO)
      ✓ should load Norwegian dashboard page (445ms)
      ✓ should have correct dir attribute for Norwegian (389ms)
      ✓ should have proper page structure for Norwegian (266ms)
      ✓ should be responsive for Norwegian (323ms)
    Finnish (FI)
      ✓ should load Finnish dashboard page (323ms)
      ✓ should have correct dir attribute for Finnish (243ms)
      ✓ should have proper page structure for Finnish (322ms)
      ✓ should be responsive for Finnish (261ms)
    German (DE)
      ✓ should load German dashboard page (272ms)
      ✓ should have correct dir attribute for German (291ms)
      ✓ should have proper page structure for German (296ms)
      ✓ should be responsive for German (280ms)
    French (FR)
      ✓ should load French dashboard page (317ms)
      ✓ should have correct dir attribute for French (237ms)
      ✓ should have proper page structure for French (570ms)
      ✓ should be responsive for French (316ms)
    Spanish (ES)
      ✓ should load Spanish dashboard page (288ms)
      ✓ should have correct dir attribute for Spanish (281ms)
      ✓ should have proper page structure for Spanish (320ms)
      ✓ should be responsive for Spanish (229ms)
    Dutch (NL)
      ✓ should load Dutch dashboard page (267ms)
      ✓ should have correct dir attribute for Dutch (258ms)
      ✓ should have proper page structure for Dutch (261ms)
      ✓ should be responsive for Dutch (276ms)
    Arabic (AR)
      ✓ should load Arabic dashboard page (328ms)
      ✓ should have correct dir attribute for Arabic (343ms)
      ✓ should have proper page structure for Arabic (277ms)
      ✓ should be responsive for Arabic (291ms)
    Hebrew (HE)
      ✓ should load Hebrew dashboard page (269ms)
      ✓ should have correct dir attribute for Hebrew (299ms)
      ✓ should have proper page structure for Hebrew (310ms)
      ✓ should be responsive for Hebrew (240ms)
    Japanese (JA)
      ✓ should load Japanese dashboard page (462ms)
      ✓ should have correct dir attribute for Japanese (325ms)
      ✓ should have proper page structure for Japanese (331ms)
      ✓ should be responsive for Japanese (418ms)
    Korean (KO)
      ✓ should load Korean dashboard page (308ms)
      ✓ should have correct dir attribute for Korean (485ms)
      ✓ should have proper page structure for Korean (320ms)
      ✓ should be responsive for Korean (322ms)
    Chinese (ZH)
      ✓ should load Chinese dashboard page (309ms)
      ✓ should have correct dir attribute for Chinese (299ms)
      ✓ should have proper page structure for Chinese (324ms)
      ✓ should be responsive for Chinese (330ms)

  Dashboard Page - Accessibility
    ✓ should have valid HTML lang attribute (269ms)
    ✓ should have proper heading hierarchy (243ms)
    ✓ should have alt text on images (if any) (308ms)
    ✓ should have ARIA labels on charts (if any) (255ms)
    ✓ should be keyboard navigable (372ms)
    ✓ should have visible focus indicators (262ms)

  Dashboard Page - Navigation
    ✓ should navigate from homepage to dashboard (918ms)
    ✓ should navigate from dashboard back to homepage (1108ms)
    ✓ should support language switching on dashboard page (353ms)

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

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


  78 passing (40s)


  (Results)

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


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


  Dashboard Functionality
    Party Dashboard
      ✓ should display party dashboard (503ms)
      ✓ should have party effectiveness chart (417ms)
      ✓ should have party comparison chart (320ms)
      ✓ should have coalition alignment chart (208ms)
      ✓ should have party momentum chart (254ms)
      ✓ should render charts after data loads (878ms)
    Anomaly Detection Dashboard
      ✓ should display anomaly dashboard (220ms)
      ✓ should have severity filter (351ms)
      ✓ should have type filter (254ms)
      ✓ should filter anomalies by severity (751ms)
      ✓ should display D3 heatmap (2225ms)
    Seasonal Patterns Dashboard
      ✓ should display seasonal patterns dashboard (236ms)
      ✓ should have year filter (270ms)
      ✓ should have quarter filter (217ms)
    Pre-Election Dashboard
      ✓ should display pre-election dashboard (340ms)
      ✓ should show status cards (282ms)
    Dashboard Accessibility
      ✓ should have ARIA labels on charts (226ms)
      ✓ should have screen reader text (232ms)
      ✓ should be keyboard navigable (267ms)
    Dashboard Performance
      ✓ should load dashboards within reasonable time (214ms)
      ✓ should handle data loading failures without crashing (210ms)
    Dashboard Bundle Integration
      ✓ /dashboards/parties.html ships hashed main bundle (no /src/browser/main.ts) (58ms)
      ✓ /dashboards/pre-election.html ships hashed main bundle (no /src/browser/main.ts) (46ms)
      ✓ /dashboards/coalitions.html ships hashed main bundle (no /src/browser/main.ts) (46ms)
      ✓ /dashboards/committees.html ships hashed main bundle (no /src/browser/main.ts) (46ms)
      ✓ /dashboards/seasonal-patterns.html ships hashed main bundle (no /src/browser/main.ts) (51ms)
      ✓ /dashboards/anomaly-detection.html ships hashed main bundle (no /src/browser/main.ts) (44ms)
      ✓ /dashboards/risk.html ships hashed main bundle (no /src/browser/main.ts) (43ms)
      ✓ /dashboards/ministers.html ships hashed main bundle (no /src/browser/main.ts) (48ms)
      ✓ /dashboards/election-cycle.html ships hashed main bundle (no /src/browser/main.ts) (46ms)
      ✓ runs main.ts → registers Chart.js global on dashboard pages (431ms)


  31 passing (12s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        31                                                                               │
  │ Passing:      31                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     12 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) (521ms)
      ✓ registers window.Chart and window.d3 without any user scroll (495ms)
      ✓ does not show a visible error fallback on first paint (299ms)
    /dashboards/committees.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (233ms)
      ✓ registers window.Chart and window.d3 without any user scroll (423ms)
      ✓ does not show a visible error fallback on first paint (298ms)
    /dashboards/coalitions.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (303ms)
      ✓ registers window.Chart and window.d3 without any user scroll (313ms)
      ✓ does not show a visible error fallback on first paint (338ms)
    /dashboards/election-cycle.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (350ms)
      ✓ registers window.Chart and window.d3 without any user scroll (312ms)
      ✓ does not show a visible error fallback on first paint (299ms)
    /dashboards/seasonal-patterns.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (295ms)
      ✓ registers window.Chart and window.d3 without any user scroll (436ms)
      ✓ 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) (252ms)
      ✓ registers window.Chart and window.d3 without any user scroll (315ms)
      ✓ does not show a visible error fallback on first paint (329ms)
    /dashboards/anomaly-detection.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (305ms)
      ✓ registers window.Chart and window.d3 without any user scroll (335ms)
      ✓ does not show a visible error fallback on first paint (321ms)
    /dashboards/ministers.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (247ms)
      ✓ registers window.Chart and window.d3 without any user scroll (328ms)
      ✓ does not show a visible error fallback on first paint (487ms)
    /dashboards/risk.html
      ✓ serves the hashed main-*.js bundle (no dev /src/browser/main.ts) (332ms)
      ✓ registers window.Chart and window.d3 without any user scroll (302ms)
      ✓ does not show a visible error fallback on first paint (287ms)


  27 passing (11s)


  (Results)

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


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

  (Run Finished)


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

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

[STARTED] [16:47:28]  Verifying Cypress can run /home/runner/.cache/Cypress/15.19.0/Cypress
[COMPLETED] [16:47:33]  Verified Cypress!       /home/runner/.cache/Cypress/15.19.0/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.19.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.5.0 (/opt/hostedtoolcache/node/26.5.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 (1378ms)
      ✓ should have proper lang attribute for Swedish (271ms)
      ✓ should have correct text direction for Swedish (309ms)
      ✓ should have basic page structure for Swedish (295ms)
      ✓ should load German (de) homepage (296ms)
      ✓ should have proper lang attribute for German (260ms)
      ✓ should have correct text direction for German (310ms)
      ✓ should have basic page structure for German (236ms)
      ✓ should load Arabic (ar) homepage (466ms)
      ✓ should have proper lang attribute for Arabic (293ms)
      ✓ should have correct text direction for Arabic (322ms)
      ✓ should have basic page structure for Arabic (301ms)
      ✓ should load Japanese (ja) homepage (706ms)
      ✓ should have proper lang attribute for Japanese (603ms)
      ✓ should have correct text direction for Japanese (751ms)
      ✓ should have basic page structure for Japanese (602ms)
      ✓ should load Chinese (zh) homepage (422ms)
      ✓ should have proper lang attribute for Chinese (476ms)
      ✓ should have correct text direction for Chinese (449ms)
      ✓ should have basic page structure for Chinese (448ms)
    Dashboard - Representative Languages
      ✓ should load Swedish (sv) dashboard (699ms)
      ✓ should have proper lang attribute for Swedish dashboard (600ms)
      ✓ should have correct text direction for Swedish dashboard (632ms)
      ✓ should have basic page structure for Swedish dashboard (770ms)
      ✓ should load German (de) dashboard (912ms)
      ✓ should have proper lang attribute for German dashboard (491ms)
      ✓ should have correct text direction for German dashboard (372ms)
      ✓ should have basic page structure for German dashboard (472ms)
      ✓ should load Arabic (ar) dashboard (885ms)
      ✓ should have proper lang attribute for Arabic dashboard (410ms)
      ✓ should have correct text direction for Arabic dashboard (739ms)
      ✓ should have basic page structure for Arabic dashboard (332ms)
      ✓ should load Japanese (ja) dashboard (858ms)
      ✓ should have proper lang attribute for Japanese dashboard (415ms)
      ✓ should have correct text direction for Japanese dashboard (409ms)
      ✓ should have basic page structure for Japanese dashboard (436ms)
      ✓ should load Chinese (zh) dashboard (608ms)
      ✓ should have proper lang attribute for Chinese dashboard (334ms)
      ✓ should have correct text direction for Chinese dashboard (338ms)
      ✓ should have basic page structure for Chinese dashboard (353ms)
    News - Representative Languages
      Swedish (sv)
        ✓ should load news page (413ms)
        ✓ should have proper lang attribute (383ms)
        ✓ should have correct text direction (326ms)
        ✓ should have basic page structure (349ms)
      German (de)
        ✓ should load news page (373ms)
        ✓ should have proper lang attribute (265ms)
        ✓ should have correct text direction (322ms)
        ✓ should have basic page structure (335ms)
      Arabic (ar)
        ✓ should load news page (413ms)
        ✓ should have proper lang attribute (371ms)
        ✓ should have correct text direction (429ms)
        ✓ should have basic page structure (434ms)
      Japanese (ja)
        ✓ should load news page (579ms)
        ✓ should have proper lang attribute (458ms)
        ✓ should have correct text direction (413ms)
        ✓ should have basic page structure (487ms)
      Chinese (zh)
        ✓ should load news page (508ms)
        ✓ should have proper lang attribute (330ms)
        ✓ should have correct text direction (387ms)
        ✓ should have basic page structure (424ms)
    Language Consistency
      ✓ should have consistent lang attribute across all pages for Swedish (1434ms)
      ✓ should have consistent lang attribute across all pages for German (1418ms)
      ✓ should have consistent lang attribute across all pages for Arabic (1365ms)
      ✓ should have consistent lang attribute across all pages for Japanese (1953ms)
      ✓ should have consistent lang attribute across all pages for Chinese (1520ms)
    RTL Language Specific Tests
      ✓ should have RTL dir attribute on all pages for Arabic (1436ms)
      ✓ should render RTL content properly for Arabic (280ms)
      ✓ should have RTL dir attribute on all pages for Hebrew (1479ms)
      ✓ should render RTL content properly for Hebrew (329ms)
    LTR Language Specific Tests
      ✓ should have LTR or default dir for Swedish on all pages (1166ms)
      ✓ should have LTR or default dir for German on all pages (1152ms)
      ✓ should have LTR or default dir for Japanese on all pages (2003ms)
      ✓ should have LTR or default dir for Chinese on all pages (1636ms)
    Language Switcher Functionality
      ✓ should have language switcher on all pages (1374ms)
      ✓ should allow switching between languages on homepage (2836ms)
    Responsive Design - All Languages
      ✓ should be responsive on Mobile for Swedish homepage (250ms)
      ✓ should be responsive on Desktop for Swedish homepage (247ms)
      ✓ should be responsive on Mobile for Arabic homepage (287ms)
      ✓ should be responsive on Desktop for Arabic homepage (277ms)
      ✓ should be responsive on Mobile for Japanese homepage (639ms)
      ✓ should be responsive on Desktop for Japanese homepage (639ms)
    Meta Tags - All Languages
      ✓ should have proper meta tags for Swedish (256ms)
      ✓ should have proper meta tags for Arabic (280ms)
      ✓ should have proper meta tags for Chinese (380ms)
    Accessibility - All Languages
      ✓ should have accessible structure for Swedish (365ms)
      ✓ should have accessible structure for Hebrew (324ms)
      ✓ should have accessible structure for Korean (453ms)
    Performance - All Languages
      ✓ should load quickly for Swedish (289ms)
      ✓ should load quickly for Arabic (312ms)
      ✓ should load quickly for Japanese (593ms)
    Content Validation - Sample Languages
      ✓ should have meaningful content for Swedish (259ms)
      ✓ should have meaningful content for Arabic (307ms)
      ✓ should have meaningful content for Japanese (586ms)

  Multi-Language Cross-Page Navigation
    ✓ should maintain language when navigating for sv (1733ms)
    ✓ should maintain language when navigating for de (1725ms)
    ✓ should maintain language when navigating for ar (2115ms)
    ✓ should maintain language when navigating for ja (2707ms)


  97 passing (1m)


  (Results)

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


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

  (Run Finished)


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

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

[STARTED] [16:47:12]  Verifying Cypress can run /home/runner/.cache/Cypress/15.19.0/Cypress
[COMPLETED] [16:47:16]  Verified Cypress!       /home/runner/.cache/Cypress/15.19.0/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.19.0                                                                        │
  │ Browser:        Electron 138 (headless)                                                        │
  │ Node Version:   v26.5.0 (/opt/hostedtoolcache/node/26.5.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 (1006ms)
    ✓ should have proper document structure (292ms)
    ✓ should display page heading (269ms)
    ✓ should have navigation menu (326ms)
    ✓ should have language switcher for all 14 languages (305ms)
    ✓ should display news articles or article list (276ms)
    ✓ should have news article links (248ms)
    ✓ should be responsive on mobile (341ms)
    ✓ should be responsive on tablet (309ms)
    ✓ should be responsive on desktop (344ms)
    ✓ should have proper meta tags (268ms)
    ✓ should have link back to homepage (256ms)
    ✓ should load CSS styles (268ms)
    ✓ should load JavaScript (if any) (257ms)

  News Page - All Language Variants
    Swedish (SV)
      ✓ should load Swedish news page (315ms)
      ✓ should have correct dir attribute for Swedish (258ms)
      ✓ should have proper page structure for Swedish (272ms)
      ✓ should be responsive for Swedish (267ms)
    German (DE)
      ✓ should load German news page (249ms)
      ✓ should have correct dir attribute for German (272ms)
      ✓ should have proper page structure for German (294ms)
      ✓ should be responsive for German (338ms)
    Arabic (AR)
      ✓ should load Arabic news page (371ms)
      ✓ should have correct dir attribute for Arabic (309ms)
      ✓ should have proper page structure for Arabic (343ms)
      ✓ should be responsive for Arabic (322ms)
    Hebrew (HE)
      ✓ should load Hebrew news page (449ms)
      ✓ should have correct dir attribute for Hebrew (293ms)
      ✓ should have proper page structure for Hebrew (322ms)
      ✓ should be responsive for Hebrew (325ms)
    Japanese (JA)
      ✓ should load Japanese news page (454ms)
      ✓ should have correct dir attribute for Japanese (412ms)
      ✓ should have proper page structure for Japanese (442ms)
      ✓ should be responsive for Japanese (413ms)

  News Page - Accessibility
    ✓ should have valid HTML lang attribute (235ms)
    ✓ should have proper heading hierarchy (266ms)
    ✓ should have alt text on images (if any) (298ms)
    ✓ should be keyboard navigable (267ms)
    ✓ should have visible focus indicators (313ms)
    ✓ should have semantic HTML for articles (263ms)

  News Page - Navigation
    ✓ should navigate from homepage to news page (779ms)
    ✓ should navigate from news page back to homepage (667ms)
    ✓ should support language switching on news page (1850ms)
    ✓ should link to individual news articles (681ms)

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

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

  News Page - Content Validation
    ✓ should have news metadata (dates, categories) (315ms)
    ✓ should have proper article structure (321ms)
    ✓ should have readable text content (384ms)

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


  52 passing (23s)


  (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 (348ms)
      ✓ should load article: /news/2026-02-14-government-propositions-en.html (305ms)
      ✓ should load article: /news/2026-02-14-opposition-motions-en.html (192ms)
      ✓ should load article: /news/2026-02-14-week-ahead-feb-15-21-en.html (146ms)
      ✓ should load article: /news/2026-02-13-evening-analysis-en.html (162ms)
    Article Page Structure
      ✓ should have proper document structure (166ms)
      ✓ should have article heading (153ms)
      ✓ should have article content (161ms)
      ✓ should have proper meta tags (168ms)
      ✓ should have Open Graph tags for social sharing (155ms)
      ✓ should have article metadata (197ms)
      ✓ should have readable typography (169ms)
    Article Content Validation
      ✓ should have paragraphs (184ms)
      ✓ should have headings hierarchy (213ms)
      ✓ should not have Lorem Ipsum placeholder text (159ms)
      ✓ should have substantial content (151ms)
    Multi-Language Article Support
      ✓ should load English article version (169ms)
      ✓ should load Swedish article version (145ms)
      ✓ should load Danish article version (153ms)
      ✓ should load Norwegian article version (155ms)
      ✓ should load Finnish article version (173ms)
      ✓ should have language switcher or alternatives (142ms)
    RTL Article Support
      ✓ should have proper RTL layout for Arabic (280ms)
      ✓ should have proper RTL layout for Hebrew (188ms)
    Article Navigation
      ✓ should have navigation back to news index (172ms)
      ✓ should have navigation to homepage (164ms)
      ✓ should have header navigation (152ms)
    Article Responsive Design
      ✓ should be readable on Mobile (375x667) (224ms)
      ✓ should be readable on Tablet (768x1024) (212ms)
      ✓ should be readable on Desktop (1280x720) (176ms)
      ✓ should be readable on Large Desktop (1920x1080) (219ms)
      ✓ should have mobile-optimized reading experience (250ms)
    Article Accessibility
      ✓ should have proper heading hierarchy (174ms)
      ✓ should have alt text on images (189ms)
      ✓ should have keyboard navigable links (157ms)
      ✓ should have semantic HTML (157ms)
    Article Performance
      ✓ should load quickly (208ms)
      ✓ should not have JavaScript errors (149ms)
    Article SEO
      ✓ should have canonical URL (204ms)
      ✓ should have description meta tag (154ms)
      ✓ should have relevant keywords (156ms)
    Article Categories
      ✓ should load committee-reports article (159ms)
      ✓ should load government-propositions article (192ms)
      ✓ should load opposition-motions article (168ms)
      ✓ should load week-ahead article (155ms)
      ✓ should load evening-analysis article (148ms)


  46 passing (11s)


  (Results)

  ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
  │ Tests:        46                                                                               │
  │ Passing:      46                                                                               │
  │ Failing:      0                                                                                │
  │ Pending:      0                                                                                │
  │ Skipped:      0                                                                                │
  │ Screenshots:  0                                                                                │
  │ Video:        false                                                                            │
  │ Duration:     10 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:10       46       46        -        -        - │
  └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✔  All specs passed!                        00:33       98       98        -        -        -  


← Back to Documentation Hub