2020-09-24 23:26:00 +08:00
|
|
|
import each from 'jest-each';
|
|
|
|
import * as installer from '../src/installer';
|
|
|
|
|
|
|
|
describe('version tests', () => {
|
|
|
|
each(['3.1.999', '3.1.101-preview.3']).test(
|
|
|
|
"Exact version '%s' should be the same",
|
|
|
|
vers => {
|
|
|
|
let versInfo = new installer.DotNetVersionInfo(vers);
|
|
|
|
|
|
|
|
expect(versInfo.isExactVersion()).toBe(true);
|
|
|
|
expect(versInfo.version()).toBe(vers);
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
each([
|
2021-03-18 16:07:32 +08:00
|
|
|
['3.x', '3.x'],
|
|
|
|
['3.*', '3.*'],
|
2020-09-24 23:26:00 +08:00
|
|
|
['3.1.x', '3.1'],
|
|
|
|
['1.1.*', '1.1'],
|
|
|
|
['2.0', '2.0']
|
|
|
|
]).test("Generic version '%s' should be '%s'", (vers, resVers) => {
|
|
|
|
let versInfo = new installer.DotNetVersionInfo(vers);
|
|
|
|
|
|
|
|
expect(versInfo.isExactVersion()).toBe(false);
|
|
|
|
expect(versInfo.version()).toBe(resVers);
|
|
|
|
});
|
|
|
|
|
|
|
|
each([
|
|
|
|
'',
|
|
|
|
'.',
|
|
|
|
'..',
|
|
|
|
' . ',
|
|
|
|
'. ',
|
|
|
|
' .',
|
|
|
|
' . . ',
|
|
|
|
' .. ',
|
|
|
|
' . ',
|
|
|
|
'-1.-1',
|
|
|
|
'-1',
|
|
|
|
'-1.-1.-1',
|
|
|
|
'..3',
|
|
|
|
'1..3',
|
|
|
|
'1..',
|
|
|
|
'.2.3',
|
|
|
|
'.2.x',
|
|
|
|
'1',
|
|
|
|
'*.*.1',
|
|
|
|
'*.1',
|
|
|
|
'*.',
|
|
|
|
'1.2.',
|
|
|
|
'1.2.-abc',
|
|
|
|
'a.b',
|
|
|
|
'a.b.c',
|
|
|
|
'a.b.c-preview',
|
|
|
|
' 0 . 1 . 2 '
|
|
|
|
]).test("Malformed version '%s' should throw", vers => {
|
|
|
|
expect(() => new installer.DotNetVersionInfo(vers)).toThrow();
|
|
|
|
});
|
|
|
|
|
|
|
|
each([
|
|
|
|
['3.1.x', '3.1.'],
|
|
|
|
['3.1.*', '3.1.'],
|
|
|
|
['3.1', '3.1.'],
|
|
|
|
['5.0.0-preview.6', '5.0.0-preview.6'],
|
|
|
|
['3.1.201', '3.1.201']
|
|
|
|
]).test(
|
|
|
|
"Resolving version '%s' as '%s'",
|
|
|
|
async (input, expectedVersion) => {
|
|
|
|
const dotnetInstaller = new installer.DotnetCoreInstaller(input);
|
|
|
|
let versInfo = await dotnetInstaller.resolveVersion(
|
|
|
|
new installer.DotNetVersionInfo(input)
|
|
|
|
);
|
|
|
|
console.log(versInfo);
|
|
|
|
|
|
|
|
expect(versInfo.startsWith(expectedVersion));
|
|
|
|
},
|
|
|
|
100000
|
|
|
|
);
|
|
|
|
|
|
|
|
it('Resolving a nonexistent generic version fails', async () => {
|
|
|
|
const dotnetInstaller = new installer.DotnetCoreInstaller('999.1.x');
|
|
|
|
try {
|
|
|
|
await dotnetInstaller.resolveVersion(
|
|
|
|
new installer.DotNetVersionInfo('999.1.x')
|
|
|
|
);
|
|
|
|
fail();
|
|
|
|
} catch {
|
|
|
|
expect(true);
|
|
|
|
}
|
|
|
|
}, 100000);
|
|
|
|
});
|