6df8cefd14
* Migrate to ESM and upgrade dependencies * Address review: use type-only import for QualityOptions * update version to 6.0.0 in package.json and package-lock.json * Add ESM migration note to README for V6 * Update test imports for ESM and clean up devDependencies (ts-node, @types/jest) * Pin @types/node to 24.x and refine tsconfig/README wording
70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
import {describe, expect, it} from '@jest/globals';
|
|
import path from 'path';
|
|
import fs from 'fs';
|
|
import {fileURLToPath} from 'url';
|
|
import * as hc from '@actions/http-client';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
const HTTP_CLIENT_OPTIONS = {allowRetries: true, maxRetries: 10} as const;
|
|
const TEST_TIMEOUT = 30000;
|
|
|
|
describe('Dotnet installation scripts tests', () => {
|
|
it(
|
|
'Uses an up to date bash download script',
|
|
async () => {
|
|
const httpCallbackClient = new hc.HttpClient(
|
|
'setup-dotnet-test',
|
|
[],
|
|
HTTP_CLIENT_OPTIONS
|
|
);
|
|
const response: hc.HttpClientResponse = await httpCallbackClient.get(
|
|
'https://dot.net/v1/dotnet-install.sh'
|
|
);
|
|
expect(response.message.statusCode).toBe(200);
|
|
const upToDateContents: string = await response.readBody();
|
|
const currentContents: string = fs
|
|
.readFileSync(
|
|
path.join(__dirname, '..', 'externals', 'install-dotnet.sh')
|
|
)
|
|
.toString();
|
|
expect(normalizeFileContents(currentContents)).toBe(
|
|
normalizeFileContents(upToDateContents)
|
|
);
|
|
},
|
|
TEST_TIMEOUT
|
|
);
|
|
|
|
it(
|
|
'Uses an up to date powershell download script',
|
|
async () => {
|
|
const httpCallbackClient = new hc.HttpClient(
|
|
'setup-dotnet-test',
|
|
[],
|
|
HTTP_CLIENT_OPTIONS
|
|
);
|
|
const response: hc.HttpClientResponse = await httpCallbackClient.get(
|
|
'https://dot.net/v1/dotnet-install.ps1'
|
|
);
|
|
expect(response.message.statusCode).toBe(200);
|
|
const upToDateContents: string = await response.readBody();
|
|
const currentContents: string = fs
|
|
.readFileSync(
|
|
path.join(__dirname, '..', 'externals', 'install-dotnet.ps1')
|
|
)
|
|
.toString();
|
|
expect(normalizeFileContents(currentContents)).toBe(
|
|
normalizeFileContents(upToDateContents)
|
|
);
|
|
},
|
|
TEST_TIMEOUT
|
|
);
|
|
});
|
|
|
|
function normalizeFileContents(contents: string): string {
|
|
return contents
|
|
.trim()
|
|
.replace(new RegExp('\r\n', 'g'), '\n')
|
|
.replace(new RegExp('\r', 'g'), '\n');
|
|
}
|