@ember/app-blueprint 6.10.0-alpha.7 → 6.10.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/.release-plan.json +6 -10
  2. package/CHANGELOG.md +23 -0
  3. package/README.md +43 -0
  4. package/conditional-files/minimal/app/app.ts +10 -0
  5. package/conditional-files/minimal/app/templates/application.gts +7 -0
  6. package/conditional-files/no-compat/_js_babel.config.mjs +47 -0
  7. package/conditional-files/no-compat/_ts_babel.config.mjs +55 -0
  8. package/conditional-files/no-compat/app/app.ts +18 -0
  9. package/conditional-files/no-compat/app/config/environment.ts +38 -0
  10. package/eslint.config.mjs +5 -0
  11. package/files/app/templates/application.gts +2 -2
  12. package/files/index.html +8 -5
  13. package/files/package.json +29 -30
  14. package/files/testem.cjs +2 -1
  15. package/files/tests/index.html +10 -3
  16. package/files/tests/test-helper.ts +3 -2
  17. package/files/vite.config.mjs +3 -3
  18. package/index.js +213 -3
  19. package/package.json +8 -3
  20. package/tests/fixtures/tests-js-no-compat-10/app/components/.gitkeep +0 -0
  21. package/tests/fixtures/tests-js-no-compat-10/app/components/sweet.gjs +3 -0
  22. package/tests/fixtures/tests-js-no-compat-10/app/router.js +11 -0
  23. package/tests/fixtures/tests-js-no-compat-10/app/routes/fancy.js +6 -0
  24. package/tests/fixtures/tests-js-no-compat-10/app/styles/app.css +3 -0
  25. package/tests/fixtures/tests-js-no-compat-10/app/templates/application.gjs +7 -0
  26. package/tests/fixtures/tests-js-no-compat-10/app/templates/fancy.gjs +9 -0
  27. package/tests/fixtures/tests-js-no-compat-10/tests/acceptance/index-test.js +26 -0
  28. package/tests/fixtures/tests-js-no-compat-10/tests/integration/components/sweet-test.gjs +28 -0
  29. package/tests/fixtures/tests-js-no-compat-10/tests/routes/fancy-test.js +11 -0
  30. package/tests/fixtures/tests-ts-no-compat-10/app/components/.gitkeep +0 -0
  31. package/tests/fixtures/tests-ts-no-compat-10/app/components/sweet.gts +3 -0
  32. package/tests/fixtures/tests-ts-no-compat-10/app/router.ts +11 -0
  33. package/tests/fixtures/tests-ts-no-compat-10/app/routes/fancy.ts +8 -0
  34. package/tests/fixtures/tests-ts-no-compat-10/app/styles/app.css +3 -0
  35. package/tests/fixtures/tests-ts-no-compat-10/app/templates/application.gts +7 -0
  36. package/tests/fixtures/tests-ts-no-compat-10/app/templates/fancy.gts +9 -0
  37. package/tests/fixtures/tests-ts-no-compat-10/tests/acceptance/index-test.ts +26 -0
  38. package/tests/fixtures/tests-ts-no-compat-10/tests/integration/components/sweet-test.gjs +28 -0
  39. package/tests/fixtures/tests-ts-no-compat-10/tests/routes/fancy-test.js +11 -0
  40. package/tests/minimal.test.mjs +120 -0
  41. package/tests/no-compat.test.mjs +181 -0
@@ -1,22 +1,18 @@
1
1
  {
2
2
  "solution": {
3
3
  "@ember/app-blueprint": {
4
- "impact": "patch",
5
- "oldVersion": "6.10.0-alpha.6",
6
- "newVersion": "6.10.0-alpha.7",
4
+ "impact": "minor",
5
+ "oldVersion": "6.10.0-alpha.8",
6
+ "newVersion": "6.10.0-alpha.9",
7
7
  "tagName": "alpha",
8
8
  "constraints": [
9
9
  {
10
- "impact": "patch",
11
- "reason": "Appears in changelog section :bug: Bug Fix"
12
- },
13
- {
14
- "impact": "patch",
15
- "reason": "Appears in changelog section :house: Internal"
10
+ "impact": "minor",
11
+ "reason": "Appears in changelog section :rocket: Enhancement"
16
12
  }
17
13
  ],
18
14
  "pkgJSONPath": "./package.json"
19
15
  }
20
16
  },
21
- "description": "## Release (2025-12-09)\n\n* @ember/app-blueprint 6.10.0-alpha.7 (patch)\n\n#### :bug: Bug Fix\n* `@ember/app-blueprint`\n * [#153](https://github.com/ember-cli/ember-app-blueprint/pull/153) Pass extension to WelcomePage component ([@evoactivity](https://github.com/evoactivity))\n\n#### :house: Internal\n* `@ember/app-blueprint`\n * [#159](https://github.com/ember-cli/ember-app-blueprint/pull/159) don't run CI when you only change markdown files ([@mansona](https://github.com/mansona))\n\n#### Committers: 2\n- Chris Manson ([@mansona](https://github.com/mansona))\n- Liam Potter ([@evoactivity](https://github.com/evoactivity))\n"
17
+ "description": "## Release (2025-12-24)\n\n* @ember/app-blueprint 6.10.0-alpha.9 (minor)\n\n#### :rocket: Enhancement\n* `@ember/app-blueprint`\n * [#160](https://github.com/ember-cli/ember-app-blueprint/pull/160) Remove tracked-built-ins (it's built in (ish)) ([@NullVoxPopuli](https://github.com/NullVoxPopuli))\n * [#163](https://github.com/ember-cli/ember-app-blueprint/pull/163) Update package.json via `update-blueprint-deps` ([@NullVoxPopuli](https://github.com/NullVoxPopuli))\n\n#### Committers: 1\n- [@NullVoxPopuli](https://github.com/NullVoxPopuli)\n"
22
18
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Changelog
2
2
 
3
+ ## Release (2025-12-24)
4
+
5
+ * @ember/app-blueprint 6.10.0-alpha.9 (minor)
6
+
7
+ #### :rocket: Enhancement
8
+ * `@ember/app-blueprint`
9
+ * [#160](https://github.com/ember-cli/ember-app-blueprint/pull/160) Remove tracked-built-ins (it's built in (ish)) ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
10
+ * [#163](https://github.com/ember-cli/ember-app-blueprint/pull/163) Update package.json via `update-blueprint-deps` ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
11
+
12
+ #### Committers: 1
13
+ - [@NullVoxPopuli](https://github.com/NullVoxPopuli)
14
+
15
+ ## Release (2025-12-24)
16
+
17
+ * @ember/app-blueprint 6.10.0-alpha.8 (minor)
18
+
19
+ #### :rocket: Enhancement
20
+ * `@ember/app-blueprint`
21
+ * [#49](https://github.com/ember-cli/ember-app-blueprint/pull/49) Add `--minimal` and `--no-compat` ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
22
+
23
+ #### Committers: 1
24
+ - [@NullVoxPopuli](https://github.com/NullVoxPopuli)
25
+
3
26
  ## Release (2025-12-09)
4
27
 
5
28
  * @ember/app-blueprint 6.10.0-alpha.7 (patch)
package/README.md CHANGED
@@ -9,3 +9,46 @@ If you have an existing app that you would like to upgrade to use Vite consider
9
9
  ```
10
10
  pnpm dlx ember-cli@latest new my-app-name -b @ember/app-blueprint --pnpm
11
11
  ```
12
+
13
+ ## Options
14
+
15
+ ### `--no-compat`
16
+
17
+ ```
18
+ pnpm dlx ember-cli@latest new my-app-name \
19
+ --blueprint @ember/app-blueprint@alpha \
20
+ --pnpm \
21
+ --no-compat
22
+ ```
23
+
24
+ Does the following:
25
+ - enables `type=module` in package.json (required for vite-ssr, and many ESM tools)
26
+ - makes the build and boot _MUCH FASTER_
27
+ (in large apps, this can have your app's boot be up to 1 minute faster)
28
+ - removes `@embroider/compat`
29
+ - removes support for:
30
+ - hbs (both for component files, and testing)
31
+ - content-for (in the HTML files)
32
+ - v1 addons
33
+ - node-land config/environment.js
34
+ - removes `ember-cli`
35
+ - ember-cli brings in a ton of old dependencies, so removing it makes installs much faster
36
+ - downside though is that you no longer have scaffolding (`ember g`) -- however, you could use `pnpm dlx ember-cli g ...` (or `npx ember-cli g`)
37
+
38
+ ### `--minimal`
39
+
40
+ ```
41
+ pnpm dlx ember-cli@latest new my-app-name \
42
+ --blueprint @ember/app-blueprint@alpha \
43
+ --pnpm \
44
+ --minimal
45
+ ```
46
+
47
+ Does the following
48
+ - everything listed under `--no-compat`
49
+ - Removes all linting, formatting, and testing support
50
+ - leaves you with a minimal app that you can use for demos, and PRing to other repositories that have multi-framework support (and probably use other testing tools for that multi-framework support)
51
+ - different defaults:
52
+ - warp-drive becomes _opt-in_ (pass `--warp-drive` if you want it -- normally requires `--no-warp-drive` to remove)
53
+ - ember-welcome-page becomes _opt-in_ (normally requires `--no-welcome` to remove)
54
+
@@ -0,0 +1,10 @@
1
+ <% if (warpDrive) { %>import '@warp-drive/ember/install';
2
+ <% } %>import Application from 'ember-strict-application-resolver';
3
+
4
+ export default class App extends Application {
5
+ modules = {
6
+ ...import.meta.glob('./router.*', { eager: true }),
7
+ ...import.meta.glob('./templates/**/*', { eager: true }),
8
+ ...import.meta.glob('./services/**/*', { eager: true }),
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+
2
+ <template>
3
+ <h1>Welcome to Ember</h1>
4
+
5
+ {{outlet}}
6
+
7
+ </template>
@@ -0,0 +1,47 @@
1
+ import { dirname } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+ <% if (warpDrive) { %>import { setConfig } from '@warp-drive/core/build-config';
4
+ <% } %>import { buildMacros } from '@embroider/macros/babel';
5
+
6
+ <% if (warpDrive) { %>const macros = buildMacros({
7
+ configure: (config) => {
8
+ setConfig(config, {
9
+ // for universal apps this MUST be at least 5.6
10
+ compatWith: '5.6',
11
+ });
12
+ },
13
+ });
14
+ <% } else { %>const macros = buildMacros();
15
+ <% } %>
16
+ export default {
17
+ plugins: [
18
+ [
19
+ 'babel-plugin-ember-template-compilation',
20
+ {
21
+ compilerPath: 'ember-source/dist/ember-template-compiler.js',
22
+ transforms: [...macros.templateMacros],
23
+ },
24
+ ],
25
+ [
26
+ 'module:decorator-transforms',
27
+ {
28
+ runtime: {
29
+ import: import.meta.resolve('decorator-transforms/runtime-esm'),
30
+ },
31
+ },
32
+ ],
33
+ [
34
+ '@babel/plugin-transform-runtime',
35
+ {
36
+ absoluteRuntime: dirname(fileURLToPath(import.meta.url)),
37
+ useESModules: true,
38
+ regenerator: false,
39
+ },
40
+ ],
41
+ ...macros.babelMacros,
42
+ ],
43
+
44
+ generatorOpts: {
45
+ compact: false,
46
+ },
47
+ };
@@ -0,0 +1,55 @@
1
+ import { dirname } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+ <% if (warpDrive) { %>import { setConfig } from '@warp-drive/core/build-config';
4
+ <% } %>import { buildMacros } from '@embroider/macros/babel';
5
+
6
+ <% if (warpDrive) { %>const macros = buildMacros({
7
+ configure: (config) => {
8
+ setConfig(config, {
9
+ // for universal apps this MUST be at least 5.6
10
+ compatWith: '5.6',
11
+ });
12
+ },
13
+ });
14
+ <% } else { %>const macros = buildMacros();
15
+ <% } %>
16
+ export default {
17
+ plugins: [
18
+ [
19
+ '@babel/plugin-transform-typescript',
20
+ {
21
+ allExtensions: true,
22
+ onlyRemoveTypeImports: true,
23
+ allowDeclareFields: true,
24
+ },
25
+ ],
26
+ [
27
+ 'babel-plugin-ember-template-compilation',
28
+ {
29
+ compilerPath: 'ember-source/dist/ember-template-compiler.js',
30
+ transforms: [...macros.templateMacros],
31
+ },
32
+ ],
33
+ [
34
+ 'module:decorator-transforms',
35
+ {
36
+ runtime: {
37
+ import: import.meta.resolve('decorator-transforms/runtime-esm'),
38
+ },
39
+ },
40
+ ],
41
+ [
42
+ '@babel/plugin-transform-runtime',
43
+ {
44
+ absoluteRuntime: dirname(fileURLToPath(import.meta.url)),
45
+ useESModules: true,
46
+ regenerator: false,
47
+ },
48
+ ],
49
+ ...macros.babelMacros,
50
+ ],
51
+
52
+ generatorOpts: {
53
+ compact: false,
54
+ },
55
+ };
@@ -0,0 +1,18 @@
1
+ <% if (warpDrive) { %>import '@warp-drive/ember/install';<% } %>
2
+ import Application from '@ember/application';
3
+ import compatModules from '@embroider/virtual/compat-modules';
4
+ import Resolver from 'ember-resolver';
5
+ import config from '<%= modulePrefix %>/config/environment';
6
+ import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';
7
+ import setupInspector from '@embroider/legacy-inspector-support/ember-source-4.12';
8
+
9
+ if (macroCondition(isDevelopingApp())) {
10
+ importSync('./deprecation-workflow');
11
+ }
12
+
13
+ export default class App extends Application {
14
+ modulePrefix = config.modulePrefix;
15
+ podModulePrefix = config.podModulePrefix;
16
+ Resolver = Resolver.withModules(compatModules);
17
+ inspector = setupInspector(this);
18
+ }
@@ -0,0 +1,38 @@
1
+ <% if (notMinimal) { %><% if (typescript) { %>// eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
+ // @ts-expect-error
3
+ <% } %>import { getGlobalConfig } from '@embroider/macros/src/addon/runtime';
4
+ <% } %>
5
+ interface Config {
6
+ isTesting?: boolean;
7
+ environment: string;
8
+ modulePrefix: string;
9
+ podModulePrefix?: string;
10
+ locationType: 'history' | 'hash' | 'none' | 'auto';
11
+ rootURL: string;
12
+ EmberENV?: Record<string, unknown>;
13
+ APP: Record<string, unknown> & { rootElement?: string; autoboot?: boolean };
14
+ }
15
+
16
+ const ENV: Config = {
17
+ modulePrefix: '<%= name %>',
18
+ environment: import.meta.env.DEV ? 'development' : 'production',
19
+ rootURL: '/',
20
+ locationType: 'history',
21
+ EmberENV: {},
22
+ APP: {},
23
+ };
24
+
25
+ export default ENV;
26
+ <% if (notMinimal) { %>
27
+ export function enterTestMode() {
28
+ ENV.locationType = 'none';
29
+ ENV.APP.rootElement = '#ember-testing';
30
+ ENV.APP.autoboot = false;
31
+
32
+ <% if (typescript) { %>// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call
33
+ <% } %>const config = getGlobalConfig()['@embroider/macros'];
34
+
35
+ <% if (typescript) { %>// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
36
+ <% } %>if (config) config.isTesting = true;
37
+ }
38
+ <% } %>
package/eslint.config.mjs CHANGED
@@ -26,10 +26,15 @@ export default [
26
26
  eslintConfigPrettier,
27
27
  {
28
28
  ignores: [
29
+ 'my-app/**',
29
30
  'tests/fixtures/*',
31
+ 'files/vite.config.*',
30
32
  'files/ember-cli-build.js',
33
+ 'files/testem.cjs',
31
34
  'conditional-files/_js_*',
32
35
  'conditional-files/_ts_*',
36
+ 'conditional-files/no-compat/_js_*',
37
+ 'conditional-files/no-compat/_ts_*',
33
38
  ],
34
39
  },
35
40
  ];
@@ -1,5 +1,5 @@
1
- import { pageTitle } from 'ember-page-title';
2
- <% if (welcome) {%>import { WelcomePage } from 'ember-welcome-page';<% } %>
1
+ import { pageTitle } from 'ember-page-title';<% if (welcome) {%>
2
+ import { WelcomePage } from 'ember-welcome-page';<% } %>
3
3
 
4
4
  <template>
5
5
  {{pageTitle "<%= namespace %>"}}<% if (welcome) { %>
package/files/index.html CHANGED
@@ -5,25 +5,28 @@
5
5
  <title><%= namespace %></title>
6
6
  <meta name="description" content="">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <% if (compat) { %>
8
9
 
9
10
  {{content-for "head"}}
10
-
11
11
  <link integrity="" rel="stylesheet" href="/@embroider/virtual/vendor.css">
12
12
  <link integrity="" rel="stylesheet" href="/@embroider/virtual/app.css">
13
13
 
14
14
  {{content-for "head-footer"}}
15
- </head>
15
+ <% } else { %>
16
+ <link rel="stylesheet" href="/app/styles/app.css">
17
+ <% } %></head>
16
18
  <body>
17
- {{content-for "body"}}
19
+ <% if (compat) { %>{{content-for "body"}}
18
20
 
19
21
  <script src="/@embroider/virtual/vendor.js"></script>
20
- <script type="module">
22
+ <% } %> <script type="module">
21
23
  import Application from './app/app';
22
24
  import environment from './app/config/environment';
23
25
 
24
26
  Application.create(environment.APP);
25
27
  </script>
28
+ <% if (compat) { %>{{content-for "body"}}
26
29
 
27
30
  {{content-for "body-footer"}}
28
- </body>
31
+ <% } %> </body>
29
32
  </html>
@@ -31,29 +31,29 @@
31
31
  "./*": "./app/*"
32
32
  },
33
33
  "devDependencies": {
34
- "@babel/core": "^7.28.4",
34
+ "@babel/core": "^7.28.5",
35
35
  "@babel/runtime": "^7.28.4",
36
- "@babel/plugin-transform-runtime": "^7.28.3<% if (typescript) { %>",
37
- "@babel/plugin-transform-typescript": "^7.28.0<% } %>",
38
- "@babel/eslint-parser": "^7.28.4<% if (typescript) { %>",
36
+ "@babel/plugin-transform-runtime": "^7.28.5<% if (typescript) { %>",
37
+ "@babel/plugin-transform-typescript": "^7.28.5<% } %>",
38
+ "@babel/eslint-parser": "^7.28.5<% if (typescript) { %>",
39
39
  "@ember/app-tsconfig": "^1.0.3<% } %>",
40
- "@ember/optional-features": "^2.2.0",
40
+ "@ember/optional-features": "^2.3.0",
41
41
  "@ember/string": "^4.0.1",
42
- "@ember/test-helpers": "^5.3.0",
42
+ "@ember/test-helpers": "^5.4.1",
43
43
  "@ember/test-waiters": "^4.1.1",
44
- "@embroider/macros": "^1.19.1",
45
- "@embroider/core": "^4.2.4",
46
- "@embroider/vite": "^1.3.2",
47
- "@embroider/compat": "^4.1.7",
48
- "@embroider/router": "^3.0.4",
44
+ "@embroider/macros": "^1.19.6",
45
+ "@embroider/core": "^4.4.2",
46
+ "@embroider/vite": "^1.5.0",
47
+ "@embroider/compat": "^4.1.12",
48
+ "@embroider/router": "^3.0.6",
49
49
  "@embroider/config-meta-loader": "^1.0.0",
50
50
  "@embroider/legacy-inspector-support": "^0.1.3",
51
- "@eslint/js": "^9.37.0",
51
+ "@eslint/js": "^9.39.2",
52
52
  "@glimmer/component": "^2.0.0<% if (typescript) { %>",
53
- "@glint/ember-tsc": "^1.0.4",
54
- "@glint/template": "^1.6.2",
55
- "@glint/tsserver-plugin": "^2.0.4<% } %>",
56
- "@rollup/plugin-babel": "^6.0.4<% if (typescript) { %>",
53
+ "@glint/ember-tsc": "^1.0.8",
54
+ "@glint/template": "^1.7.3",
55
+ "@glint/tsserver-plugin": "^2.0.8<% } %>",
56
+ "@rollup/plugin-babel": "^6.1.0<% if (typescript) { %>",
57
57
  "@types/qunit": "^2.19.13",
58
58
  "@types/rsvp": "^4.0.9<% } %><% if (warpDrive) { %>",
59
59
  "@warp-drive/core": "5.8.0",
@@ -64,35 +64,34 @@
64
64
  "babel-plugin-ember-template-compilation": "^3.0.1",
65
65
  "concurrently": "^9.2.1",
66
66
  "decorator-transforms": "^2.3.0",
67
- "ember-cli": "~6.9.0-alpha.1",
67
+ "ember-cli": "~6.9.1",
68
68
  "ember-cli-babel": "^8.2.0",
69
- "ember-cli-deprecation-workflow": "^3.4.0",
69
+ "ember-cli-deprecation-workflow": "^4.0.0",
70
70
  "ember-load-initializers": "^3.0.1",
71
71
  "ember-modifier": "^4.2.2",
72
72
  "ember-page-title": "^9.0.3",
73
73
  "ember-qunit": "^9.0.4",
74
74
  "ember-resolver": "^13.1.1",
75
- "ember-source": "~6.10.0-alpha.1",
75
+ "ember-source": "~6.10.0-beta.1",
76
76
  "ember-template-lint": "^7.9.3<% if (welcome) { %>",
77
77
  "ember-welcome-page": "^8.0.4<% } %>",
78
- "eslint": "^9.37.0",
78
+ "eslint": "^9.39.2",
79
79
  "eslint-config-prettier": "^10.1.8",
80
- "eslint-plugin-ember": "^12.7.4",
80
+ "eslint-plugin-ember": "^12.7.5",
81
81
  "eslint-plugin-n": "^17.23.1",
82
82
  "eslint-plugin-qunit": "^8.2.5<% if (warpDrive) { %>",
83
83
  "eslint-plugin-warp-drive": "5.8.0<% } %>",
84
- "globals": "^16.4.0",
85
- "prettier": "^3.6.2",
86
- "prettier-plugin-ember-template-tag": "^2.1.0",
87
- "qunit": "^2.24.2",
84
+ "globals": "^16.5.0",
85
+ "prettier": "^3.7.4",
86
+ "prettier-plugin-ember-template-tag": "^2.1.2",
87
+ "qunit": "^2.24.3",
88
88
  "qunit-dom": "^3.5.0",
89
- "stylelint": "^16.25.0",
89
+ "stylelint": "^16.26.1",
90
90
  "stylelint-config-standard": "^38.0.0",
91
- "testem": "^3.16.0",
92
- "tracked-built-ins": "^4.0.0<% if (typescript) { %>",
91
+ "testem": "^3.17.0<% if (typescript) { %>",
93
92
  "typescript": "^5.9.3",
94
- "typescript-eslint": "^8.46.0<% } %>",
95
- "vite": "^7.1.9"
93
+ "typescript-eslint": "^8.50.1<% } %>",
94
+ "vite": "^7.3.0"
96
95
  },
97
96
  "engines": {
98
97
  "node": ">= 20"
package/files/testem.cjs CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  if (typeof module !== 'undefined') {
4
4
  module.exports = {
5
- test_page: 'tests/index.html?hidepassed',
5
+ test_page: 'tests/index.html?hidepassed',<% if (noCompat) {%>
6
+ cwd: 'dist',<% } %>
6
7
  disable_watching: true,
7
8
  launch_in_ci: ['Chrome'],
8
9
  launch_in_dev: ['Chrome'],
@@ -5,7 +5,7 @@
5
5
  <title><%= namespace %> Tests</title>
6
6
  <meta name="description" content="">
7
7
  <meta name="viewport" content="width=device-width, initial-scale=1">
8
-
8
+ <% if (compat) { %>
9
9
  {{content-for "head"}}
10
10
  {{content-for "test-head"}}
11
11
 
@@ -15,12 +15,15 @@
15
15
 
16
16
  {{content-for "head-footer"}}
17
17
  {{content-for "test-head-footer"}}
18
- </head>
18
+ <% } else { %>
19
+ <link rel="stylesheet" href="/app/styles/app.css">
20
+ <% } %> </head>
19
21
  <body>
22
+ <% if (compat) { %>
20
23
  {{content-for "body"}}
21
24
  {{content-for "test-body"}}
22
25
 
23
- <div id="qunit"></div>
26
+ <% } %> <div id="qunit"></div>
24
27
  <div id="qunit-fixture">
25
28
  <div id="ember-testing-container">
26
29
  <div id="ember-testing"></div>
@@ -28,8 +31,10 @@
28
31
  </div>
29
32
 
30
33
  <script src="/testem.js" integrity="" data-embroider-ignore></script>
34
+ <% if (compat) { %>
31
35
  <script src="/@embroider/virtual/vendor.js"></script>
32
36
  <script src="/@embroider/virtual/test-support.js"></script>
37
+ <% } %>
33
38
  <script type="module">import "ember-testing";</script>
34
39
 
35
40
  <script type="module">
@@ -38,6 +43,8 @@
38
43
  start();
39
44
  </script>
40
45
 
46
+ <% if (compat) { %>
41
47
  {{content-for "body-footer"}}
48
+ <% } %>
42
49
  </body>
43
50
  </html>
@@ -1,13 +1,14 @@
1
1
  <% if (warpDrive) { %>import '@warp-drive/ember/install';<% } %>
2
2
  import Application from '<%= modulePrefix %>/app';
3
- import config from '<%= modulePrefix %>/config/environment';
3
+ import config<% if (noCompat) {%>, { enterTestMode }<% } %> from '<%= modulePrefix %>/config/environment';
4
4
  import * as QUnit from 'qunit';
5
5
  import { setApplication } from '@ember/test-helpers';
6
6
  import { setup } from 'qunit-dom';
7
7
  import { start as qunitStart, setupEmberOnerrorValidation } from 'ember-qunit';
8
8
 
9
9
  export function start() {
10
- setApplication(Application.create(config.APP));
10
+ <% if (noCompat) { %>enterTestMode();
11
+ <% } %>setApplication(Application.create(config.APP));
11
12
 
12
13
  setup(QUnit.assert);
13
14
  setupEmberOnerrorValidation();
@@ -1,10 +1,10 @@
1
1
  import { defineConfig } from 'vite';
2
- import { extensions, classicEmberSupport, ember } from '@embroider/vite';
2
+ import { extensions<% if (!noCompat) { %>, classicEmberSupport<% } %>, ember } from '@embroider/vite';
3
3
  import { babel } from '@rollup/plugin-babel';
4
4
 
5
5
  export default defineConfig({
6
- plugins: [
7
- classicEmberSupport(),
6
+ plugins: [<% if (!noCompat) { %>
7
+ classicEmberSupport(),<% } %>
8
8
  ember(),
9
9
  // extra plugins here
10
10
  babel({