test: add karma test showing hydration mismatch when a child component has scoped styles and a custom HTML template #2643
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run unit tests | |
on: | |
push: | |
branches: | |
- master | |
- release | |
- 'spring*' | |
- 'summer*' | |
- 'winter*' | |
pull_request: | |
branches: | |
- master | |
- release | |
- 'spring*' | |
- 'summer*' | |
- 'winter*' | |
env: | |
PUPPETEER_SKIP_DOWNLOAD: 'true' # only needed for @best/runner-local, unused here | |
jobs: | |
run-unit-tests: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.18.0' | |
cache: 'yarn' | |
# Needed for perf smoke tests, matches the chromedriver version installed by tachometer (https://github.com/google/tachometer/blob/main/README.md#on-demand-dependencies) | |
# chrome-version documentation can be found here: https://github.com/browser-actions/setup-chrome?tab=readme-ov-file#usage | |
- name: Setup chrome | |
uses: browser-actions/setup-chrome@v1 | |
with: | |
chrome-version: 130 | |
id: setup-chrome | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile | |
# Pin chromedriver to the same version as Chrome above, so Tachometer uses this version. | |
# See: https://github.com/google/tachometer#on-demand-dependencies | |
- name: Install chromedriver | |
run: yarn add -W chromedriver@^130 | |
- name: Check package.json integrity | |
run: node ./scripts/tasks/check-and-rewrite-package-json.js --test | |
- name: Check licenses are up to date | |
run: node ./scripts/tasks/generate-license-files.js --test | |
- name: Verify @lwc/shared is tree-shakable | |
run: node ./scripts/tasks/verify-treeshakable.js ./packages/@lwc/shared/dist/index.js | |
- name: Verify that dependencies are declared | |
run: node ./scripts/tasks/check-imports-are-declared-dependencies.js | |
- name: Check formatting | |
run: yarn prettier --check '{packages,scripts}/**/*.{js,ts,json,md}' | |
- name: Run linter | |
run: yarn lint | |
- name: Check the size of the LWC bundle | |
run: yarn bundlesize | |
- name: Check types | |
run: yarn test:types | |
- name: Run unit tests | |
run: yarn test:ci | |
# TODO [#4815]: enable all SSR v2 tests | |
- name: Run experimental SSR fixture tests | |
run: TEST_SSR_COMPILER=1 yarn test packages/@lwc/ssr-compiler/src/__tests__/fixtures.spec.ts | |
- name: Upload unit test coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-coverage-report | |
path: coverage/ | |
- name: Run benchmark smoke tests | |
run: CHROME_BINARY=${{ steps.setup-chrome.outputs.chrome-path }} BENCHMARK_SMOKE_TEST=1 yarn test:performance | |
- name: Add step summary | |
# 1. Remove leading/trailing "border" lines from output | |
# 2. Wrap file names in backticks | |
# 3. Convert leading whitespace to non-breaking to approximate plaintext output | |
run: sed -E '$d;1d;4,$s/^( ?)([^ ]+)/\1`\2`/g;4,$s/^ /\ \ /g' coverage/coverage.txt >> "$GITHUB_STEP_SUMMARY" |