mirror of
https://github.com/seepine/hash-files.git
synced 2025-07-28 11:03:12 +08:00
feat: add tests for non nondeterministic hashes
This commit is contained in:
parent
2edc564e26
commit
36d6346757
@ -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)
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user