42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
import test from 'node:test'
|
|
import assert from 'node:assert/strict'
|
|
import { parseArguments, parsePrePushLines, resolveImageTag } from '../deploy-frontend.mjs'
|
|
|
|
test('pre-push input resolves the exact commit being pushed', () => {
|
|
const refs = parsePrePushLines(
|
|
'refs/heads/iteration/august 94764b0e0a950fb841fd6c1e88578af34461f24c refs/heads/iteration/august 0000000000000000000000000000000000000000\n'
|
|
)
|
|
|
|
assert.deepEqual(refs, [
|
|
{
|
|
localRef: 'refs/heads/iteration/august',
|
|
localSha: '94764b0e0a950fb841fd6c1e88578af34461f24c',
|
|
remoteRef: 'refs/heads/iteration/august',
|
|
remoteSha: '0000000000000000000000000000000000000000'
|
|
}
|
|
])
|
|
})
|
|
|
|
test('deleting a remote branch does not resolve a zero commit', () => {
|
|
const refs = parsePrePushLines(
|
|
'refs/heads/iteration/august 0000000000000000000000000000000000000000 refs/heads/iteration/august 94764b0e0a950fb841fd6c1e88578af34461f24c\n'
|
|
)
|
|
|
|
assert.equal(refs[0].localSha, '0000000000000000000000000000000000000000')
|
|
})
|
|
|
|
test('manual branch mode accepts a branch and rejects unknown options', () => {
|
|
assert.deepEqual(parseArguments(['--branch', 'iteration/august']), {
|
|
mode: 'branch',
|
|
branch: 'iteration/august'
|
|
})
|
|
assert.throws(() => parseArguments(['--unknown']), /未知参数/)
|
|
})
|
|
|
|
test('image tag is the commit SHA rather than a mutable branch tag', () => {
|
|
assert.equal(
|
|
resolveImageTag('94764b0e0a950fb841fd6c1e88578af34461f24c'),
|
|
'94764b0e0a950fb841fd6c1e88578af34461f24c'
|
|
)
|
|
})
|