Skip to content

Commit 2111029

Browse files
committed
Remove faux project.mjs
1 parent 1e088d4 commit 2111029

2 files changed

Lines changed: 119 additions & 180 deletions

File tree

smoke-tests/node-template/tests/node/helpers/project.mjs

Lines changed: 0 additions & 145 deletions
This file was deleted.
Lines changed: 119 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,29 @@
11
import test from 'node:test';
22
import assert from 'node:assert/strict';
33
import Overrides from '../../node_modules/ember-source/lib/overrides.js';
4-
import { Project } from './helpers/project.mjs';
4+
5+
function makeAddon({ name = 'my-addon', version = '1.0.0', dependencies = {}, addons = [], hasJSFiles = true } = {}, parent) {
6+
let addon = {
7+
name,
8+
parent,
9+
pkg: { name, version, dependencies, devDependencies: {} },
10+
_fileSystemInfo: () => ({ hasJSFiles }),
11+
addons: [],
12+
};
13+
addon.addons = addons.map((a) => makeAddon(a, addon));
14+
return addon;
15+
}
16+
17+
function makeProject({ name = 'my-app', dependencies = {}, devDependencies = {}, addons = [] } = {}) {
18+
let project = {
19+
name: () => name,
20+
parent: null,
21+
pkg: { name, dependencies, devDependencies },
22+
addons: [],
23+
};
24+
project.addons = addons.map((a) => makeAddon(a, project));
25+
return project;
26+
}
527

628
function cmp(a, b) {
729
if (a == undefined || a < b) {
@@ -16,18 +38,18 @@ function cmp(a, b) {
1638
}
1739

1840
function addonsInfoFor(project) {
19-
if (!(project instanceof Project)) {
20-
project = new Project(project);
21-
}
22-
2341
let addonsInfo = [...Overrides.addonsInfoFor(project)];
2442
addonsInfo.sort((a, b) => cmp(a.topLevel, b.topLevel) || cmp(a.parent, b.parent));
25-
2643
return addonsInfo;
2744
}
2845

2946
test('overrides: old babel added by app', () => {
30-
assert.deepEqual(addonsInfoFor({ emberCliBabel: '^6.0.0' }), [
47+
let project = makeProject({
48+
devDependencies: { 'ember-cli-babel': '^6.0.0' },
49+
addons: [{ name: 'ember-cli-babel', version: '6.0.0' }],
50+
});
51+
52+
assert.deepEqual(addonsInfoFor(project), [
3153
{
3254
parent: 'my-app (your app)',
3355
topLevel: null,
@@ -41,7 +63,12 @@ test('overrides: old babel added by app', () => {
4163
});
4264

4365
test('overrides: compatible old babel added by app', () => {
44-
assert.deepEqual(addonsInfoFor({ emberCliBabel: '^7.0.0' }), [
66+
let project = makeProject({
67+
devDependencies: { 'ember-cli-babel': '^7.0.0' },
68+
addons: [{ name: 'ember-cli-babel', version: '7.0.0' }],
69+
});
70+
71+
assert.deepEqual(addonsInfoFor(project), [
4572
{
4673
parent: 'my-app (your app)',
4774
topLevel: null,
@@ -55,11 +82,27 @@ test('overrides: compatible old babel added by app', () => {
5582
});
5683

5784
test('overrides: new babel added by app is ignored', () => {
58-
assert.deepEqual(addonsInfoFor({ emberCliBabel: '^7.26.6' }), []);
85+
let project = makeProject({
86+
devDependencies: { 'ember-cli-babel': '^7.26.6' },
87+
addons: [{ name: 'ember-cli-babel', version: '7.26.6' }],
88+
});
89+
90+
assert.deepEqual(addonsInfoFor(project), []);
5991
});
6092

6193
test('overrides: old babel added by direct dependency', () => {
62-
assert.deepEqual(addonsInfoFor(Project.withDep({ emberCliBabel: '^6.0.0' })), [
94+
let project = makeProject({
95+
addons: [
96+
{
97+
name: 'my-addon',
98+
version: '1.0.0',
99+
addons: [{ name: 'ember-cli-babel', version: '6.0.0', dependencies: { 'ember-cli-babel': '^6.0.0' } }],
100+
dependencies: { 'ember-cli-babel': '^6.0.0' },
101+
},
102+
],
103+
});
104+
105+
assert.deepEqual(addonsInfoFor(project), [
63106
{
64107
parent: '[email protected]',
65108
topLevel: 'my-addon',
@@ -73,24 +116,50 @@ test('overrides: old babel added by direct dependency', () => {
73116
});
74117

75118
test('overrides: dormant direct dependency is marked dormant', () => {
76-
assert.deepEqual(
77-
addonsInfoFor(Project.withDep({ emberCliBabel: '^6.0.0', hasJSFiles: false })),
78-
[
119+
let project = makeProject({
120+
addons: [
79121
{
80-
parent: '[email protected]',
81-
topLevel: 'my-addon',
82-
version: '6.0.0',
83-
requirement: '^6.0.0',
84-
compatible: false,
85-
dormant: true,
86-
path: ['[email protected]'],
122+
name: 'my-addon',
123+
version: '1.0.0',
124+
hasJSFiles: false,
125+
addons: [{ name: 'ember-cli-babel', version: '6.0.0' }],
126+
dependencies: { 'ember-cli-babel': '^6.0.0' },
87127
},
88-
]
89-
);
128+
],
129+
});
130+
131+
assert.deepEqual(addonsInfoFor(project), [
132+
{
133+
parent: '[email protected]',
134+
topLevel: 'my-addon',
135+
version: '6.0.0',
136+
requirement: '^6.0.0',
137+
compatible: false,
138+
dormant: true,
139+
path: ['[email protected]'],
140+
},
141+
]);
90142
});
91143

92144
test('overrides: transient dependency records full path', () => {
93-
assert.deepEqual(addonsInfoFor(Project.withTransientDep({ emberCliBabel: '^6.0.0' })), [
145+
let project = makeProject({
146+
addons: [
147+
{
148+
name: 'my-addon',
149+
version: '1.0.0',
150+
addons: [
151+
{
152+
name: 'my-nested-addon',
153+
version: '0.1.0',
154+
addons: [{ name: 'ember-cli-babel', version: '6.0.0' }],
155+
dependencies: { 'ember-cli-babel': '^6.0.0' },
156+
},
157+
],
158+
},
159+
],
160+
});
161+
162+
assert.deepEqual(addonsInfoFor(project), [
94163
{
95164
parent: '[email protected]',
96165
topLevel: 'my-addon',
@@ -104,18 +173,33 @@ test('overrides: transient dependency records full path', () => {
104173
});
105174

106175
test('overrides: transient through dormant dependency is marked dormant', () => {
107-
assert.deepEqual(
108-
addonsInfoFor(Project.withTransientDep({ emberCliBabel: '^6.0.0' }, { hasJSFiles: false })),
109-
[
176+
let project = makeProject({
177+
addons: [
110178
{
111-
parent: '[email protected]',
112-
topLevel: 'my-addon',
113-
version: '6.0.0',
114-
requirement: '^6.0.0',
115-
compatible: false,
116-
dormant: false,
117-
179+
name: 'my-addon',
180+
version: '1.0.0',
181+
hasJSFiles: false,
182+
addons: [
183+
{
184+
name: 'my-nested-addon',
185+
version: '0.1.0',
186+
addons: [{ name: 'ember-cli-babel', version: '6.0.0' }],
187+
dependencies: { 'ember-cli-babel': '^6.0.0' },
188+
},
189+
],
118190
},
119-
]
120-
);
191+
],
192+
});
193+
194+
assert.deepEqual(addonsInfoFor(project), [
195+
{
196+
parent: '[email protected]',
197+
topLevel: 'my-addon',
198+
version: '6.0.0',
199+
requirement: '^6.0.0',
200+
compatible: false,
201+
dormant: false,
202+
203+
},
204+
]);
121205
});

0 commit comments

Comments
 (0)