Skip to content

Commit

Permalink
feat: Add all resolvers unit tests #12
Browse files Browse the repository at this point in the history
  • Loading branch information
regevbr committed Apr 11, 2020
1 parent 47b5e04 commit 9bd00f2
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { objectIterator } from '../../../../../utils/objectIterator/objectIterat
import { isString } from 'ts-type-guards';
import { ITargetMatcher } from '../../../interfaces/ITargetMatcher';

const nodeVersionRegex = /node:([^-]+?)-?/i;
const nodeVersionRegex = /node:([^-.]+)-?/i;

export interface ICircleCiConfigParserOptions {
config: Record<string, any>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,23 @@
import { loggerFactory } from '../../../../../../common/logger';
import { CircleCiConfigParser } from '../../../../../../../src/resolvers/ciResolver/impl/resolvers/circleci/circleCiConfigParser';
import { ITargetMatcher } from '../../../../../../../src/resolvers/ciResolver';
import { mock } from 'jest-mock-extended';
import { mock, mockReset } from 'jest-mock-extended';
import { when } from 'jest-when';

describe(`CircleCi Config Parser`, () => {
const stablePlaceholder = `__STABLE__`;
const latestLtsPlaceholder = `__LTS*__`;
const ltsPlaceholder = `__LTS__`;
const targetMatcherMock = mock<ITargetMatcher>();
const circleCiConfigParser = new CircleCiConfigParser(targetMatcherMock, loggerFactory);

beforeEach(() => {
mockReset(targetMatcherMock);
targetMatcherMock.getStableVersionPlaceholder.mockReturnValue(stablePlaceholder);
targetMatcherMock.getLatestLtsVersionPlaceholder.mockReturnValue(latestLtsPlaceholder);
when(targetMatcherMock.getLtsVersionPlaceholder).calledWith({ codename: `dummy` }).mockReturnValue(ltsPlaceholder);
});

it(`should resolve node js`, async () => {
const versions = await circleCiConfigParser.parse({
config: {
Expand Down Expand Up @@ -55,6 +66,74 @@ describe(`CircleCi Config Parser`, () => {
expect(versions).toEqual({ nodeVersions: new Set([`10`, `8`]) });
});

it(`should resolve current node`, async () => {
const versions = await circleCiConfigParser.parse({
config: {
jobs: {
'node-v6': {
docker: [
{
image: `circleci/node:current`,
},
],
},
},
},
});
expect(versions).toEqual({ nodeVersions: new Set([stablePlaceholder]) });
});

it(`should resolve latest node`, async () => {
const versions = await circleCiConfigParser.parse({
config: {
jobs: {
'node-v6': {
docker: [
{
image: `circleci/node:latest`,
},
],
},
},
},
});
expect(versions).toEqual({ nodeVersions: new Set([stablePlaceholder]) });
});

it(`should resolve lts node`, async () => {
const versions = await circleCiConfigParser.parse({
config: {
jobs: {
'node-v6': {
docker: [
{
image: `circleci/node:lts`,
},
],
},
},
},
});
expect(versions).toEqual({ nodeVersions: new Set([latestLtsPlaceholder]) });
});

it(`should resolve lts code node`, async () => {
const versions = await circleCiConfigParser.parse({
config: {
jobs: {
'node-v6': {
docker: [
{
image: `circleci/node:dummy`,
},
],
},
},
},
});
expect(versions).toEqual({ nodeVersions: new Set([ltsPlaceholder]) });
});

it(`should return empty array when failed to find node js`, async () => {
const versions = await circleCiConfigParser.parse({
config: {
Expand Down

0 comments on commit 9bd00f2

Please sign in to comment.