gongxiangp2/scripts/git-incremental-deploy.test.mjs

19 lines
703 B
JavaScript

import assert from 'node:assert/strict'
import { readFileSync } from 'node:fs'
import { spawnSync } from 'node:child_process'
import test from 'node:test'
test('generated remote deployment payload is valid bash', () => {
const source = readFileSync(new URL('./git-incremental-deploy.ps1', import.meta.url), 'utf8')
const match = source.match(/\$remoteTemplate = @'\r?\n([\s\S]*?)\r?\n'@\r?\n\r?\nWrite-Step/)
assert.ok(match, 'remote deployment template should be present')
const payload = match[1].replace(/__[A-Z0-9_]+__/g, "''")
const result = spawnSync('bash', ['-n'], {
input: payload,
encoding: 'utf8',
})
assert.equal(result.status, 0, result.stderr || result.stdout)
})