diff --git a/__tests__/util.test.ts b/__tests__/util.test.ts index bb7560dc..d60c051c 100644 --- a/__tests__/util.test.ts +++ b/__tests__/util.test.ts @@ -3,7 +3,8 @@ import * as core from '@actions/core'; import { convertVersionToSemver, isVersionSatisfies, - isCacheFeatureAvailable + isCacheFeatureAvailable, + isGhes } from '../src/util'; jest.mock('@actions/cache'); @@ -80,3 +81,42 @@ describe('convertVersionToSemver', () => { expect(actual).toBe(expected); }); }); + +describe('isGhes', () => { + const pristineEnv = process.env; + + beforeEach(() => { + jest.resetModules(); + process.env = { ...pristineEnv }; + }); + + afterAll(() => { + process.env = pristineEnv; + }); + + it('returns false when the GITHUB_SERVER_URL environment variable is not defined', async () => { + process.env['GITHUB_SERVER_URL'] = undefined; + expect(isGhes()).toBeFalsy(); + }); + + it('returns false when the GITHUB_SERVER_URL environment variable is set to github.com', async () => { + process.env['GITHUB_SERVER_URL'] = 'https://github.com'; + expect(isGhes()).toBeFalsy(); + }); + + it('returns false when the GITHUB_SERVER_URL environment variable is set to a GitHub Enterprise Cloud-style URL', async () => { + process.env['GITHUB_SERVER_URL'] = 'https://contoso.ghe.com'; + expect(isGhes()).toBeFalsy(); + }); + + it('returns false when the GITHUB_SERVER_URL environment variable has a .localhost suffix', async () => { + process.env['GITHUB_SERVER_URL'] = 'https://mock-github.localhost'; + expect(isGhes()).toBeFalsy(); + }); + + it('returns true when the GITHUB_SERVER_URL environment variable is set to some other URL', async () => { + process.env['GITHUB_SERVER_URL'] = 'https://src.onpremise.fabrikam.com'; + expect(isGhes()).toBeTruthy(); + }); +}); +