Skip to content

Commit b94278d

Browse files
authored
Merge pull request #64 from saucelabs/devx-2573-peer
feat: Set legacy-peer-deps npm config
2 parents 04935ff + 26d94e7 commit b94278d

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

src/types.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export type NpmConfig = {
2121
strictSSL?: boolean | string | null;
2222
packageLock?: boolean | string | null;
2323
packages?: { [key: string]: string | number };
24+
legacyPeerDeps?: boolean | string | null;
2425
}
2526

2627
export interface PathContainer {
@@ -38,4 +39,4 @@ export interface SuitesContainer {
3839
export interface NodeContext {
3940
nodePath: string;
4041
npmPath: string;
41-
}
42+
}

src/utils.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,9 @@ export function getNpmConfig (runnerConfig: NpmConfigContainer) {
113113
registry: runnerConfig.npm.registry || getDefaultRegistry(),
114114
'strict-ssl': runnerConfig.npm.strictSSL !== false,
115115
// Setting to false to avoid dealing with the generated file.
116-
'package-lock': runnerConfig.npm.packageLock === true
116+
'package-lock': runnerConfig.npm.packageLock === true,
117+
'legacy-peer-deps': (runnerConfig.npm.legacyPeerDeps !== 'false' &&
118+
runnerConfig.npm.legacyPeerDeps !== false),
117119
};
118120

119121
// As npm config accepts only key-value pairs, we do the translation

tests/unit/src/__snapshots__/utils.spec.ts.snap

+7
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ Array [
2727
"audit": false,
2828
"fund": false,
2929
"json": false,
30+
"legacy-peer-deps": true,
3031
"noproxy": "registry.npmjs.org",
3132
"package-lock": false,
3233
"registry": "test.strictSSL.false",
@@ -47,6 +48,7 @@ Array [
4748
"audit": false,
4849
"fund": false,
4950
"json": false,
51+
"legacy-peer-deps": true,
5052
"noproxy": "registry.npmjs.org",
5153
"package-lock": false,
5254
"registry": "test.strictSSL.true",
@@ -99,6 +101,7 @@ Array [
99101
"audit": false,
100102
"fund": false,
101103
"json": false,
104+
"legacy-peer-deps": true,
102105
"noproxy": "registry.npmjs.org",
103106
"package-lock": false,
104107
"registry": "https://registry.npmjs.org",
@@ -119,6 +122,7 @@ Array [
119122
"audit": false,
120123
"fund": false,
121124
"json": false,
125+
"legacy-peer-deps": true,
122126
"noproxy": "registry.npmjs.org",
123127
"package-lock": false,
124128
"registry": "npmland.io",
@@ -161,6 +165,7 @@ Array [
161165
"audit": false,
162166
"fund": false,
163167
"json": false,
168+
"legacy-peer-deps": true,
164169
"noproxy": "registry.npmjs.org",
165170
"package-lock": false,
166171
"registry": "https://registry.npmjs.org",
@@ -181,6 +186,7 @@ Array [
181186
"audit": false,
182187
"fund": false,
183188
"json": false,
189+
"legacy-peer-deps": true,
184190
"noproxy": "registry.npmjs.org",
185191
"package-lock": false,
186192
"registry": "https://registry.npmjs.org",
@@ -201,6 +207,7 @@ Array [
201207
"audit": false,
202208
"fund": false,
203209
"json": false,
210+
"legacy-peer-deps": true,
204211
"noproxy": "registry.npmjs.org",
205212
"package-lock": false,
206213
"registry": "registryland.io",

tests/unit/src/utils.spec.ts

+20
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,26 @@ describe('utils', function () {
110110

111111
expect(npmConfig).toHaveProperty('registry', 'http://my-private-registry.com');
112112
});
113+
114+
describe.each([
115+
{ value: undefined, expected: true },
116+
{ value: null, expected: true },
117+
{ value: '', expected: true },
118+
{ value: 'true', expected: true },
119+
{ value: true, expected: true },
120+
{ value: 'false', expected: false },
121+
{ value: false, expected: false },
122+
])('legacy-peer-deps', function ({ value, expected }) {
123+
test(`set to ${expected} when given ${value}`, function () {
124+
const config = getNpmConfig({
125+
npm: {
126+
legacyPeerDeps: value,
127+
},
128+
});
129+
130+
expect(config['legacy-peer-deps']).toBe(expected);
131+
});
132+
});
113133
});
114134

115135
describe('.prepareNpmEnv', function () {

0 commit comments

Comments
 (0)