70 lines
2.5 KiB
TypeScript
70 lines
2.5 KiB
TypeScript
import * as cache from '../src/cache'
|
|
|
|
describe('isFeatureAvailable', () => {
|
|
const originalEnv = process.env
|
|
|
|
beforeEach(() => {
|
|
jest.resetModules()
|
|
process.env = {...originalEnv}
|
|
// Clean cache-related environment variables
|
|
delete process.env['ACTIONS_CACHE_URL']
|
|
delete process.env['ACTIONS_RESULTS_URL']
|
|
delete process.env['ACTIONS_CACHE_SERVICE_V2']
|
|
delete process.env['GITHUB_SERVER_URL']
|
|
})
|
|
|
|
afterAll(() => {
|
|
process.env = originalEnv
|
|
})
|
|
|
|
test('returns true for cache service v1 when ACTIONS_CACHE_URL is set', () => {
|
|
process.env['ACTIONS_CACHE_URL'] = 'http://cache.com'
|
|
expect(cache.isFeatureAvailable()).toBe(true)
|
|
})
|
|
|
|
test('returns false for cache service v1 when only ACTIONS_RESULTS_URL is set', () => {
|
|
process.env['ACTIONS_RESULTS_URL'] = 'http://results.com'
|
|
expect(cache.isFeatureAvailable()).toBe(false)
|
|
})
|
|
|
|
test('returns true for cache service v1 when both URLs are set', () => {
|
|
process.env['ACTIONS_CACHE_URL'] = 'http://cache.com'
|
|
process.env['ACTIONS_RESULTS_URL'] = 'http://results.com'
|
|
expect(cache.isFeatureAvailable()).toBe(true)
|
|
})
|
|
|
|
test('returns true for cache service v2 when ACTIONS_RESULTS_URL is set', () => {
|
|
process.env['ACTIONS_CACHE_SERVICE_V2'] = 'true'
|
|
process.env['ACTIONS_RESULTS_URL'] = 'http://results.com'
|
|
expect(cache.isFeatureAvailable()).toBe(true)
|
|
})
|
|
|
|
test('returns false for cache service v2 when only ACTIONS_CACHE_URL is set', () => {
|
|
process.env['ACTIONS_CACHE_SERVICE_V2'] = 'true'
|
|
process.env['ACTIONS_CACHE_URL'] = 'http://cache.com'
|
|
expect(cache.isFeatureAvailable()).toBe(false)
|
|
})
|
|
|
|
test('returns false when no cache URLs are set', () => {
|
|
expect(cache.isFeatureAvailable()).toBe(false)
|
|
})
|
|
|
|
test('returns false for cache service v2 when no URLs are set', () => {
|
|
process.env['ACTIONS_CACHE_SERVICE_V2'] = 'true'
|
|
expect(cache.isFeatureAvailable()).toBe(false)
|
|
})
|
|
|
|
test('returns true for GHES with v1 even when v2 flag is set', () => {
|
|
process.env['GITHUB_SERVER_URL'] = 'https://my-enterprise.github.com'
|
|
process.env['ACTIONS_CACHE_SERVICE_V2'] = 'true'
|
|
process.env['ACTIONS_CACHE_URL'] = 'http://cache.com'
|
|
expect(cache.isFeatureAvailable()).toBe(true)
|
|
})
|
|
|
|
test('returns false for GHES with only ACTIONS_RESULTS_URL', () => {
|
|
process.env['GITHUB_SERVER_URL'] = 'https://my-enterprise.github.com'
|
|
process.env['ACTIONS_RESULTS_URL'] = 'http://results.com'
|
|
expect(cache.isFeatureAvailable()).toBe(false)
|
|
})
|
|
})
|