From ae0df853be11e07d2b180337773b50d1d2147f6f Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 13:32:03 -0400
Subject: [PATCH 01/12] Set type module
---
index.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/index.js b/index.js
index 2b8472f..bc3b271 100644
--- a/index.js
+++ b/index.js
@@ -133,6 +133,7 @@ module.exports = {
version: 2,
};
+ json.type = 'module';
json.exports = {
'./tests/*': './tests/*',
'./*': './app/*',
From 227d9406e691a86c305655cfd9b21ee79b827abf Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 14:36:07 -0400
Subject: [PATCH 02/12] Fix project generation
---
eslint.config.mjs | 1 +
.../js/{ember-cli-build.js => ember-cli-build.cjs} | 0
files-override/js/eslint.config.mjs | 13 ++-----------
files-override/js/{testem.js => testem.cjs} | 0
files-override/shared/.stylelintrc.cjs | 5 +++++
files-override/shared/.template-lintrc.js | 3 +++
index.js | 10 ++++++++++
7 files changed, 21 insertions(+), 11 deletions(-)
rename files-override/js/{ember-cli-build.js => ember-cli-build.cjs} (100%)
rename files-override/js/{testem.js => testem.cjs} (100%)
create mode 100644 files-override/shared/.stylelintrc.cjs
create mode 100644 files-override/shared/.template-lintrc.js
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 4cb8891..de28ba7 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -10,6 +10,7 @@ export default [
{
files: [
'files/*/app/**/*.js',
+ 'files-override/*/*.js',
'files-override/*/app/**/*.js',
'files-override/*/tests/**/*.js',
],
diff --git a/files-override/js/ember-cli-build.js b/files-override/js/ember-cli-build.cjs
similarity index 100%
rename from files-override/js/ember-cli-build.js
rename to files-override/js/ember-cli-build.cjs
diff --git a/files-override/js/eslint.config.mjs b/files-override/js/eslint.config.mjs
index 0d67eb3..8c0305f 100644
--- a/files-override/js/eslint.config.mjs
+++ b/files-override/js/eslint.config.mjs
@@ -70,16 +70,7 @@ export default [
* CJS node files
*/
{
- files: [
- '**/*.cjs',
- 'config/**/*.js',
- 'testem.js',
- 'testem*.js',
- '.prettierrc.js',
- '.stylelintrc.js',
- '.template-lintrc.js',
- 'ember-cli-build.js',
- ],
+ files: ['**/*.cjs', 'config/**/*.js', 'testem.js', 'testem*.js'],
plugins: {
n,
},
@@ -96,7 +87,7 @@ export default [
* ESM node files
*/
{
- files: ['*.mjs'],
+ files: ['*.mjs', '*.js'],
plugins: {
n,
},
diff --git a/files-override/js/testem.js b/files-override/js/testem.cjs
similarity index 100%
rename from files-override/js/testem.js
rename to files-override/js/testem.cjs
diff --git a/files-override/shared/.stylelintrc.cjs b/files-override/shared/.stylelintrc.cjs
new file mode 100644
index 0000000..021c539
--- /dev/null
+++ b/files-override/shared/.stylelintrc.cjs
@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = {
+ extends: ['stylelint-config-standard', 'stylelint-prettier/recommended'],
+};
diff --git a/files-override/shared/.template-lintrc.js b/files-override/shared/.template-lintrc.js
new file mode 100644
index 0000000..e30ad20
--- /dev/null
+++ b/files-override/shared/.template-lintrc.js
@@ -0,0 +1,3 @@
+export default {
+ extends: 'recommended',
+}
diff --git a/index.js b/index.js
index bc3b271..d8c00a5 100644
--- a/index.js
+++ b/index.js
@@ -104,6 +104,10 @@ module.exports = {
'.eslintignore',
// replaced with .prettierrc.cjs
'.prettierrc.js',
+ // CJS (needs renamed)
+ 'testem.js',
+ 'ember-cli-build.js',
+ '.stylelintrc.js',
];
for (let file of filesToDelete) {
@@ -118,6 +122,12 @@ module.exports = {
options,
);
+ copyWithTemplate(
+ join(__dirname, 'files-override/shared'),
+ options.target,
+ options,
+ );
+
let packageJson = join(options.target, 'package.json');
let json = JSON.parse(fs.readFileSync(packageJson));
From 705c3278d7594fc4fa21c5f386ac0a0951d88c66 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 15:09:26 -0400
Subject: [PATCH 03/12] Error: modulePrefix must be defined
---
files-override/shared/.stylelintrc.cjs | 5 -----
index.js | 17 +++++++++++++++--
2 files changed, 15 insertions(+), 7 deletions(-)
delete mode 100644 files-override/shared/.stylelintrc.cjs
diff --git a/files-override/shared/.stylelintrc.cjs b/files-override/shared/.stylelintrc.cjs
deleted file mode 100644
index 021c539..0000000
--- a/files-override/shared/.stylelintrc.cjs
+++ /dev/null
@@ -1,5 +0,0 @@
-'use strict';
-
-module.exports = {
- extends: ['stylelint-config-standard', 'stylelint-prettier/recommended'],
-};
diff --git a/index.js b/index.js
index d8c00a5..7eef3c1 100644
--- a/index.js
+++ b/index.js
@@ -3,7 +3,7 @@ const fs = require('fs');
const { join } = require('path');
const emberCliUpdate = require('./lib/ember-cli-update');
const copyWithTemplate = require('./lib/copy-with-template');
-const { rm, readFile } = require('fs/promises');
+const { cp, rm, readFile } = require('fs/promises');
const appBlueprint = Blueprint.lookup('app');
@@ -107,13 +107,26 @@ module.exports = {
// CJS (needs renamed)
'testem.js',
'ember-cli-build.js',
- '.stylelintrc.js',
];
for (let file of filesToDelete) {
await rm(join(options.target, file));
}
+ const filesToSetAsCJS = [
+ 'config/environment.js',
+ 'config/targets.js',
+ '.stylelintrc.js',
+ ];
+
+ for (let file of filesToSetAsCJS) {
+ await cp(
+ join(options.target, file),
+ join(options.target, file.replace(/\.js$/, '.cjs')),
+ );
+ await rm(join(options.target, file));
+ }
+
// there doesn't seem to be a way to tell ember-cli to not prompt to override files that were added in the beforeInstall
// so I'm just copying a few over at this stage
copyWithTemplate(
From b056098f64f931d5199b7ba98d8deb3b4285707d Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 15:16:00 -0400
Subject: [PATCH 04/12] Inline the environment.js for now
---
files/js/app/config/environment.js | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/files/js/app/config/environment.js b/files/js/app/config/environment.js
index fad999a..1b0bd47 100644
--- a/files/js/app/config/environment.js
+++ b/files/js/app/config/environment.js
@@ -1,3 +1,22 @@
-import loadConfigFromMeta from '@embroider/config-meta-loader';
+// import loadConfigFromMeta from '@embroider/config-meta-loader';
+//
+// export default loadConfigFromMeta('<%= name %>');
-export default loadConfigFromMeta('<%= name %>');
+export default {
+ modulePrefix: '<%= name %>',
+ environment: 'development',
+ rootURL: '/',
+ locationType: 'history',
+ EmberENV: {
+ EXTEND_PROTOTYPES: false,
+ FEATURES: {
+ // Here you can enable experimental features on an ember canary build
+ // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true
+ },
+ },
+
+ APP: {
+ // Here you can pass flags/options to your application instance
+ // when it is created
+ },
+};
From 88c8d23de39a32443570555a97d70d71a512f189 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 15:17:03 -0400
Subject: [PATCH 05/12] lints
---
files-override/shared/.template-lintrc.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/files-override/shared/.template-lintrc.js b/files-override/shared/.template-lintrc.js
index e30ad20..589ce8f 100644
--- a/files-override/shared/.template-lintrc.js
+++ b/files-override/shared/.template-lintrc.js
@@ -1,3 +1,3 @@
export default {
extends: 'recommended',
-}
+};
From 7c4eac672b35838814cf6a1ea58fe1a2393eeb24 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 15:21:12 -0400
Subject: [PATCH 06/12] Change testem-dev.js to testem-dev.cjs
---
tests/default.test.mjs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/default.test.mjs b/tests/default.test.mjs
index d79d758..94e73b3 100644
--- a/tests/default.test.mjs
+++ b/tests/default.test.mjs
@@ -125,7 +125,7 @@ describe('basic functionality', function () {
});
writeFileSync(
- join(tmpDir.path, appName, 'testem-dev.js'),
+ join(tmpDir.path, appName, 'testem-dev.cjs'),
`module.exports = {
test_page: 'tests/index.html?hidepassed',
disable_watching: true,
From e16a4b9fa996b8cb0e7d34bd14163f5415fec517 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 15:32:34 -0400
Subject: [PATCH 07/12] Rename testem-proxy
---
tests/default.test.mjs | 4 ++--
tests/fixture/{testem-proxy.js => testem-proxy.cjs} | 0
2 files changed, 2 insertions(+), 2 deletions(-)
rename tests/fixture/{testem-proxy.js => testem-proxy.cjs} (100%)
diff --git a/tests/default.test.mjs b/tests/default.test.mjs
index 94e73b3..94b36fe 100644
--- a/tests/default.test.mjs
+++ b/tests/default.test.mjs
@@ -147,7 +147,7 @@ describe('basic functionality', function () {
},
},
middleware: [
- require(__dirname + '/testem-proxy.js')('${appURL}')
+ require(__dirname + '/testem-proxy.cjs')('${appURL}')
],
};
`,
@@ -155,7 +155,7 @@ describe('basic functionality', function () {
let testResult = await execa(
'pnpm',
- ['testem', '--file', 'testem-dev.js', 'ci'],
+ ['testem', '--file', 'testem-dev.cjs', 'ci'],
{
cwd: join(tmpDir.path, appName),
},
diff --git a/tests/fixture/testem-proxy.js b/tests/fixture/testem-proxy.cjs
similarity index 100%
rename from tests/fixture/testem-proxy.js
rename to tests/fixture/testem-proxy.cjs
From af1ed6d11a86d75db623a1fbdae90a4bc8437a79 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 16:26:51 -0400
Subject: [PATCH 08/12] Try _harder_
---
files/js/app/config/environment.js | 26 +++++++++++++++++++++++---
index.js | 2 ++
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/files/js/app/config/environment.js b/files/js/app/config/environment.js
index 1b0bd47..2667965 100644
--- a/files/js/app/config/environment.js
+++ b/files/js/app/config/environment.js
@@ -2,9 +2,17 @@
//
// export default loadConfigFromMeta('<%= name %>');
+import { isTesting, isDevelopingApp } from '@embroider/macros';
+
+const isTest = () => isTesting() || location.href.includes('/test');
+
export default {
modulePrefix: '<%= name %>',
- environment: 'development',
+ environment: isTest()
+ ? 'test'
+ : isDevelopingApp()
+ ? 'development'
+ : 'production', // maybe,
rootURL: '/',
locationType: 'history',
EmberENV: {
@@ -15,8 +23,20 @@ export default {
},
},
+ ...(isTest()
+ ? {
+ locationType: 'none',
+ }
+ : {}),
+
APP: {
- // Here you can pass flags/options to your application instance
- // when it is created
+ ...(isTest()
+ ? {
+ LOG_ACTIVE_GENERATION: false,
+ LOG_VIEW_LOOKUPS: false,
+ rootElement: '#ember-testing',
+ autoboot: false,
+ }
+ : {}),
},
};
diff --git a/index.js b/index.js
index 7eef3c1..d1ae6cd 100644
--- a/index.js
+++ b/index.js
@@ -53,6 +53,8 @@ module.exports = {
'save-dev': true,
verbose: false,
packages: [
+ // Too many warnings
+ 'ember-data',
// Not needed anymore
'ember-fetch',
'broccoli-asset-rev',
From a42f4d80535037774af1f5666f6990f043011870 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 16:34:42 -0400
Subject: [PATCH 09/12] Update testem reference in tests/index.html
---
files-override/js/tests/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/files-override/js/tests/index.html b/files-override/js/tests/index.html
index f28b7c5..69e728d 100644
--- a/files-override/js/tests/index.html
+++ b/files-override/js/tests/index.html
@@ -24,7 +24,7 @@
-
+
From ba64ec7ab4db4d2b26c2775772a4b4a394a173ff Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 16:39:52 -0400
Subject: [PATCH 10/12] Make the tests test tolerable
---
tests/default.test.mjs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/default.test.mjs b/tests/default.test.mjs
index 94b36fe..41110ef 100644
--- a/tests/default.test.mjs
+++ b/tests/default.test.mjs
@@ -85,7 +85,7 @@ describe('basic functionality', function () {
});
} catch (err) {
console.log(err.stdout, err.stderr);
- throw err;
+ throw 'Failed to successfully run test:ember';
}
// make sure that each of the tests that we expect actually show up
From 2bbfa42af0708b1df51a8021c888e6e21f8f6e15 Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 16:49:26 -0400
Subject: [PATCH 11/12] hmm
---
index.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/index.js b/index.js
index d1ae6cd..99282ba 100644
--- a/index.js
+++ b/index.js
@@ -150,7 +150,8 @@ module.exports = {
...json.scripts,
build: 'vite build',
start: 'vite',
- 'test:ember': 'vite build --mode test && ember test --path dist',
+ 'test:ember':
+ 'vite build --mode test && ember test --path dist --config-file ./testem.cjs',
};
json['ember-addon'] = {
From 4468df339021acc8ee504f1bd243dc77c58cf63f Mon Sep 17 00:00:00 2001
From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Date: Sat, 28 Sep 2024 16:56:38 -0400
Subject: [PATCH 12/12] Allow tests and dev-tests to run at the same time
---
tests/default.test.mjs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/default.test.mjs b/tests/default.test.mjs
index 41110ef..068e853 100644
--- a/tests/default.test.mjs
+++ b/tests/default.test.mjs
@@ -80,7 +80,7 @@ describe('basic functionality', function () {
let result;
try {
- result = await execa('pnpm', ['test:ember'], {
+ result = await execa('pnpm', ['test:ember', '--test-port', '0'], {
cwd: join(tmpDir.path, appName),
});
} catch (err) {