81 lines
4.3 KiB
JavaScript
81 lines
4.3 KiB
JavaScript
const assert = require('node:assert/strict')
|
|||
|
|
const test = require('node:test')
|
||
|
|
const { parseEnvironment, resolveMilvusCollection, buildAcceptanceEnvironment } = require('./workbench_acceptance_runtime.cjs')
|
||
|
|
|
||
|
|
test('defaults to Milvus with separate acceptance storage and credentials', () => {
|
||
|
|
const production = Object.freeze({
|
||
|
|
RETRIEVE_DRIVER: 'postgres', MILVUS_COLLECTION: 'production',
|
||
|
|
DB_NAME: 'production_db', JWT_SECRET: 'production-secret', MILVUS_ADDRESS: 'milvus:19530',
|
||
|
|
})
|
||
|
|
const env = buildAcceptanceEnvironment(production, {}, {}, 'acceptance-secret')
|
||
|
|
assert.equal(env.RETRIEVE_DRIVER, 'milvus')
|
||
|
|
assert.equal(env.MILVUS_COLLECTION, 'yawan_acceptance_hybrid')
|
||
|
|
assert.equal(env.MILVUS_ADDRESS, production.MILVUS_ADDRESS)
|
||
|
|
assert.equal(env.DB_NAME, 'yawan_native_acceptance_20260915')
|
||
|
|
assert.equal(env.REDIS_DB, '14')
|
||
|
|
assert.equal(env.JWT_SECRET, 'acceptance-secret')
|
||
|
|
assert.equal(env.DISABLE_REGISTRATION, 'true')
|
||
|
|
assert.equal(production.MILVUS_COLLECTION, 'production')
|
||
|
|
})
|
||
|
|
|
||
|
|
test('accepts a separate collection and explicit retrieve driver override', () => {
|
||
|
|
const env = buildAcceptanceEnvironment({ MILVUS_COLLECTION: 'production' }, {}, {
|
||
|
|
ACCEPTANCE_MILVUS_COLLECTION: 'custom_acceptance', ACCEPTANCE_RETRIEVE_DRIVER: 'postgres',
|
||
|
|
}, 'test-secret')
|
||
|
|
assert.equal(env.MILVUS_COLLECTION, 'custom_acceptance')
|
||
|
|
assert.equal(env.RETRIEVE_DRIVER, 'postgres')
|
||
|
|
})
|
||
|
|
|
||
|
|
test('rejects the production prefix and all dimension-specific names', () => {
|
||
|
|
for (const value of ['production', 'production_768', 'production_1536', 'production_0001']) {
|
||
|
|
assert.throws(() => resolveMilvusCollection('production', value), /isolated/)
|
||
|
|
}
|
||
|
|
assert.throws(() => resolveMilvusCollection('production_768', 'production'), /isolated/)
|
||
|
|
assert.equal(resolveMilvusCollection('production', 'production_acceptance'), 'production_acceptance')
|
||
|
|
})
|
||
|
|
|
||
|
|
test('also protects the implicit production prefix and a conflicting default', () => {
|
||
|
|
assert.throws(() => resolveMilvusCollection(undefined, 'weknora_embeddings'), /isolated/)
|
||
|
|
assert.throws(() => resolveMilvusCollection('', 'weknora_embeddings_1024'), /isolated/)
|
||
|
|
assert.throws(() => resolveMilvusCollection('yawan_acceptance_hybrid'), /isolated/)
|
||
|
|
})
|
||
|
|
|
||
|
|
test('rejects invalid collection values without echoing their contents', () => {
|
||
|
|
const value = 'invalid\nJWT_SECRET=private-test-secret'
|
||
|
|
assert.throws(() => resolveMilvusCollection('production', value), error => {
|
||
|
|
assert.match(error.message, /valid Milvus collection prefix/)
|
||
|
|
assert.ok(!error.message.includes(value))
|
||
|
|
assert.ok(!error.message.includes('private-test-secret'))
|
||
|
|
return true
|
||
|
|
})
|
||
|
|
})
|
||
|
|
|
||
|
|
test('reuses the runtime JWT secret across restarts while refreshing production settings', () => {
|
||
|
|
const previous = parseEnvironment('# Runtime environment\r\nJWT_SECRET=previous-secret==\r\nRETRIEVE_DRIVER=postgres\r\nMILVUS_COLLECTION=production\r\n')
|
||
|
|
const first = buildAcceptanceEnvironment({ MILVUS_ADDRESS: 'new-host:19530' }, previous, {}, 'unused-secret')
|
||
|
|
const restart = buildAcceptanceEnvironment({}, first, {}, 'another-unused-secret')
|
||
|
|
assert.equal(first.JWT_SECRET, 'previous-secret==')
|
||
|
|
assert.equal(restart.JWT_SECRET, first.JWT_SECRET)
|
||
|
|
assert.equal(first.MILVUS_ADDRESS, 'new-host:19530')
|
||
|
|
assert.equal(first.RETRIEVE_DRIVER, 'milvus')
|
||
|
|
assert.equal(first.MILVUS_COLLECTION, 'yawan_acceptance_hybrid')
|
||
|
|
})
|
||
|
|
|
||
|
|
test('never falls back to the production JWT secret', () => {
|
||
|
|
assert.throws(() => buildAcceptanceEnvironment({ JWT_SECRET: 'production-secret' }), /first start/)
|
||
|
|
assert.equal(buildAcceptanceEnvironment({ JWT_SECRET: 'production-secret' }, { JWT_SECRET: '' }, {}, 'new-secret').JWT_SECRET, 'new-secret')
|
||
|
|
})
|
||
|
|
|
||
|
|
test('admin bootstrap is acceptance-specific and persists across restarts', () => {
|
||
|
|
const production = { WEKNORA_BOOTSTRAP_SYSTEM_ADMIN_EMAIL: 'production@example.test', DISABLE_REGISTRATION: 'false' }
|
||
|
|
const initial = buildAcceptanceEnvironment(production, {}, {}, 'secret')
|
||
|
|
assert.equal(initial.WEKNORA_BOOTSTRAP_SYSTEM_ADMIN_EMAIL, '')
|
||
|
|
assert.equal(initial.DISABLE_REGISTRATION, 'true')
|
||
|
|
const configured = buildAcceptanceEnvironment(production, initial, {
|
||
|
|
ACCEPTANCE_BOOTSTRAP_SYSTEM_ADMIN_EMAIL: 'acceptance@example.test',
|
||
|
|
})
|
||
|
|
const restarted = buildAcceptanceEnvironment(production, configured)
|
||
|
|
assert.equal(restarted.WEKNORA_BOOTSTRAP_SYSTEM_ADMIN_EMAIL, 'acceptance@example.test')
|
||
|
|
assert.equal(restarted.DISABLE_REGISTRATION, 'true')
|
||
|
|
})
|