Skip to content

Commit 080dcda

Browse files
committed
fix legacy mocha tests
1 parent 961e776 commit 080dcda

9 files changed

+62
-35
lines changed

package.json

+9-4
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,15 @@
55
"type": "git",
66
"url": "git@github.com:ember-fastboot/ember-cli-fastboot.git"
77
},
8-
"workspaces": [
9-
"packages/*",
10-
"test-packages/*"
11-
],
8+
"workspaces": {
9+
"packages": [
10+
"packages/*",
11+
"test-packages/*"
12+
],
13+
"nohoist": [
14+
"**/ember-cli-addon-tests"
15+
]
16+
},
1217
"scripts": {
1318
"test": "npm-run-all test:*",
1419
"test:ember-cli-fastboot": "yarn workspace ember-cli-fastboot test:ember",

packages/ember-cli-fastboot/fix-node-modules.mjs

+10
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
1212

1313
const packagesDir = path.resolve(__dirname, '../../packages');
1414
const nodeModulesDir = path.resolve(__dirname, 'node_modules');
15+
const precookedDir = path.resolve(__dirname, 'tmp', 'precooked_node_modules');
1516

1617
// eslint-disable-next-line no-undef
1718
const shouldRestore = process.argv[2];
@@ -29,18 +30,27 @@ Options:
2930
function run(shouldRestore) {
3031
['fastboot', 'fastboot-express-middleware'].forEach((packageName) => {
3132
const nodeModulesPackageDir = path.join(nodeModulesDir, packageName);
33+
const precookedPackageDir = path.join(precookedDir, packageName);
3234
const workspacesPackageDir = path.resolve(packagesDir, packageName);
3335
if (fs.existsSync(nodeModulesPackageDir)) {
3436
console.log(chalk.blue(`remove ${nodeModulesPackageDir}`));
3537
fs.removeSync(nodeModulesPackageDir);
3638
}
39+
if (fs.existsSync(precookedPackageDir)) {
40+
console.log(chalk.blue(`remove ${precookedPackageDir}`));
41+
fs.removeSync(precookedPackageDir);
42+
}
3743
if (!shouldRestore) {
3844
console.log(
3945
chalk.green(
4046
`symlink ${nodeModulesPackageDir} -> ${workspacesPackageDir}`
4147
)
4248
);
4349
fs.symlinkSync(workspacesPackageDir, nodeModulesPackageDir, 'dir');
50+
console.log(
51+
chalk.green(`symlink ${precookedPackageDir} -> ${workspacesPackageDir}`)
52+
);
53+
fs.symlinkSync(workspacesPackageDir, precookedPackageDir, 'dir');
4454
}
4555
});
4656
}

packages/ember-cli-fastboot/package.json

+7-3
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
"release": "release-it",
2323
"lint:js:fix": "eslint . --fix",
2424
"start": "ember serve",
25-
"test": "npm-run-all lint test:*",
26-
"test:mocha": "node fix-node-modules.mjs && mocha && node fix-node-modules.mjs -r",
25+
"pretest:precook": "node node_modules/ember-cli-addon-tests/scripts/precook-node-modules.js",
26+
"test": "npm-run-all -s lint pretest:* test:*",
27+
"test:mocha": "node fix-node-modules.mjs && mocha",
2728
"test:ember": "ember test",
28-
"test:precook": "node node_modules/ember-cli-addon-tests/scripts/precook-node-modules.js",
2929
"test:ember-compatibility": "ember try:each"
3030
},
3131
"dependencies": {
@@ -45,9 +45,13 @@
4545
"fs-extra": "^10.0.0",
4646
"json-stable-stringify": "^1.0.1",
4747
"md5-hex": "^3.0.1",
48+
"node-fetch": "^2.6.7",
4849
"recast": "^0.19.1",
4950
"silent-error": "^1.1.1"
5051
},
52+
"fastbootDependencies": [
53+
"node-fetch"
54+
],
5155
"devDependencies": {
5256
"@ember/optional-features": "^2.0.0",
5357
"@ember/test-helpers": "^2.6.0",

packages/ember-cli-fastboot/test/fastboot-config-test.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ describe('FastBoot config', function () {
1616

1717
return app
1818
.create('fastboot-config', {
19-
emberVersion: 'latest',
20-
emberDataVersion: 'latest',
19+
emberVersion: '~3.28.12',
20+
emberDataVersion: '~3.28.12',
2121
})
2222
.then(function () {
2323
app.editPackageJSON((pkg) => {
2424
delete pkg.devDependencies['ember-fetch'];
2525
delete pkg.devDependencies['ember-welcome-page'];
2626
// needed because @ember-data/store does `FastBoot.require('crypto')`
27-
pkg.fastbootDependencies = ['crypto'];
27+
pkg.fastbootDependencies = ['node-fetch', 'crypto'];
2828
});
2929
return app.run('npm', 'install');
3030
})

packages/ember-cli-fastboot/test/fastboot-location-config-test.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ describe('FastBootLocation Configuration', function () {
1616

1717
return app
1818
.create('fastboot-location-config', {
19-
emberVersion: 'latest',
20-
emberDataVersion: 'latest',
19+
emberVersion: '~3.28.12',
20+
emberDataVersion: '~3.28.12',
2121
})
2222
.then(function () {
2323
app.editPackageJSON((pkg) => {
2424
delete pkg.devDependencies['ember-fetch'];
2525
delete pkg.devDependencies['ember-welcome-page'];
2626
// needed because @ember-data/store does `FastBoot.require('crypto')`
27-
pkg.fastbootDependencies = ['crypto'];
27+
pkg.fastbootDependencies = ['node-fetch', 'crypto'];
2828
});
2929
return app.run('npm', 'install');
3030
})

packages/ember-cli-fastboot/test/fastboot-location-test.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ describe('FastBootLocation', function () {
1515

1616
return app
1717
.create('fastboot-location', {
18-
emberVersion: 'latest',
19-
emberDataVersion: 'latest',
18+
emberVersion: '~3.28.12',
19+
emberDataVersion: '~3.28.12',
2020
})
2121
.then(function () {
2222
app.editPackageJSON((pkg) => {
2323
delete pkg.devDependencies['ember-fetch'];
2424
delete pkg.devDependencies['ember-welcome-page'];
2525
// needed because @ember-data/store does `FastBoot.require('crypto')`
26-
pkg.fastbootDependencies = ['crypto'];
26+
pkg.fastbootDependencies = ['node-fetch', 'crypto'];
2727
});
2828
return app.run('npm', 'install');
2929
})

packages/ember-cli-fastboot/test/package-json-test.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ describe('generating package.json', function () {
1818
before(function () {
1919
return customApp
2020
.create('customized-outputpaths', {
21-
emberVersion: 'latest',
22-
emberDataVersion: 'latest',
21+
emberVersion: '~3.28.12',
22+
emberDataVersion: '~3.28.12',
2323
})
2424
.then(function () {
2525
customApp.editPackageJSON((pkg) => {
2626
delete pkg.devDependencies['ember-fetch'];
2727
delete pkg.devDependencies['ember-welcome-page'];
2828
// needed because @ember-data/store does `FastBoot.require('crypto')`
29-
pkg.fastbootDependencies = ['crypto'];
29+
pkg.fastbootDependencies = ['node-fetch', 'crypto'];
3030
});
3131
return customApp.run('npm', 'install');
3232
})

packages/ember-cli-fastboot/test/request-details-test.js

+21-13
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,36 @@ const RSVP = require('rsvp');
77
const AddonTestApp = require('ember-cli-addon-tests').AddonTestApp;
88
const request = RSVP.denodeify(require('request'));
99

10-
function injectMiddlewareAddon(app) {
10+
async function injectMiddlewareAddon(app) {
1111
app.editPackageJSON(function (pkg) {
1212
pkg.devDependencies['body-parser'] =
1313
process.env.npm_package_devDependencies_body_parser;
1414
pkg.dependencies = pkg.dependencies || {};
15-
pkg.dependencies['fastboot'] = `file:${path.resolve(
16-
__dirname,
17-
'../../fastboot'
18-
)}`;
19-
pkg.dependencies['fastboot-express-middleware'] = `file:${path.resolve(
20-
__dirname,
21-
'../../fastboot-express-middleware'
22-
)}`;
2315
pkg['ember-addon'] = {
2416
paths: ['lib/post-middleware'],
2517
};
2618
delete pkg.devDependencies['ember-fetch'];
2719
delete pkg.devDependencies['ember-welcome-page'];
2820
// needed because @ember-data/store does `FastBoot.require('crypto')`
29-
pkg.fastbootDependencies = ['crypto'];
21+
pkg.fastbootDependencies = ['node-fetch', 'crypto'];
22+
});
23+
await app.run('npm', 'install', '--no-package-lock');
24+
await app.run(
25+
'ln',
26+
'-s',
27+
path.resolve(__dirname, '../../fastboot'),
28+
path.resolve(app.path, 'node_modules/fastboot')
29+
);
30+
await app.run(
31+
'ln',
32+
'-s',
33+
path.resolve(__dirname, '../../fastboot-express-middleware'),
34+
path.resolve(app.path, 'node_modules/fastboot-express-middleware')
35+
);
36+
app.editPackageJSON(function (pkg) {
37+
pkg.dependencies['fastboot'] = '*';
38+
pkg.dependencies['fastboot-express-middleware'] = '*';
3039
});
31-
return app.run('npm', 'install');
3240
}
3341

3442
describe('request details', function () {
@@ -41,8 +49,8 @@ describe('request details', function () {
4149

4250
return app
4351
.create('request', {
44-
emberVersion: 'latest',
45-
emberDataVersion: 'latest',
52+
emberVersion: '~3.28.12',
53+
emberDataVersion: '~3.28.12',
4654
})
4755
.then(() => injectMiddlewareAddon(app))
4856
.then(function () {

packages/ember-cli-fastboot/test/root-url-test.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ describe('rootUrl acceptance', function () {
1616

1717
return app
1818
.create('root-url', {
19-
emberVersion: 'latest',
20-
emberDataVersion: 'latest',
19+
emberVersion: '~3.28.12',
20+
emberDataVersion: '~3.28.12',
2121
})
2222
.then(function () {
2323
app.editPackageJSON((pkg) => {
2424
delete pkg.devDependencies['ember-fetch'];
2525
delete pkg.devDependencies['ember-welcome-page'];
2626
// needed because @ember-data/store does `FastBoot.require('crypto')`
27-
pkg.fastbootDependencies = ['crypto'];
27+
pkg.fastbootDependencies = ['node-fetch', 'crypto'];
2828
});
2929
return app.run('npm', 'install');
3030
})

0 commit comments

Comments
 (0)