Skip to content

Commit 39ee3f9

Browse files
committedFeb 5, 2023
refactor(cli): decouple io and data transformation
1 parent dbe5a97 commit 39ee3f9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+948
-813
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import type { Disk } from '../lib/disk';
2+
import { getContext } from '../lib/get-context';
3+
import type { Config } from '../lib/get-context/get-config/config';
4+
import { writeIfChanged } from '../lib/write-if-changed';
5+
import { fixMismatches } from './fix-mismatches';
6+
7+
export function fixMismatchesCli(input: Partial<Config.All>, disk: Disk): void {
8+
writeIfChanged(fixMismatches(getContext(input, disk)));
9+
}

‎src/bin-fix-mismatches/fix-mismatches.spec.ts

+8-15
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import 'expect-more-jest';
22
import { scenarios } from '../../test/scenarios';
3-
import { getInput } from '../lib/get-input';
4-
import { fixMismatches } from './fix-mismatches';
3+
import { fixMismatchesCli } from './fix-mismatches-cli';
54

65
describe('fixMismatches', () => {
76
beforeEach(() => {
@@ -13,10 +12,7 @@ describe('fixMismatches', () => {
1312
describe('when using a typical workspace', () => {
1413
it('warns about the workspace version', () => {
1514
const scenario = scenarios.dependentDoesNotMatchWorkspaceVersion();
16-
fixMismatches(
17-
getInput(scenario.disk, scenario.config),
18-
scenario.disk,
19-
);
15+
fixMismatchesCli(scenario.config, scenario.disk);
2016
expect(scenario.disk.writeFileSync.mock.calls).toEqual([
2117
scenario.files['packages/a/package.json'].diskWriteWhenChanged,
2218
scenario.files['packages/b/package.json'].diskWriteWhenChanged,
@@ -33,10 +29,7 @@ describe('fixMismatches', () => {
3329
it('warns about the workspace version', () => {
3430
const scenario =
3531
scenarios.dependentDoesNotMatchNestedWorkspaceVersion();
36-
fixMismatches(
37-
getInput(scenario.disk, scenario.config),
38-
scenario.disk,
39-
);
32+
fixMismatchesCli(scenario.config, scenario.disk);
4033
expect(scenario.disk.writeFileSync.mock.calls).toEqual([
4134
scenario.files['workspaces/a/packages/a/package.json']
4235
.diskWriteWhenChanged,
@@ -57,7 +50,7 @@ describe('fixMismatches', () => {
5750

5851
it('replaces non-semver dependencies with valid semver dependencies', () => {
5952
const scenario = scenarios.mismatchesIncludeNonSemverVersions();
60-
fixMismatches(getInput(scenario.disk, scenario.config), scenario.disk);
53+
fixMismatchesCli(scenario.config, scenario.disk);
6154
expect(scenario.disk.writeFileSync.mock.calls).toEqual([
6255
scenario.files['packages/a/package.json'].diskWriteWhenChanged,
6356
scenario.files['packages/b/package.json'].diskWriteWhenChanged,
@@ -73,7 +66,7 @@ describe('fixMismatches', () => {
7366

7467
it('removes banned/disallowed dependencies', () => {
7568
const scenario = scenarios.dependencyIsBanned();
76-
fixMismatches(getInput(scenario.disk, scenario.config), scenario.disk);
69+
fixMismatchesCli(scenario.config, scenario.disk);
7770
expect(scenario.disk.writeFileSync.mock.calls).toEqual([
7871
scenario.files['packages/b/package.json'].diskWriteWhenChanged,
7972
]);
@@ -86,7 +79,7 @@ describe('fixMismatches', () => {
8679

8780
it('does not consider versions of ignored dependencies', () => {
8881
const scenario = scenarios.versionIsIgnored();
89-
fixMismatches(getInput(scenario.disk, scenario.config), scenario.disk);
82+
fixMismatchesCli(scenario.config, scenario.disk);
9083
expect(scenario.disk.writeFileSync).not.toHaveBeenCalled();
9184
expect(scenario.log.mock.calls).toEqual([
9285
[expect.stringMatching(/Version Group 1/)],
@@ -97,7 +90,7 @@ describe('fixMismatches', () => {
9790

9891
it('replaces mismatching npm overrides', () => {
9992
const scenario = scenarios.dependentDoesNotMatchNpmOverrideVersion();
100-
fixMismatches(getInput(scenario.disk, scenario.config), scenario.disk);
93+
fixMismatchesCli(scenario.config, scenario.disk);
10194
expect(scenario.disk.writeFileSync.mock.calls).toEqual([
10295
scenario.files['packages/a/package.json'].diskWriteWhenChanged,
10396
]);
@@ -109,7 +102,7 @@ describe('fixMismatches', () => {
109102

110103
it('replaces mismatching pnpm overrides', () => {
111104
const scenario = scenarios.dependentDoesNotMatchPnpmOverrideVersion();
112-
fixMismatches(getInput(scenario.disk, scenario.config), scenario.disk);
105+
fixMismatchesCli(scenario.config, scenario.disk);
113106
expect(scenario.disk.writeFileSync.mock.calls).toEqual([
114107
scenario.files['packages/a/package.json'].diskWriteWhenChanged,
115108
]);

0 commit comments

Comments
 (0)
Please sign in to comment.