test: add web-admin build id and version.json helpers.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
c527af0b1d
commit
1f0130de53
2 files changed
+92
No files matched your search
@@ -0,0 +1,61 @@
|
||||
// web-admin/scripts/app-build-meta.test.ts
|
||||
import assert from 'node:assert/strict'
|
||||
import fs from 'node:fs'
|
||||
import os from 'node:os'
|
||||
import path from 'node:path'
|
||||
import { describe, it } from 'node:test'
|
||||
import {
|
||||
createAppBuildMeta,
|
||||
readGitShort,
|
||||
versionJsonText,
|
||||
writeVersionJson
|
||||
} from './app-build-meta.ts'
|
||||
|
||||
describe('createAppBuildMeta', () => {
|
||||
it('joins git short hash and timestamp', () => {
|
||||
assert.deepEqual(createAppBuildMeta('3.0.2', 1730000000000, 'a1b2c3d'), {
|
||||
version: '3.0.2',
|
||||
buildId: 'a1b2c3d-1730000000000'
|
||||
})
|
||||
})
|
||||
|
||||
it('uses nogit when the hash is empty', () => {
|
||||
assert.equal(createAppBuildMeta('3.0.2', 5, ' ').buildId, 'nogit-5')
|
||||
})
|
||||
|
||||
it('changes buildId when the timestamp changes', () => {
|
||||
const a = createAppBuildMeta('3.0.2', 1, 'abc')
|
||||
const b = createAppBuildMeta('3.0.2', 2, 'abc')
|
||||
assert.notEqual(a.buildId, b.buildId)
|
||||
})
|
||||
})
|
||||
|
||||
describe('readGitShort', () => {
|
||||
it('trims command output', () => {
|
||||
assert.equal(readGitShort(() => 'abc123\n'), 'abc123')
|
||||
})
|
||||
|
||||
it('returns nogit when the command throws or is blank', () => {
|
||||
assert.equal(
|
||||
readGitShort(() => {
|
||||
throw new Error('no git')
|
||||
}),
|
||||
'nogit'
|
||||
)
|
||||
assert.equal(readGitShort(() => ' '), 'nogit')
|
||||
})
|
||||
})
|
||||
|
||||
describe('version.json', () => {
|
||||
it('writes pretty json with a trailing newline', () => {
|
||||
const text = versionJsonText({ version: '3.0.2', buildId: 'abc-1' })
|
||||
assert.equal(text, '{\n "version": "3.0.2",\n "buildId": "abc-1"\n}\n')
|
||||
})
|
||||
|
||||
it('writes dist/version.json', () => {
|
||||
const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'app-ver-'))
|
||||
writeVersionJson(dir, { version: '3.0.3', buildId: 'def-9' })
|
||||
const raw = fs.readFileSync(path.join(dir, 'version.json'), 'utf8')
|
||||
assert.deepEqual(JSON.parse(raw), { version: '3.0.3', buildId: 'def-9' })
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user