Skip to content

Commit 1c02be0

Browse files
authored
Fix autofixer when dots are present in dependency name (#238)
1 parent 85654f2 commit 1c02be0

File tree

2 files changed

+40
-12
lines changed

2 files changed

+40
-12
lines changed

lib/dependency-versions.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,10 @@ export function fixMismatchingVersions(
201201
autosave: true,
202202
});
203203
packageJsonEditor.set(
204-
`devDependencies.${mismatchingVersion.dependency}`,
204+
`devDependencies.${mismatchingVersion.dependency.replace(
205+
/\./g, // Escape dots.
206+
'\\.'
207+
)}`,
205208
fixedVersion
206209
);
207210
}
@@ -216,7 +219,10 @@ export function fixMismatchingVersions(
216219
autosave: true,
217220
});
218221
packageJsonEditor.set(
219-
`dependencies.${mismatchingVersion.dependency}`,
222+
`dependencies.${mismatchingVersion.dependency.replace(
223+
/\./g, // Escape dots.
224+
'\\.'
225+
)}`,
220226
fixedVersion
221227
);
222228
}

test/lib/dependency-versions.ts

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -129,14 +129,22 @@ describe('Utils | dependency-versions', function () {
129129
beforeEach(function () {
130130
// Create a mock workspace filesystem for temporary usage in this test because changes will be written to some files.
131131
mockFs({
132-
'package.json': '{"workspaces": ["scope1/*"]}',
132+
'package.json': JSON.stringify({ workspaces: ['scope1/*'] }),
133133
'scope1/package1': {
134-
'package.json':
135-
'{"dependencies": {"foo": "^1.0.0", "bar": "^3.0.0"}, "devDependencies": {"baz": "^4.1.0"}}',
134+
'package.json': JSON.stringify({
135+
dependencies: { foo: '^1.0.0', bar: '^3.0.0', 'a.b.c': '5.0.0' },
136+
devDependencies: { 'one.two.three': '^4.1.0' },
137+
}),
136138
},
137139
'scope1/package2': {
138-
'package.json':
139-
'{"dependencies": {"foo": "^2.0.0", "bar": "invalidVersion"}, "devDependencies": {"baz": "^4.0.0"}}',
140+
'package.json': JSON.stringify({
141+
dependencies: {
142+
foo: '^2.0.0',
143+
bar: 'invalidVersion',
144+
'a.b.c': '~5.5.0',
145+
},
146+
devDependencies: { 'one.two.three': '^4.0.0' },
147+
}),
140148
},
141149
});
142150
});
@@ -185,16 +193,30 @@ describe('Utils | dependency-versions', function () {
185193
'does not change package2 `bar` version due to abnormal version present'
186194
);
187195

188-
// baz
196+
// a.b.c
197+
strictEqual(
198+
packageJson1.dependencies && packageJson1.dependencies['a.b.c'],
199+
'~5.5.0',
200+
'updates the package1 `a.b.c` version to the highest version'
201+
);
202+
strictEqual(
203+
packageJson2.dependencies && packageJson2.dependencies['a.b.c'],
204+
'~5.5.0',
205+
'does not change package2 `a.b.c` version since already at highest version'
206+
);
207+
208+
// one.two.three
189209
strictEqual(
190-
packageJson1.devDependencies && packageJson1.devDependencies.baz,
210+
packageJson1.devDependencies &&
211+
packageJson1.devDependencies['one.two.three'],
191212
'^4.1.0',
192-
'does not change package1 `baz` version since already at highest version'
213+
'does not change package1 `one.two.three` version since already at highest version'
193214
);
194215
strictEqual(
195-
packageJson2.devDependencies && packageJson2.devDependencies.baz,
216+
packageJson2.devDependencies &&
217+
packageJson2.devDependencies['one.two.three'],
196218
'^4.1.0',
197-
'updates the package2 `baz` version to the highest version'
219+
'updates the package2 `one.two.three` version to the highest version'
198220
);
199221

200222
// Check return value.

0 commit comments

Comments
 (0)