mirror of
https://github.com/ajnart/homarr.git
synced 2026-02-02 20:59:15 +01:00
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import path from "path";
|
|
import { MySqlContainer } from "@testcontainers/mysql";
|
|
import { drizzle } from "drizzle-orm/mysql2";
|
|
import { migrate } from "drizzle-orm/mysql2/migrator";
|
|
import mysql from "mysql2";
|
|
import { describe, test } from "vitest";
|
|
|
|
import * as mysqlSchema from "../schema/mysql";
|
|
|
|
describe("Mysql Migration", () => {
|
|
test("should add all tables and keys specified in migration files", async () => {
|
|
const mysqlContainer = await new MySqlContainer("mysql:latest").start();
|
|
|
|
const connection = mysql.createConnection({
|
|
host: mysqlContainer.getHost(),
|
|
database: mysqlContainer.getDatabase(),
|
|
port: mysqlContainer.getPort(),
|
|
user: mysqlContainer.getUsername(),
|
|
password: mysqlContainer.getUserPassword(),
|
|
});
|
|
|
|
const database = drizzle(connection, {
|
|
schema: mysqlSchema,
|
|
mode: "default",
|
|
casing: "snake_case",
|
|
});
|
|
|
|
// Run migrations and check if it works
|
|
await migrate(database, {
|
|
migrationsFolder: path.join(__dirname, "..", "migrations", "mysql"),
|
|
});
|
|
|
|
// Check if users table exists
|
|
await database.query.users.findMany();
|
|
|
|
connection.end();
|
|
await mysqlContainer.stop();
|
|
}, 40_000);
|
|
});
|