Skip to content

Commit 7ed547c

Browse files
Merge pull request #432 from akv-platform/refactor-installer
Refactor installer
2 parents 3447fd6 + 3cdb094 commit 7ed547c

File tree

7 files changed

+472
-450
lines changed

7 files changed

+472
-450
lines changed

__tests__/installer.test.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -297,22 +297,22 @@ describe('installer tests', () => {
297297
describe('addToPath() tests', () => {
298298
it(`should export DOTNET_ROOT env.var with value from DOTNET_INSTALL_DIR env.var`, async () => {
299299
process.env['DOTNET_INSTALL_DIR'] = 'fictitious/dotnet/install/dir';
300-
installer.DotnetCoreInstaller.addToPath();
300+
installer.DotnetInstallDir.addToPath();
301301
const dotnet_root = process.env['DOTNET_ROOT'];
302302
expect(dotnet_root).toBe(process.env['DOTNET_INSTALL_DIR']);
303303
});
304304

305305
it(`should export value from DOTNET_INSTALL_DIR env.var to the PATH`, async () => {
306306
process.env['DOTNET_INSTALL_DIR'] = 'fictitious/dotnet/install/dir';
307-
installer.DotnetCoreInstaller.addToPath();
307+
installer.DotnetInstallDir.addToPath();
308308
const path = process.env['PATH'];
309309
expect(path).toContain(process.env['DOTNET_INSTALL_DIR']);
310310
});
311311
});
312312
});
313313

314314
describe('DotnetVersionResolver tests', () => {
315-
describe('createDotNetVersion() tests', () => {
315+
describe('createDotnetVersion() tests', () => {
316316
each([
317317
'3.1',
318318
'3.x',
@@ -329,7 +329,7 @@ describe('installer tests', () => {
329329
version
330330
);
331331
const versionObject =
332-
await dotnetVersionResolver.createDotNetVersion();
332+
await dotnetVersionResolver.createDotnetVersion();
333333

334334
expect(!!versionObject.value).toBe(true);
335335
}
@@ -368,7 +368,7 @@ describe('installer tests', () => {
368368
);
369369

370370
await expect(
371-
async () => await dotnetVersionResolver.createDotNetVersion()
371+
async () => await dotnetVersionResolver.createDotnetVersion()
372372
).rejects.toThrow();
373373
}
374374
);
@@ -380,7 +380,7 @@ describe('installer tests', () => {
380380
version
381381
);
382382
const versionObject =
383-
await dotnetVersionResolver.createDotNetVersion();
383+
await dotnetVersionResolver.createDotnetVersion();
384384

385385
expect(versionObject.type.toLowerCase().includes('channel')).toBe(
386386
true
@@ -395,7 +395,7 @@ describe('installer tests', () => {
395395
version
396396
);
397397
const versionObject =
398-
await dotnetVersionResolver.createDotNetVersion();
398+
await dotnetVersionResolver.createDotnetVersion();
399399

400400
expect(versionObject.type.toLowerCase().includes('channel')).toBe(
401401
true
@@ -411,7 +411,7 @@ describe('installer tests', () => {
411411
version
412412
);
413413
const versionObject =
414-
await dotnetVersionResolver.createDotNetVersion();
414+
await dotnetVersionResolver.createDotnetVersion();
415415

416416
expect(versionObject.type.toLowerCase().includes('version')).toBe(
417417
true
@@ -427,7 +427,7 @@ describe('installer tests', () => {
427427
version
428428
);
429429
const versionObject =
430-
await dotnetVersionResolver.createDotNetVersion();
430+
await dotnetVersionResolver.createDotnetVersion();
431431
const windowsRegEx = new RegExp(/^-(Version|Channel)/);
432432
const nonWindowsRegEx = new RegExp(/^--(version|channel)/);
433433

@@ -447,7 +447,7 @@ describe('installer tests', () => {
447447
version
448448
);
449449
await expect(
450-
async () => await dotnetVersionResolver.createDotNetVersion()
450+
async () => await dotnetVersionResolver.createDotnetVersion()
451451
).rejects.toThrow(
452452
`'dotnet-version' was supplied in invalid format: ${version}! The A.B.Cxx syntax is available since the .NET 5.0 release.`
453453
);

__tests__/setup-dotnet.test.ts

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import semver from 'semver';
44
import * as auth from '../src/authutil';
55

66
import * as setup from '../src/setup-dotnet';
7-
import {DotnetCoreInstaller} from '../src/installer';
7+
import {DotnetCoreInstaller, DotnetInstallDir} from '../src/installer';
88
import * as cacheUtils from '../src/cache-utils';
99
import * as cacheRestore from '../src/cache-restore';
1010

@@ -28,22 +28,25 @@ describe('setup-dotnet tests', () => {
2828
DotnetCoreInstaller.prototype,
2929
'installDotnet'
3030
);
31-
const addToPathSpy = jest.spyOn(DotnetCoreInstaller, 'addToPath');
31+
3232
const isCacheFeatureAvailableSpy = jest.spyOn(
3333
cacheUtils,
3434
'isCacheFeatureAvailable'
3535
);
3636
const restoreCacheSpy = jest.spyOn(cacheRestore, 'restoreCache');
3737
const configAuthenticationSpy = jest.spyOn(auth, 'configAuthentication');
38+
const addToPathOriginal = DotnetInstallDir.addToPath;
3839

3940
describe('run() tests', () => {
4041
beforeEach(() => {
42+
DotnetInstallDir.addToPath = jest.fn();
4143
getMultilineInputSpy.mockImplementation(input => inputs[input as string]);
4244
getInputSpy.mockImplementation(input => inputs[input as string]);
4345
getBooleanInputSpy.mockImplementation(input => inputs[input as string]);
4446
});
4547

4648
afterEach(() => {
49+
DotnetInstallDir.addToPath = addToPathOriginal;
4750
jest.clearAllMocks();
4851
jest.resetAllMocks();
4952
});
@@ -104,10 +107,9 @@ describe('setup-dotnet tests', () => {
104107
inputs['dotnet-quality'] = '';
105108

106109
installDotnetSpy.mockImplementation(() => Promise.resolve(''));
107-
addToPathSpy.mockImplementation(() => {});
108110

109111
await setup.run();
110-
expect(addToPathSpy).toHaveBeenCalledTimes(1);
112+
expect(DotnetInstallDir.addToPath).toHaveBeenCalledTimes(1);
111113
});
112114

113115
it('should call auth.configAuthentication() if source-url input is provided', async () => {
@@ -148,18 +150,16 @@ describe('setup-dotnet tests', () => {
148150
installDotnetSpy.mockImplementation(() =>
149151
Promise.resolve(`${inputs['dotnet-version']}`)
150152
);
151-
addToPathSpy.mockImplementation(() => {});
152153

153154
await setup.run();
154-
expect(setOutputSpy).toHaveBeenCalledTimes(1);
155+
expect(DotnetInstallDir.addToPath).toHaveBeenCalledTimes(1);
155156
});
156157

157158
it(`shouldn't call setOutput() if parsing dotnet-installer logs failed`, async () => {
158159
inputs['dotnet-version'] = ['6.0.300'];
159160
const warningMessage = `Failed to output the installed version of .NET. The 'dotnet-version' output will not be set.`;
160161

161162
installDotnetSpy.mockImplementation(() => Promise.resolve(null));
162-
addToPathSpy.mockImplementation(() => {});
163163

164164
await setup.run();
165165
expect(warningSpy).toHaveBeenCalledWith(warningMessage);
@@ -170,8 +170,6 @@ describe('setup-dotnet tests', () => {
170170
inputs['dotnet-version'] = [];
171171
const warningMessage = `The 'dotnet-version' output will not be set.`;
172172

173-
addToPathSpy.mockImplementation(() => {});
174-
175173
await setup.run();
176174

177175
expect(infoSpy).toHaveBeenCalledWith(warningMessage);
@@ -185,7 +183,6 @@ describe('setup-dotnet tests', () => {
185183
inputs['cache-dependency-path'] = 'fictitious.package.lock.json';
186184

187185
installDotnetSpy.mockImplementation(() => Promise.resolve(''));
188-
addToPathSpy.mockImplementation(() => {});
189186

190187
isCacheFeatureAvailableSpy.mockImplementation(() => true);
191188
restoreCacheSpy.mockImplementation(() => Promise.resolve());
@@ -203,7 +200,6 @@ describe('setup-dotnet tests', () => {
203200
inputs['cache'] = false;
204201

205202
installDotnetSpy.mockImplementation(() => Promise.resolve(''));
206-
addToPathSpy.mockImplementation(() => {});
207203

208204
isCacheFeatureAvailableSpy.mockImplementation(() => true);
209205
restoreCacheSpy.mockImplementation(() => Promise.resolve());
@@ -218,7 +214,6 @@ describe('setup-dotnet tests', () => {
218214
inputs['cache'] = true;
219215

220216
installDotnetSpy.mockImplementation(() => Promise.resolve(''));
221-
addToPathSpy.mockImplementation(() => {});
222217

223218
isCacheFeatureAvailableSpy.mockImplementation(() => false);
224219
restoreCacheSpy.mockImplementation(() => Promise.resolve());

0 commit comments

Comments
 (0)