Files
flutter-action/__tests__/installer.test.ts

77 lines
2.2 KiB
TypeScript
Raw Normal View History

2019-08-13 17:11:30 +07:00
import io = require('@actions/io');
2020-10-08 04:36:23 +00:00
import exec = require('@actions/exec');
2019-08-13 17:11:30 +07:00
import fs = require('fs');
import path = require('path');
2019-08-16 18:31:13 +07:00
import nock = require('nock');
2019-08-13 17:11:30 +07:00
const toolDir = path.join(__dirname, 'runner', 'tools');
2019-08-13 17:23:34 +07:00
const tempDir = path.join(__dirname, 'runner', 'temp');
2019-08-16 18:31:13 +07:00
const dataDir = path.join(__dirname, 'data');
2019-08-13 17:11:30 +07:00
process.env['RUNNER_TOOL_CACHE'] = toolDir;
2019-08-13 17:23:34 +07:00
process.env['RUNNER_TEMP'] = tempDir;
2019-08-13 17:11:30 +07:00
import * as installer from '../src/installer';
2020-10-08 01:22:27 +00:00
import * as release from '../src/release';
2019-08-16 18:31:13 +07:00
2019-08-13 17:11:30 +07:00
describe('installer tests', () => {
beforeAll(async () => {
await io.rmRF(toolDir);
2019-08-13 17:23:34 +07:00
await io.rmRF(tempDir);
2020-10-08 01:32:27 +00:00
}, 100000);
2020-10-08 01:22:27 +00:00
beforeEach(() => {
const platform = release.getPlatform();
nock('https://storage.googleapis.com', {allowUnmocked: true})
.get(`/flutter_infra/releases/releases_${platform}.json`)
.replyWithFile(200, path.join(dataDir, `releases_${platform}.json`));
});
2019-08-13 17:11:30 +07:00
2020-04-14 01:47:20 +00:00
afterEach(async () => {
2020-10-08 01:22:27 +00:00
nock.cleanAll();
nock.enableNetConnect();
2020-04-14 01:47:20 +00:00
await io.rmRF(toolDir);
await io.rmRF(tempDir);
2020-10-08 01:32:27 +00:00
}, 100000);
2020-04-14 01:47:20 +00:00
2019-08-13 17:11:30 +07:00
it('Downloads flutter', async () => {
2021-04-26 14:24:40 +00:00
await installer.getFlutter('2.0.0', 'stable');
const sdkDir = path.join(toolDir, 'flutter', '2.0.0-stable', 'x64');
2019-08-13 17:11:30 +07:00
expect(fs.existsSync(`${sdkDir}.complete`)).toBe(true);
expect(fs.existsSync(path.join(sdkDir, 'bin'))).toBe(true);
2020-04-14 02:05:13 +00:00
}, 300000);
2019-08-13 17:11:30 +07:00
2020-10-08 04:36:23 +00:00
it('Downloads flutter from master channel', async () => {
await installer.getFlutter('', 'master');
const sdkDir = path.join(toolDir, 'flutter', 'master', 'x64');
let stdout = '';
const options = {
listeners: {
stdout: (data: Buffer) => {
stdout += data.toString();
}
}
};
expect(fs.existsSync(`${sdkDir}.complete`)).toBe(true);
expect(fs.existsSync(path.join(sdkDir, 'bin'))).toBe(true);
await exec.exec(path.join(sdkDir, 'bin', 'flutter'), ['channel'], options);
expect(stdout).toContain('* master');
}, 300000);
2019-08-16 15:34:20 +07:00
it('Throws if no location contains correct flutter version', async () => {
let thrown = false;
try {
await installer.getFlutter('1000.0', 'dev');
} catch {
thrown = true;
}
expect(thrown).toBe(true);
});
2019-08-13 17:11:30 +07:00
});