跳转至内容
There is a version suitable for your browser's language settings. Would you like to go to the english language of the site?
主页文档

测试

H1

为了确保测试的无副作用和独立性,我们可以在测试开始前清空数据库。

示例

编辑 /src/api-test.ts 文件,onBefore 方法会在每次测试运行之前被执行。

我们可以在这个方法中, 使每次测试开始之前,都清空一次数据库。

/src/api-test.ts
import { $ } from "bun";
import { sql } from "drizzle-orm";
import { useDrizzle } from "./uses/drizzle";
import { configDrizzle } from "./config/drizzle";
export default {
async onBootstrap() {},
async onBefore() {
const drizzle = await useDrizzle();
const schema = await import("../generated/database-schema");
// 寻找出所有的表
const tables: Array<string> = [];
for (const key in schema) "getSQL" in schema[key] && tables.push(getTableName(schema[key] as unknown as Table));
// 将这些表全部删除
for (const table of tables) await drizzle.execute(sql.raw(`DROP TABLE IF EXISTS ${table};`));
// 使用 drizzle-kit 重新创建这些表
await $`bun x drizzle-kit push`;
return {};
},
};