45 lines
1.7 KiB
JavaScript
45 lines
1.7 KiB
JavaScript
import test from 'node:test'
|
|
import assert from 'node:assert/strict'
|
|
import { loadModule } from './load.mjs'
|
|
|
|
const { isValidEnvName, buildEnvPayload, dotColor, isDevPreview, envValueTooLong, MAX_ENV_VARS } = await loadModule('src/lib/previewEnv.js')
|
|
|
|
test('isValidEnvName', () => {
|
|
assert.equal(isValidEnvName('VITE_API_URL'), true)
|
|
assert.equal(isValidEnvName('_X1'), true)
|
|
assert.equal(isValidEnvName('vite_x'), false)
|
|
assert.equal(isValidEnvName('1ABC'), false)
|
|
assert.equal(isValidEnvName(''), false)
|
|
assert.equal(isValidEnvName('A-B'), false)
|
|
})
|
|
|
|
test('buildEnvPayload: set und remove, set gewinnt nicht gegen remove', () => {
|
|
const p = buildEnvPayload({ A: '1', B: '2' }, ['B', 'C'])
|
|
assert.deepEqual(p, { set: { A: '1' }, remove: ['B', 'C'] })
|
|
})
|
|
|
|
test('dotColor', () => {
|
|
assert.equal(dotColor('online'), '#10b981')
|
|
assert.equal(dotColor('building'), '#f59e0b')
|
|
assert.equal(dotColor('sleeping'), '#f59e0b')
|
|
assert.equal(dotColor('starting'), '#f59e0b')
|
|
assert.equal(dotColor('failed'), '#ef4444')
|
|
assert.equal(dotColor('off'), '#a0aec0')
|
|
assert.equal(dotColor(undefined), '#a0aec0')
|
|
})
|
|
|
|
test('isDevPreview', () => {
|
|
assert.equal(isDevPreview({ mode: 'dev' }), true)
|
|
assert.equal(isDevPreview({ mode: 'auto', detected: 'dev:npm' }), true)
|
|
assert.equal(isDevPreview({ mode: 'auto', detected: 'build:npm' }), false)
|
|
assert.equal(isDevPreview({ mode: 'build', detected: 'dev:npm' }), false)
|
|
assert.equal(isDevPreview(null), false)
|
|
})
|
|
|
|
test('envValueTooLong zählt Bytes', () => {
|
|
assert.equal(envValueTooLong('a'.repeat(4096)), false)
|
|
assert.equal(envValueTooLong('a'.repeat(4097)), true)
|
|
assert.equal(envValueTooLong('ä'.repeat(2049)), true)
|
|
assert.equal(MAX_ENV_VARS, 30)
|
|
})
|