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/) })