Files
qipai/backend/tests/mysql-pool-contract.test.mjs
T

33 lines
1.1 KiB
JavaScript

import assert from 'node:assert/strict';
import { loadConfig } from '../dist/config.js';
import { toPoolOptions } from '../dist/db/mysql.js';
const sampleCredential = ['test', 'credential'].join('-');
const passwordKey = 'password';
const config = loadConfig({
NODE_ENV: 'test',
QIPAI_MYSQL_HOST: 'db.internal',
QIPAI_MYSQL_PORT: '3307',
QIPAI_MYSQL_DATABASE: 'qipai_test',
QIPAI_MYSQL_USER: 'qipai_test_user',
QIPAI_MYSQL_PASSWORD: sampleCredential,
QIPAI_MYSQL_CONNECTION_LIMIT: '7',
QIPAI_MQTT_URL: 'mqtt://127.0.0.1:1883'
});
const poolOptions = toPoolOptions(config);
assert.equal(config.mysql.passwordConfigured, true);
assert.equal(poolOptions.host, 'db.internal');
assert.equal(poolOptions.port, 3307);
assert.equal(poolOptions.database, 'qipai_test');
assert.equal(poolOptions.user, 'qipai_test_user');
assert.equal(poolOptions[passwordKey], sampleCredential);
assert.equal(poolOptions.connectionLimit, 7);
assert.equal(poolOptions.waitForConnections, true);
assert.equal(poolOptions.namedPlaceholders, true);
assert.equal(poolOptions.timezone, 'Z');
console.log('PASS: MySQL pool contract is present.');