mirror of
				https://github.com/actions/cache.git
				synced 2025-11-04 00:10:55 +00:00 
			
		
		
		
	Added stateprovider test cases
This commit is contained in:
		
					parent
					
						
							
								b6604364ae
							
						
					
				
			
			
				commit
				
					
						4f42dc56c1
					
				
			
		
					 1 changed files with 71 additions and 0 deletions
				
			
		
							
								
								
									
										71
									
								
								__tests__/stateProvider.test.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								__tests__/stateProvider.test.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,71 @@
 | 
				
			||||||
 | 
					import * as core from "@actions/core";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Events, RefKey, State } from "../src/constants";
 | 
				
			||||||
 | 
					import {
 | 
				
			||||||
 | 
					    IStateProvider,
 | 
				
			||||||
 | 
					    NullStateProvider,
 | 
				
			||||||
 | 
					    StateProvider
 | 
				
			||||||
 | 
					} from "../src/stateProvider";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jest.mock("@actions/core");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					beforeAll(() => {
 | 
				
			||||||
 | 
					    jest.spyOn(core, "getInput").mockImplementation((name, options) => {
 | 
				
			||||||
 | 
					        return jest.requireActual("@actions/core").getInput(name, options);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    jest.spyOn(core, "setOutput").mockImplementation((key, value) => {
 | 
				
			||||||
 | 
					        return jest.requireActual("@actions/core").setOutput(key, value);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					afterEach(() => {
 | 
				
			||||||
 | 
					    delete process.env[Events.Key];
 | 
				
			||||||
 | 
					    delete process.env[RefKey];
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test("StateProvider saves states", async () => {
 | 
				
			||||||
 | 
					    const getStateMock = jest
 | 
				
			||||||
 | 
					        .spyOn(core, "getState")
 | 
				
			||||||
 | 
					        .mockImplementation(name =>
 | 
				
			||||||
 | 
					            jest.requireActual("@actions/core").getState(name)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    const saveStateMock = jest
 | 
				
			||||||
 | 
					        .spyOn(core, "saveState")
 | 
				
			||||||
 | 
					        .mockImplementation((key, value) => {
 | 
				
			||||||
 | 
					            return jest.requireActual("@actions/core").saveState(key, value);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const cacheMatchedKey = "node-cache";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const stateProvider: IStateProvider = new StateProvider();
 | 
				
			||||||
 | 
					    stateProvider.setState("stateKey", "stateValue");
 | 
				
			||||||
 | 
					    stateProvider.setState(State.CacheMatchedKey, cacheMatchedKey);
 | 
				
			||||||
 | 
					    stateProvider.getState("stateKey");
 | 
				
			||||||
 | 
					    stateProvider.getCacheState();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    expect(getStateMock).toHaveBeenCalledTimes(2);
 | 
				
			||||||
 | 
					    expect(saveStateMock).toHaveBeenCalledTimes(2);
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test("NullStateProvider saves outputs", async () => {
 | 
				
			||||||
 | 
					    const getStateMock = jest
 | 
				
			||||||
 | 
					        .spyOn(core, "getState")
 | 
				
			||||||
 | 
					        .mockImplementation(name =>
 | 
				
			||||||
 | 
					            jest.requireActual("@actions/core").getState(name)
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    const setOutputMock = jest
 | 
				
			||||||
 | 
					        .spyOn(core, "setOutput")
 | 
				
			||||||
 | 
					        .mockImplementation((key, value) => {
 | 
				
			||||||
 | 
					            return jest.requireActual("@actions/core").setOutput(key, value);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    const cacheMatchedKey = "node-cache";
 | 
				
			||||||
 | 
					    const nullStateProvider: IStateProvider = new NullStateProvider();
 | 
				
			||||||
 | 
					    nullStateProvider.setState("outputKey", "outputValue");
 | 
				
			||||||
 | 
					    nullStateProvider.setState(State.CacheMatchedKey, cacheMatchedKey);
 | 
				
			||||||
 | 
					    nullStateProvider.getState("outputKey");
 | 
				
			||||||
 | 
					    nullStateProvider.getCacheState();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    expect(getStateMock).toHaveBeenCalledTimes(0);
 | 
				
			||||||
 | 
					    expect(setOutputMock).toHaveBeenCalledTimes(2);
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue