mariadb.test.ts•1.3 kB
import { describe, expect, test } from 'vitest'
import { inferCapabilities, rewriteConnectionString } from './mariadb'
describe.each([
['8.0.12', { supportsRelationJoins: false }],
['8.0.13', { supportsRelationJoins: true }],
['11.4.7-MariaDB-ubu2404', { supportsRelationJoins: false }],
])('infer capabilities for %s', (version, capabilities) => {
test(`inferCapabilities(${version})`, () => {
expect(inferCapabilities(version)).toEqual(capabilities)
})
})
describe('rewriteConnectionString', () => {
test('should rewrite mysql:// to mariadb://', () => {
const input = 'mysql://user:password@localhost:3306/database?ssl=true&connectionLimit=10&charset=utf8mb4'
const expected = 'mariadb://user:password@localhost:3306/database?ssl=true&connectionLimit=10&charset=utf8mb4'
expect(rewriteConnectionString(input)).toBe(expected)
})
test('should preserve mariadb:// connection strings', () => {
const input = 'mariadb://user:pass@localhost:3306/db'
expect(rewriteConnectionString(input)).toBe(input)
})
test('should preserve configuration objects', () => {
const config = {
host: 'localhost',
port: 3306,
user: 'user',
password: 'pass',
database: 'db',
}
expect(rewriteConnectionString(config)).toBe(config)
})
})