Skip to content

Commit c4f9da0

Browse files
committed
Combine LTS tests with it.each(table)
1 parent db5bd66 commit c4f9da0

File tree

1 file changed

+91
-204
lines changed

1 file changed

+91
-204
lines changed

__tests__/installer.test.ts

Lines changed: 91 additions & 204 deletions
Original file line numberDiff line numberDiff line change
@@ -677,215 +677,102 @@ describe('setup-node', () => {
677677
inputs.stable = 'true';
678678
});
679679

680-
it('find latest LTS version and resolve it from local cache (lts/erbium)', async () => {
681-
// arrange
682-
inputs['node-version'] = 'lts/erbium';
683-
684-
const toolPath = path.normalize('/cache/node/12.16.2/x64');
685-
findSpy.mockReturnValue(toolPath);
686-
687-
// act
688-
await main.run();
689-
690-
// assert
691-
expect(logSpy).toHaveBeenCalledWith(
692-
'Attempt to resolve LTS alias from manifest...'
693-
);
694-
expect(dbgSpy).toHaveBeenCalledWith(
695-
'Getting manifest from actions/node-versions@main'
696-
);
697-
expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
698-
expect(dbgSpy).toHaveBeenCalledWith(
699-
`LTS alias 'erbium' for Node version 'lts/erbium'`
700-
);
701-
expect(dbgSpy).toHaveBeenCalledWith(
702-
`Found LTS release '12.16.2' for Node version 'lts/erbium'`
703-
);
704-
expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
705-
expect(cnSpy).toHaveBeenCalledWith(
706-
`::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
707-
);
708-
});
709-
710-
it('find latest LTS version and install it from manifest (lts/erbium)', async () => {
711-
// arrange
712-
inputs['node-version'] = 'lts/erbium';
713-
714-
const toolPath = path.normalize('/cache/node/12.16.2/x64');
715-
findSpy.mockImplementation(() => '');
716-
dlSpy.mockImplementation(async () => '/some/temp/path');
717-
exSpy.mockImplementation(async () => '/some/other/temp/path');
718-
cacheSpy.mockImplementation(async () => toolPath);
719-
const expectedUrl =
720-
'https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-linux-x64.tar.gz';
721-
722-
// act
723-
await main.run();
724-
725-
// assert
726-
expect(logSpy).toHaveBeenCalledWith(
727-
'Attempt to resolve LTS alias from manifest...'
728-
);
729-
expect(dbgSpy).toHaveBeenCalledWith(
730-
'Getting manifest from actions/node-versions@main'
731-
);
732-
expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
733-
expect(dbgSpy).toHaveBeenCalledWith(
734-
`LTS alias 'erbium' for Node version 'lts/erbium'`
735-
);
736-
expect(dbgSpy).toHaveBeenCalledWith(
737-
`Found LTS release '12.16.2' for Node version 'lts/erbium'`
738-
);
739-
expect(logSpy).toHaveBeenCalledWith('Attempting to download 12...');
740-
expect(logSpy).toHaveBeenCalledWith(
741-
`Acquiring 12.16.2 - ${os.arch} from ${expectedUrl}`
742-
);
743-
expect(logSpy).toHaveBeenCalledWith('Extracting ...');
744-
expect(logSpy).toHaveBeenCalledWith('Adding to the cache ...');
745-
expect(cnSpy).toHaveBeenCalledWith(
746-
`::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
747-
);
748-
});
749-
750-
it('find latest LTS version and resolve it from local cache (lts/*)', async () => {
751-
// arrange
752-
inputs['node-version'] = 'lts/*';
753-
754-
const toolPath = path.normalize('/cache/node/14.0.0/x64');
755-
findSpy.mockReturnValue(toolPath);
756-
757-
// act
758-
await main.run();
759-
760-
// assert
761-
expect(logSpy).toHaveBeenCalledWith(
762-
'Attempt to resolve LTS alias from manifest...'
763-
);
764-
expect(dbgSpy).toHaveBeenCalledWith(
765-
'Getting manifest from actions/node-versions@main'
766-
);
767-
expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
768-
expect(dbgSpy).toHaveBeenCalledWith(
769-
`LTS alias '*' for Node version 'lts/*'`
770-
);
771-
expect(dbgSpy).toHaveBeenCalledWith(
772-
`Found LTS release '14.0.0' for Node version 'lts/*'`
773-
);
774-
expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
775-
expect(cnSpy).toHaveBeenCalledWith(
776-
`::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
777-
);
778-
});
779-
780-
it('find latest LTS version and install it from manifest (lts/*)', async () => {
781-
// arrange
782-
inputs['node-version'] = 'lts/*';
783-
784-
const toolPath = path.normalize('/cache/node/14.0.0/x64');
785-
findSpy.mockImplementation(() => '');
786-
dlSpy.mockImplementation(async () => '/some/temp/path');
787-
exSpy.mockImplementation(async () => '/some/other/temp/path');
788-
cacheSpy.mockImplementation(async () => toolPath);
789-
const expectedUrl =
790-
'https://github.com/actions/node-versions/releases/download/14.0.0-20200423.30/node-14.0.0-linux-x64.tar.gz';
791-
792-
// act
793-
await main.run();
794-
795-
// assert
796-
expect(logSpy).toHaveBeenCalledWith(
797-
'Attempt to resolve LTS alias from manifest...'
798-
);
799-
expect(dbgSpy).toHaveBeenCalledWith(
800-
'Getting manifest from actions/node-versions@main'
801-
);
802-
expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
803-
expect(dbgSpy).toHaveBeenCalledWith(
804-
`LTS alias '*' for Node version 'lts/*'`
805-
);
806-
expect(dbgSpy).toHaveBeenCalledWith(
807-
`Found LTS release '14.0.0' for Node version 'lts/*'`
808-
);
809-
expect(logSpy).toHaveBeenCalledWith('Attempting to download 14...');
810-
expect(logSpy).toHaveBeenCalledWith(
811-
`Acquiring 14.0.0 - ${os.arch} from ${expectedUrl}`
812-
);
813-
expect(logSpy).toHaveBeenCalledWith('Extracting ...');
814-
expect(logSpy).toHaveBeenCalledWith('Adding to the cache ...');
815-
expect(cnSpy).toHaveBeenCalledWith(
816-
`::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
817-
);
818-
});
819-
820-
it('find latest LTS version and resolve it from local cache (lts/-1)', async () => {
821-
// arrange
822-
inputs['node-version'] = 'lts/-1';
823-
824-
const toolPath = path.normalize('/cache/node/12.16.2/x64');
825-
findSpy.mockReturnValue(toolPath);
826-
827-
// act
828-
await main.run();
680+
it.each([
681+
['erbium', '12.16.2'],
682+
['*', '14.0.0'],
683+
['-1', '12.16.2']
684+
])(
685+
'find latest LTS version and resolve it from local cache (lts/%s)',
686+
async (lts, expectedVersion) => {
687+
// arrange
688+
inputs['node-version'] = `lts/${lts}`;
689+
690+
const toolPath = path.normalize(`/cache/node/${expectedVersion}/x64`);
691+
findSpy.mockReturnValue(toolPath);
829692

830-
// assert
831-
expect(logSpy).toHaveBeenCalledWith(
832-
'Attempt to resolve LTS alias from manifest...'
833-
);
834-
expect(dbgSpy).toHaveBeenCalledWith(
835-
'Getting manifest from actions/node-versions@main'
836-
);
837-
expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
838-
expect(dbgSpy).toHaveBeenCalledWith(
839-
`LTS alias '-1' for Node version 'lts/-1'`
840-
);
841-
expect(dbgSpy).toHaveBeenCalledWith(
842-
`Found LTS release '12.16.2' for Node version 'lts/-1'`
843-
);
844-
expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
845-
expect(cnSpy).toHaveBeenCalledWith(
846-
`::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
847-
);
848-
});
693+
// act
694+
await main.run();
849695

850-
it('find latest LTS version and install it from manifest (lts/-1)', async () => {
851-
// arrange
852-
inputs['node-version'] = 'lts/-1';
696+
// assert
697+
expect(logSpy).toHaveBeenCalledWith(
698+
'Attempt to resolve LTS alias from manifest...'
699+
);
700+
expect(dbgSpy).toHaveBeenCalledWith(
701+
'Getting manifest from actions/node-versions@main'
702+
);
703+
expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
704+
expect(dbgSpy).toHaveBeenCalledWith(
705+
`LTS alias '${lts}' for Node version 'lts/${lts}'`
706+
);
707+
expect(dbgSpy).toHaveBeenCalledWith(
708+
`Found LTS release '${expectedVersion}' for Node version 'lts/${lts}'`
709+
);
710+
expect(logSpy).toHaveBeenCalledWith(`Found in cache @ ${toolPath}`);
711+
expect(cnSpy).toHaveBeenCalledWith(
712+
`::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
713+
);
714+
}
715+
);
853716

854-
const toolPath = path.normalize('/cache/node/12.16.2/x64');
855-
findSpy.mockImplementation(() => '');
856-
dlSpy.mockImplementation(async () => '/some/temp/path');
857-
exSpy.mockImplementation(async () => '/some/other/temp/path');
858-
cacheSpy.mockImplementation(async () => toolPath);
859-
const expectedUrl =
860-
'https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-linux-x64.tar.gz';
717+
it.each([
718+
[
719+
'erbium',
720+
'12.16.2',
721+
'https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-linux-x64.tar.gz'
722+
],
723+
[
724+
'*',
725+
'14.0.0',
726+
'https://github.com/actions/node-versions/releases/download/14.0.0-20200423.30/node-14.0.0-linux-x64.tar.gz'
727+
],
728+
[
729+
'-1',
730+
'12.16.2',
731+
'https://github.com/actions/node-versions/releases/download/12.16.2-20200423.28/node-12.16.2-linux-x64.tar.gz'
732+
]
733+
])(
734+
'find latest LTS version and install it from manifest (lts/%s)',
735+
async (lts, expectedVersion, expectedUrl) => {
736+
// arrange
737+
inputs['node-version'] = `lts/${lts}`;
738+
739+
const toolPath = path.normalize(`/cache/node/${expectedVersion}/x64`);
740+
findSpy.mockImplementation(() => '');
741+
dlSpy.mockImplementation(async () => '/some/temp/path');
742+
exSpy.mockImplementation(async () => '/some/other/temp/path');
743+
cacheSpy.mockImplementation(async () => toolPath);
744+
const expectedMajor = expectedVersion.split('.')[0];
861745

862-
// act
863-
await main.run();
746+
// act
747+
await main.run();
864748

865-
// assert
866-
expect(logSpy).toHaveBeenCalledWith(
867-
'Attempt to resolve LTS alias from manifest...'
868-
);
869-
expect(dbgSpy).toHaveBeenCalledWith(
870-
'Getting manifest from actions/node-versions@main'
871-
);
872-
expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
873-
expect(dbgSpy).toHaveBeenCalledWith(
874-
`LTS alias '-1' for Node version 'lts/-1'`
875-
);
876-
expect(dbgSpy).toHaveBeenCalledWith(
877-
`Found LTS release '12.16.2' for Node version 'lts/-1'`
878-
);
879-
expect(logSpy).toHaveBeenCalledWith('Attempting to download 12...');
880-
expect(logSpy).toHaveBeenCalledWith(
881-
`Acquiring 12.16.2 - ${os.arch} from ${expectedUrl}`
882-
);
883-
expect(logSpy).toHaveBeenCalledWith('Extracting ...');
884-
expect(logSpy).toHaveBeenCalledWith('Adding to the cache ...');
885-
expect(cnSpy).toHaveBeenCalledWith(
886-
`::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
887-
);
888-
});
749+
// assert
750+
expect(logSpy).toHaveBeenCalledWith(
751+
'Attempt to resolve LTS alias from manifest...'
752+
);
753+
expect(dbgSpy).toHaveBeenCalledWith(
754+
'Getting manifest from actions/node-versions@main'
755+
);
756+
expect(dbgSpy).not.toHaveBeenCalledWith('No manifest cached');
757+
expect(dbgSpy).toHaveBeenCalledWith(
758+
`LTS alias '${lts}' for Node version 'lts/${lts}'`
759+
);
760+
expect(dbgSpy).toHaveBeenCalledWith(
761+
`Found LTS release '${expectedVersion}' for Node version 'lts/${lts}'`
762+
);
763+
expect(logSpy).toHaveBeenCalledWith(
764+
`Attempting to download ${expectedMajor}...`
765+
);
766+
expect(logSpy).toHaveBeenCalledWith(
767+
`Acquiring ${expectedVersion} - ${os.arch} from ${expectedUrl}`
768+
);
769+
expect(logSpy).toHaveBeenCalledWith('Extracting ...');
770+
expect(logSpy).toHaveBeenCalledWith('Adding to the cache ...');
771+
expect(cnSpy).toHaveBeenCalledWith(
772+
`::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
773+
);
774+
}
775+
);
889776

890777
it('fail with unable to parse LTS alias (lts/)', async () => {
891778
// arrange

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy