58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
import { test } from 'node:test'
|
|
import assert from 'node:assert/strict'
|
|
import { PREVIEW_RUNNER_ATTRIBUTES, main } from '../scripts/preview-runner-setup.mjs'
|
|
import { config } from '../server/config.js'
|
|
|
|
function mockClient(existing = []) {
|
|
const created = []
|
|
return {
|
|
created,
|
|
async listAttributes() {
|
|
return existing.map((key) => ({ key }))
|
|
},
|
|
async createAttribute(attr) {
|
|
created.push(attr.key)
|
|
},
|
|
async waitForAttribute() {},
|
|
}
|
|
}
|
|
|
|
test('Schema: genau die 7 Attribute mit Groessen, alle optional', () => {
|
|
assert.deepEqual(
|
|
PREVIEW_RUNNER_ATTRIBUTES.map((a) => a.key),
|
|
['previewMode', 'previewEnv', 'previewState', 'previewDetected', 'previewBuiltSha', 'previewBuiltAt', 'previewError']
|
|
)
|
|
assert.ok(PREVIEW_RUNNER_ATTRIBUTES.every((a) => a.required === false && a.type === 'string'))
|
|
const sizes = Object.fromEntries(PREVIEW_RUNNER_ATTRIBUTES.map((a) => [a.key, a.size]))
|
|
assert.deepEqual(sizes, {
|
|
previewMode: 10,
|
|
previewEnv: 20000,
|
|
previewState: 20,
|
|
previewDetected: 40,
|
|
previewBuiltSha: 40,
|
|
previewBuiltAt: 40,
|
|
previewError: 500,
|
|
})
|
|
})
|
|
|
|
test('main legt nur fehlende Attribute an', async () => {
|
|
const client = mockClient(['previewMode'])
|
|
const result = await main({ check: false, client, log: () => {} })
|
|
assert.equal(client.created.length, 6)
|
|
assert.ok(!client.created.includes('previewMode'))
|
|
assert.equal(result.missing.length, 6)
|
|
})
|
|
|
|
test('main --check legt nichts an und meldet Fehlende', async () => {
|
|
const client = mockClient(['previewMode'])
|
|
const result = await main({ check: true, client, log: () => {} })
|
|
assert.equal(client.created.length, 0)
|
|
assert.equal(result.missing.length, 6)
|
|
})
|
|
|
|
test('Konfiguration: previewRunner ist standardmaessig aus', () => {
|
|
assert.equal(config.previewRunner.enabled, false)
|
|
assert.equal(config.previewRunner.url, 'http://webklar-preview-runner:8080')
|
|
assert.equal(config.previewRunner.token, '')
|
|
})
|