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) {