mirror of
https://github.com/ajnart/homarr.git
synced 2026-01-29 18:59:20 +01:00
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().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);
|
|
});
|