Skip to content

Commit 5137ae2

Browse files
committed
Upgrade test dependencies when running init or new-package
1 parent 57575cc commit 5137ae2

File tree

4 files changed

+37
-7
lines changed

4 files changed

+37
-7
lines changed

lib/remote-template.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,6 @@ async function getRemoteElmJson(
9898
MinVersion.updateToAtLeastMinimalVersion(packageVersion);
9999
}
100100

101-
elmJson['test-dependencies'].direct = {};
102-
elmJson['test-dependencies'].indirect = {};
103-
104101
return TemplateDependencies.update(options, elmJson);
105102
}
106103

lib/template-dependencies.js

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,15 +273,44 @@ async function update(options, elmJson) {
273273
delete elmJson.dependencies.direct['jfmengels/elm-review'];
274274
delete elmJson.dependencies.direct['stil4m/elm-syntax'];
275275

276-
// TODO Upgrade test dependencies too for init or new-package
276+
const stringifiedElmJson = JSON.stringify({
277+
...elmJson,
278+
dependencies: {direct: {}, indirect: {}},
279+
'test-dependencies': {direct: {}, indirect: {}}
280+
});
281+
277282
elmJson.dependencies = solve(
278283
options,
279284
elmJson['elm-version'],
280-
JSON.stringify({...elmJson, dependencies: {direct: {}, indirect: {}}}),
285+
stringifiedElmJson,
281286
extra,
282287
true
283288
);
284289

290+
const testDependenciesEntries = Object.entries(
291+
elmJson['test-dependencies'].direct
292+
);
293+
if (testDependenciesEntries.length !== 0) {
294+
/** @type {Record<string, string>} */
295+
const packagesToAdd = {};
296+
testDependenciesEntries.forEach(([pkg, version]) => {
297+
packagesToAdd[pkg] = `${version} <= v < ${nextMajorVersion(version)}`;
298+
});
299+
300+
const testDependencies = solve(
301+
options,
302+
elmJson['elm-version'],
303+
stringifiedElmJson,
304+
packagesToAdd,
305+
true
306+
);
307+
308+
elmJson['test-dependencies'] = filterOutDuplicateDependencies(
309+
testDependencies,
310+
elmJson.dependencies
311+
);
312+
}
313+
285314
teardownDependenciesProvider();
286315

287316
return elmJson;

test/run-snapshots/elm-review-something-for-new-rule/review/elm.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@
3636
}
3737
},
3838
"test-dependencies": {
39-
"direct": {},
39+
"direct": {
40+
"elm-explorations/test": "2.1.2"
41+
},
4042
"indirect": {}
4143
}
4244
}

test/run-snapshots/elm-review-something/review/elm.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@
3636
}
3737
},
3838
"test-dependencies": {
39-
"direct": {},
39+
"direct": {
40+
"elm-explorations/test": "2.1.2"
41+
},
4042
"indirect": {}
4143
}
4244
}

0 commit comments

Comments
 (0)