From d46988a476eef401d47c6a108b97c40c7b0f8f98 Mon Sep 17 00:00:00 2001
From: Shubham Tiwari <tiwarishub@github.com>
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);
+  });
+});