import * as nv from '../src/node-version'; import * as nvf from '../src/node-version-file'; let nodeTestDist = require('./data/node-dist-index.json'); describe('node-version-file', () => { let getVersionsFromDist: jest.SpyInstance; beforeEach(() => { // @actions/core console.log('::stop-commands::stoptoken'); // Disable executing of runner commands when running tests in actions getVersionsFromDist = jest.spyOn(nv, 'getVersionsFromDist'); // gets getVersionsFromDist.mockImplementation(() => nodeTestDist); }); afterEach(() => { jest.resetAllMocks(); jest.clearAllMocks(); //jest.restoreAllMocks(); }); afterAll(async () => { console.log('::stoptoken::'); // Re-enable executing of runner commands when running tests in actions }, 100000); //-------------------------------------------------- // Manifest find tests //-------------------------------------------------- describe('parseNodeVersionFile', () => { it('without `v` prefix', async () => { // Arrange const versionSpec = '12'; // Act const result = await nvf.parseNodeVersionFile(versionSpec); // Assert expect(result).toBe(versionSpec); }); it('lts/*', async () => { // Arrange const versionSpec = 'lts/*'; // Act const result = await nvf.parseNodeVersionFile(versionSpec); // Assert expect(result).toMatch(/^\d+\.\d+\.\d+$/); }); it('lts/erbium', async () => { // Arrange const versionSpec = 'lts/*'; // Act const result = await nvf.parseNodeVersionFile(versionSpec); // Assert expect(result).toMatch(/\d\.\d\.\d/); }); it('partial syntax like 12', async () => { // Arrange const versionSpec = '12'; // Act const result = await nvf.parseNodeVersionFile(versionSpec); // Assert expect(result).toBe(versionSpec); }); it('partial syntax like 12.16', async () => { // Arrange const versionSpec = '12.16'; // Act const result = await nvf.parseNodeVersionFile(versionSpec); // Assert expect(result).toBe(versionSpec); }); }); });