35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
import { buildCreateDatabaseSql, supportsCreateDatabaseCharset } from "../src/lib/createDatabaseSql.ts";
|
|
|
|
test("builds MySQL create database SQL with charset and collation", () => {
|
|
assert.equal(
|
|
buildCreateDatabaseSql({
|
|
databaseType: "mysql",
|
|
driverProfile: "mysql",
|
|
name: "app db",
|
|
charset: "utf8mb4",
|
|
collation: "utf8mb4_unicode_ci",
|
|
}),
|
|
"CREATE DATABASE `app db` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;",
|
|
);
|
|
});
|
|
|
|
test("omits charset clauses for non-MySQL database types", () => {
|
|
assert.equal(
|
|
buildCreateDatabaseSql({
|
|
databaseType: "postgres",
|
|
name: "analytics",
|
|
charset: "utf8mb4",
|
|
collation: "utf8mb4_unicode_ci",
|
|
}),
|
|
'CREATE DATABASE "analytics";',
|
|
);
|
|
});
|
|
|
|
test("recognizes MySQL-compatible driver profiles", () => {
|
|
assert.equal(supportsCreateDatabaseCharset("mysql", "oceanbase"), true);
|
|
assert.equal(supportsCreateDatabaseCharset("mysql", "doris"), true);
|
|
assert.equal(supportsCreateDatabaseCharset("postgres", undefined), false);
|
|
});
|