Skip to content

Upgrade testem to latest#21425

Merged
NullVoxPopuli merged 1 commit into
mainfrom
nvp/update-testem
May 26, 2026
Merged

Upgrade testem to latest#21425
NullVoxPopuli merged 1 commit into
mainfrom
nvp/update-testem

Conversation

@NullVoxPopuli
Copy link
Copy Markdown
Contributor

@NullVoxPopuli NullVoxPopuli commented May 23, 2026

Upstream fix testem/testem#2013

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 23, 2026

📊 Size report

Tarball size1.2 MB1.2 MB

dist/dev   No changes

File Before (Size / Brotli) After (Size / Brotli)
./packages/shared-chunks/template-{hash}.js 1.1 kB / 401 B -54%↓491 B / -49.4%↓203 B
Total (Includes all files) 2 MB / 478.1 kB 2 MB / 478.1 kB

dist/prod   No changes

File Before (Size / Brotli) After (Size / Brotli)
./packages/shared-chunks/api-{hash}.js 8.3 kB / 1.8 kB -28.6%↓5.9 kB / -17.3%↓1.5 kB
Total (Includes all files) 1.8 MB / 436 kB 1.8 MB / 436 kB

smoke-tests/v2-app-hello-world-template/dist   No changes

File Before (Size / Brotli) After (Size / Brotli)
Total (Includes all files) 235 kB / 64.4 kB 235 kB / 64.4 kB

🤖 This report was automatically generated by wyvox/pkg-size

@kategengler
Copy link
Copy Markdown
Member

Serializing questions here for memory:

  • Why was the testem issue not an issue on Chrome and why did it only show up on Firefox?
  • How is this not an issue for the tutorial/new app generation that use testem 3.20?

@NullVoxPopuli-ai-agent
Copy link
Copy Markdown
Contributor

Why was the testem issue not an issue on Chrome and why did it only show up on Firefox?

it isn't firefox-only -- the renovate bump #21394 hits the exact same Browser failed to connect within 120s. testem.js not loaded? on Basic Test (Chrome). firefox just looks exclusive because browser-test has needs: [basic-test, lint, types] and skips when chrome already failed.

both browsers fetch qunit (and friends) at /assets/node_modules/.pnpm/qunit@2.25.0/... -- that's coming from preserveModules: true in our vite.config.mjs on main, which mirrors the pnpm layout into dist/index.html <script> tags. testem 3.20's send@1.x 500s on any dot-prefixed intermediate segment (testem/testem#2012, fix in testem/testem#2013).

How is this not an issue for the tutorial/new app generation that use testem 3.20?

neither of them sets preserveModules. super-rentals' vite.config.mjs is the embroider defaults with no rollup overrides, and its test script is just vite build --mode development && ember test --path dist; same shape in ember-new-output. bundled output is /assets/main-*.js / /assets/app-*.js -- no dot-prefixed segments hit testem's static server, so the dotfiles: 'ignore' default never matches. we're the odd one out because the ember-source test build keeps modules unbundled.

@NullVoxPopuli
Copy link
Copy Markdown
Contributor Author

Over here I'm testing that hypothesis via setting preserveModules to false on the renovate upgrade PR: #21394

@NullVoxPopuli-ai-agent
Copy link
Copy Markdown
Contributor

ran it locally to confirm -- flip preserveModules to false and drop the patch, and testem 3.20 connects fine.

dist/index.html becomes the plain bundled shape:

<script type="module" crossorigin src="/assets/index-BW7JjjBU.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-K4R3Fv9v.css">

no dot-prefixed segments, so send@1.x never rejects. pnpm test runs to completion: # tests 9325 / # pass 9305 / # skip 17 / # fail 3.

the 3 fails aren't testem -- they're (eval) runtime-template-compiler tests (e.g. keyword helper: array (runtime): implicit scope, keyword helper: element (runtime): implicit scope (eval)) that need @ember/component / @glimmer/runtime resolvable as separate modules at runtime. rollup warns about them at build time:

packages/@ember/component/index.ts is dynamically imported by ... runtime-template-compiler-explicit-test.ts ... but also statically imported by ... dynamic import will not move module into another chunk.

so the real tradeoff: keep preserveModules: true + the patch (this PR), or flip to bundled and lose runtime-template-compiler test coverage. patch is the smaller blast radius.

@NullVoxPopuli
Copy link
Copy Markdown
Contributor Author

we can't turn off prserveModules because then some of our runtime compiler tests fail

@NullVoxPopuli NullVoxPopuli merged commit f8113c8 into main May 26, 2026
40 checks passed
@NullVoxPopuli NullVoxPopuli deleted the nvp/update-testem branch May 26, 2026 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants