diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts index ef905b4..c6b37c2 100644 --- a/__tests__/main.test.ts +++ b/__tests__/main.test.ts @@ -4,6 +4,7 @@ import * as process from 'process' import * as cp from 'child_process' import * as path from 'path' import {test} from '@jest/globals' +import {expect} from '@jest/globals' test('test sha256', async () => { console.info(hashHex('this is content')) @@ -36,3 +37,25 @@ test('test runs', () => { } console.info(cp.execFileSync(np, [ip], options).toString()) }) + +test('test runs - hash is consistent', () => { + process.env['INPUT_WORKDIR'] = './' + process.env['INPUT_PATTERNS'] = '**/*.ts\n**/package-lock.json' + process.env['INPUT_GITIGNORE'] = 'true' + const np = process.execPath + const ip = path.join(__dirname, '..', 'lib', 'main.js') + const options: cp.ExecFileSyncOptions = { + env: process.env + } + const results: string[] = [] + for (let i = 0; i < 5; i++) { + results.push(cp.execFileSync(np, [ip], options).toString()) + } + // Extract hash from output and check all are the same + const hashes = results.map(output => { + const match = output.match(/Hash: ([a-fA-F0-9]+)/) + return match ? match[1] : null + }) + expect(new Set(hashes).size).toBe(1) + console.info('All hashes:', hashes) +})