mirror of
				https://git.mirrors.martin98.com/https://github.com/docker/setup-docker-action
				synced 2025-10-31 23:21:05 +08:00 
			
		
		
		
	basic test for context
This commit is contained in:
		
							parent
							
								
									57e37d3354
								
							
						
					
					
						commit
						dcb7246e5f
					
				
							
								
								
									
										45
									
								
								__tests__/context.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								__tests__/context.test.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,45 @@ | ||||
| import {beforeEach, describe, expect, test} from '@jest/globals'; | ||||
| 
 | ||||
| import * as context from '../src/context'; | ||||
| 
 | ||||
| describe('getInputs', () => { | ||||
|   beforeEach(() => { | ||||
|     process.env = Object.keys(process.env).reduce((object, key) => { | ||||
|       if (!key.startsWith('INPUT_')) { | ||||
|         object[key] = process.env[key]; | ||||
|       } | ||||
|       return object; | ||||
|     }, {}); | ||||
|   }); | ||||
| 
 | ||||
|   // prettier-ignore
 | ||||
|   test.each([ | ||||
|     [ | ||||
|       0, | ||||
|       new Map<string, string>([ | ||||
|         ['version', '23.0.1'], | ||||
|       ]), | ||||
|       { | ||||
|         version: '23.0.1', | ||||
|       } as context.Inputs | ||||
|     ] | ||||
|   ])( | ||||
|     '[%d] given %p as inputs, returns %p', | ||||
|     async (num: number, inputs: Map<string, string>, expected: context.Inputs) => { | ||||
|       inputs.forEach((value: string, name: string) => { | ||||
|         setInput(name, value); | ||||
|       }); | ||||
|       const res = await context.getInputs(); | ||||
|       expect(res).toEqual(expected); | ||||
|     } | ||||
|   ); | ||||
| }); | ||||
| 
 | ||||
| // See: https://github.com/actions/toolkit/blob/master/packages/core/src/core.ts#L67
 | ||||
| function getInputName(name: string): string { | ||||
|   return `INPUT_${name.replace(/ /g, '_').toUpperCase()}`; | ||||
| } | ||||
| 
 | ||||
| function setInput(name: string, value: string): void { | ||||
|   process.env[getInputName(name)] = value; | ||||
| } | ||||
							
								
								
									
										29
									
								
								jest.config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								jest.config.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,29 @@ | ||||
| import fs from 'fs'; | ||||
| import os from 'os'; | ||||
| import path from 'path'; | ||||
| 
 | ||||
| const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'docker-setup-docker-action-')); | ||||
| 
 | ||||
| process.env = Object.assign({}, process.env, { | ||||
|   TEMP: tmpDir, | ||||
|   GITHUB_REPOSITORY: 'docker/setup-docker-action', | ||||
|   RUNNER_TEMP: path.join(tmpDir, 'runner-temp'), | ||||
|   RUNNER_TOOL_CACHE: path.join(tmpDir, 'runner-tool-cache') | ||||
| }) as { | ||||
|   [key: string]: string; | ||||
| }; | ||||
| 
 | ||||
| module.exports = { | ||||
|   clearMocks: true, | ||||
|   moduleFileExtensions: ['js', 'ts'], | ||||
|   testMatch: ['**/*.test.ts'], | ||||
|   transform: { | ||||
|     '^.+\\.ts$': 'ts-jest' | ||||
|   }, | ||||
|   moduleNameMapper: { | ||||
|     '^csv-parse/sync': '<rootDir>/node_modules/csv-parse/dist/cjs/sync.cjs' | ||||
|   }, | ||||
|   collectCoverageFrom: ['src/**/{!(main.ts),}.ts'], | ||||
|   coveragePathIgnorePatterns: ['lib/', 'node_modules/', '__mocks__/', '__tests__/'], | ||||
|   verbose: true | ||||
| }; | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax