From d46988a476eef401d47c6a108b97c40c7b0f8f98 Mon Sep 17 00:00:00 2001 From: Shubham Tiwari Date: Tue, 29 Mar 2022 16:28:57 +0530 Subject: [PATCH] updated test cases --- __tests__/utils.test.ts | 43 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/__tests__/utils.test.ts b/__tests__/utils.test.ts index 9463849f..9c764ffe 100644 --- a/__tests__/utils.test.ts +++ b/__tests__/utils.test.ts @@ -1,8 +1,12 @@ +import * as cache from '@actions/cache'; import { validateVersion, - validatePythonVersionFormatForPyPy + validatePythonVersionFormatForPyPy, + isCacheFeatureAvailable } from '../src/utils'; +jest.mock('@actions/cache'); + describe('validatePythonVersionFormatForPyPy', () => { it.each([ ['3.6', true], @@ -32,3 +36,40 @@ describe('validateVersion', () => { expect(validateVersion(input)).toEqual(expected); }); }); + +describe('isCacheFeatureAvailable', () => { + it('isCacheFeatureAvailable disabled on GHES', () => { + jest.spyOn(cache, 'isFeatureAvailable').mockImplementation(() => false); + try { + process.env['GITHUB_SERVER_URL'] = 'http://example.com'; + isCacheFeatureAvailable(); + } catch (error) { + expect(error).toHaveProperty( + 'message', + 'Caching is only supported on GHES version >= 3.5. If you are on version >=3.5 Please check with GHES admin if Actions cache service is enabled or not.' + ); + } finally { + delete process.env['GITHUB_SERVER_URL']; + } + }); + + it('isCacheFeatureAvailable disabled on dotcom', () => { + jest.spyOn(cache, 'isFeatureAvailable').mockImplementation(() => false); + try { + process.env['GITHUB_SERVER_URL'] = 'http://github.com'; + isCacheFeatureAvailable(); + } catch (error) { + expect(error).toHaveProperty( + 'message', + 'An internal error has occurred in cache backend. Please check https://www.githubstatus.com/ for any ongoing issue in actions.' + ); + } finally { + delete process.env['GITHUB_SERVER_URL']; + } + }); + + it('isCacheFeatureAvailable is enabled', () => { + jest.spyOn(cache, 'isFeatureAvailable').mockImplementation(() => true); + expect(isCacheFeatureAvailable()).toBe(true); + }); +});