• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

adobe / spectrum-web-components / 18017563598

25 Sep 2025 06:48PM UTC coverage: 97.916% (-0.09%) from 98.002%
18017563598

push

github

web-flow
chore: update playwright and @web/test-runner dependencies with comprehensive test refactoring (#5578)

This pull request represents a comprehensive update to testing infrastructure and dependencies across the entire Spectrum Web Components codebase. The changes include major dependency updates for Playwright and @web/test-runner packages, extensive test refactoring for improved reliability and maintainability, and enhanced CI/CD configurations.

Major Dependency Updates
Playwright:

Updated Docker image in CI from mcr.microsoft.com/playwright:v1.44.0 to v1.53.1
Updated @playwright/test version from ^1.44.0 to ^1.53.1
@web/test-runner Ecosystem:

Updated @web/test-runner from ^0.18.3 to ^0.20.2 across multiple packages
Updated @web/test-runner-junit-reporter from ^0.7.2 to ^0.8.0
Updated @web/test-runner-playwright from ^0.11.0 to ^0.11.1
Updated @web/test-runner-visual-regression from ^0.9.0 to ^0.10.0
Updated wireit from ^0.14.3 to ^0.14.12
Infrastructure Improvements
CI/CD Configuration:

Enhanced CircleCI configuration with updated Docker images and improved parallelism
Added new Chromium memory testing configuration (web-test-runner.config.ci-chromium-memory.js)
Updated GitHub Actions workflows for better coverage reporting
Added concurrency settings across all browser test configurations
ESLint and Code Quality:

Expanded ESLint coverage to include **/stories/*.ts files
Updated ESM import syntax from assert { type: 'json' } to with { type: 'json' }
Fixed import paths for visual regression commands
Dependency Management:

Added comprehensive patching system documentation in CONTRIBUTING.md
Created Yarn patches for @web/test-runner-playwright and @web/test-runner-visual-regression
Removed legacy patch-package dependency in favor of Yarn 4's built-in patching
Comprehensive Test Suite Refactoring (132 files affected)
Testing Helper Functions:

Refactored mouse interaction helpers: sendMouse → mouseClickOn, mouseClickAway, mouseMoveOver, mouseMoveAwa... (continued)

5324 of 5638 branches covered (94.43%)

Branch coverage included in aggregate %.

91 of 93 new or added lines in 8 files covered. (97.85%)

204 existing lines in 31 files now uncovered.

34050 of 34574 relevant lines covered (98.48%)

628.74 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.52
/tools/reactive-controllers/src/LanguageResolution.ts
1
/**
20✔
2
 * Copyright 2025 Adobe. All rights reserved.
20✔
3
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
20✔
4
 * you may not use this file except in compliance with the License. You may obtain a copy
20✔
5
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
20✔
6
 *
20✔
7
 * Unless required by applicable law or agreed to in writing, software distributed under
20✔
8
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
20✔
9
 * OF ANY KIND, either express or implied. See the License for the specific language
20✔
10
 * governing permissions and limitations under the License.
20✔
11
 */
20✔
12

20✔
13
import type { ReactiveController, ReactiveElement } from 'lit';
20✔
14
import { ProvideLang } from '@spectrum-web-components/theme';
20✔
15

20✔
16
export const languageResolverUpdatedSymbol = Symbol(
20✔
17
    'language resolver updated'
20✔
18
);
20✔
19

20✔
20
export class LanguageResolutionController implements ReactiveController {
20✔
21
    private host: ReactiveElement;
20✔
22
    language = document.documentElement.lang || navigator.language || 'en-US';
20!
23
    private unsubscribe?: () => void;
20✔
24

20✔
25
    constructor(host: ReactiveElement) {
20✔
26
        this.host = host;
383✔
27
        this.host.addController(this);
383✔
28
    }
383✔
29

20✔
30
    public hostConnected(): void {
20✔
31
        this.resolveLanguage();
383✔
32
    }
383✔
33

20✔
34
    public hostDisconnected(): void {
20✔
35
        this.unsubscribe?.();
383✔
36
    }
383✔
37

20✔
38
    private resolveLanguage(): void {
20✔
39
        try {
383✔
40
            Intl.DateTimeFormat.supportedLocalesOf([this.language]);
383✔
41
        } catch {
383!
NEW
42
            this.language = 'en-US';
×
NEW
43
        }
×
44
        const queryThemeEvent = new CustomEvent<ProvideLang>(
383✔
45
            'sp-language-context',
383✔
46
            {
383✔
47
                bubbles: true,
383✔
48
                composed: true,
383✔
49
                detail: {
383✔
50
                    callback: (lang: string, unsubscribe: () => void) => {
383✔
51
                        const previous = this.language;
93✔
52
                        this.language = lang;
93✔
53
                        this.unsubscribe = unsubscribe;
93✔
54
                        this.host.requestUpdate(
93✔
55
                            languageResolverUpdatedSymbol,
93✔
56
                            previous
93✔
57
                        );
93✔
58
                    },
93✔
59
                },
383✔
60
                cancelable: true,
383✔
61
            }
383✔
62
        );
383✔
63
        this.host.dispatchEvent(queryThemeEvent);
383✔
64
    }
383✔
65
}
20✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc