apply-ddl.test.mjs
1.39 KB
import { test } from 'node:test'
import assert from 'node:assert/strict'
import { resolveDbConfig } from './apply-ddl.mjs'
// ── resolveDbConfig(直接读 config-vars.yaml 解析后的 database: 段)─────────
test('resolveDbConfig maps the database section to mysql2 settings', () => {
const c = resolveDbConfig({
database: { host: 'db.local', port: '3307', user: 'u', password: 'p@ss', schema: 'erp_test' },
})
assert.equal(c.host, 'db.local')
assert.equal(c.port, 3307)
assert.equal(c.user, 'u')
assert.equal(c.password, 'p@ss')
assert.equal(c.database, 'erp_test')
})
test('resolveDbConfig fails closed when database.schema is missing (M1)', () => {
assert.throws(() => resolveDbConfig({ database: { user: 'root' } }, 'config-vars.yaml'), /database\.schema/)
assert.throws(() => resolveDbConfig({}), /database\.schema/)
})
test('resolveDbConfig applies sane defaults for host/port/user/password', () => {
const c = resolveDbConfig({ database: { schema: 's' } })
assert.equal(c.host, '127.0.0.1')
assert.equal(c.port, 3306)
assert.equal(c.user, 'root')
assert.equal(c.password, '')
})
test('resolveDbConfig rejects invalid ports', () => {
assert.throws(() => resolveDbConfig({ database: { schema: 'erp_test', port: 'abc' } }), /database\.port/)
assert.throws(() => resolveDbConfig({ database: { schema: 'erp_test', port: '70000' } }), /database\.port/)
})