Commit 83933fa
Make ember-lts-4.12 compat scenario runnable
Three stacked runtime issues were blocking ember-lts-4.12 once the
`require` import issue from ember-cli#321 cleared. All three affect the compat
path (ENABLE_COMPAT_BUILD=true, ember4 deps overrides) and are hidden
for ember-source >= 6 because the upstream code was rewritten.
1. "Cannot read properties of undefined (reading 'has')" at
`makeComputedDecorator` → `COMPUTED_GETTERS.has(...)`.
ember-source <= 5.x's `@ember/-internals/metal` has
`let COMPUTED_GETTERS; if (DEBUG) { COMPUTED_GETTERS = new WeakSet(); }`
paired with `assert(..., !COMPUTED_GETTERS.has(...))`. `DEBUG` comes from
`@glimmer/env`, whose published default is `DEBUG = false`. Without
babel-plugin-debug-macros processing ember-source, the init is
tree-shaken while the `assert` predicate still evaluates eagerly, so
`COMPUTED_GETTERS` is undefined at runtime.
Alias `@glimmer/env` to a local shim that exports `DEBUG = true` so the
init and the use stay consistent (ember-source >= 6 switched to
`isDevelopingApp()` from `@embroider/macros`, which `buildMacros()`
already handles — hence the problem is specific to the older Ember
versions exercised by the compat scenarios).
2. "ReferenceError: requirejs is not defined" from ember-qunit's
auto-loadTests.
ember-qunit@8's `start()` calls `loadTests()` which uses
`requirejs.entries` — there's no loader.js in a vite build.
ember-qunit@9 dropped that call entirely. Pass `{ loadTests: false }`
so `start()` skips the requirejs-based loader; tests/index.html already
uses `import.meta.glob` to discover them. The option is safely ignored
by ember-qunit 9.
3. "Cannot read properties of undefined (reading
'_APPLICATION_TEMPLATE_WRAPPER')" from `@ember/test-helpers`'s `visit`
and `setup-rendering-context`.
test-helpers 4.x reads `global.EmberENV._APPLICATION_TEMPLATE_WRAPPER`
to decide whether to look inside the `.ember-view` wrapper. In classic
ember-cli apps the global is populated from index.html; here we need
to set it ourselves from config. Assign `globalThis.EmberENV` in
`test-helper.js`. test-helpers 5.x no longer reads this at all, so the
assignment is harmless for non-compat scenarios.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>1 parent e965739 commit 83933fa
3 files changed
Lines changed: 21 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
9 | 11 | | |
10 | 12 | | |
11 | 13 | | |
12 | | - | |
| 14 | + | |
13 | 15 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
14 | 22 | | |
0 commit comments