Skip to content

Commit 945c152

Browse files
committed
setup vitest for API tests - with mocking
1 parent 91459a3 commit 945c152

11 files changed

Lines changed: 1023 additions & 63 deletions

File tree

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
TURSO_DATABASE_URL=xxx
1+
TURSO_DATABASE_URL=libsql://[db-name].turso.io
22
TURSO_AUTH_TOKEN=xxx
33
TOGGL_API_EMAIL=xxx
44
TOGGL_API_PASSWORD=xxx

__tests__/setup.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { migrate } from "drizzle-orm/libsql/migrator";
2+
import { afterAll, afterEach, beforeAll } from "vitest";
3+
// import { reset } from "drizzle-seed";
4+
5+
import { db } from "@/lib/db";
6+
import { NewClient, clients } from "@/lib/db/schema";
7+
import { sql } from "drizzle-orm";
8+
9+
beforeAll(async () => {
10+
// await reset(db, schema);
11+
// create tables
12+
// await db.run(
13+
// sql.raw(`
14+
// CREATE TABLE IF NOT EXISTS clients (
15+
// client_id TEXT PRIMARY KEY,
16+
// toggl_tag TEXT NOT NULL,
17+
// total_hours_paid REAL NOT NULL DEFAULT 0,
18+
// last_paid_date TEXT NOT NULL
19+
// )
20+
// `),
21+
// );
22+
await migrate(db, {
23+
migrationsFolder: "./src/drizzle",
24+
});
25+
await db.insert(clients).values({
26+
clientId: "123e4567-e89b-12d3-a456-426614174000",
27+
// clientId: "123e4567-e89b-12d3-a456-426614174000",
28+
// TODO - create shortui() - e.g. https://github.com/simplyhexagonal/short-unique-id
29+
togglTag: "daniel",
30+
totalHoursPaid: 40,
31+
lastPaidDate: new Date("2024-01-31").toISOString(),
32+
} as NewClient);
33+
console.log("before all tests");
34+
35+
// const rows = await db.select().from(clients);
36+
// console.dir(rows, { depth: null });
37+
});
38+
39+
// afterAll(async () => {
40+
// await client.end();
41+
// });

drizzle.config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import { defineConfig } from "drizzle-kit";
2+
23
export default defineConfig({
34
dialect: "sqlite",
5+
// dialect: "turso",
46
schema: "./lib/db/schema.ts",
57
dbCredentials: {
68
// url: ":memory:", // inmemory database
79
// or
810
// url: "sqlite.db",
911
// or
1012
url: "file:sqlite.db", // file: prefix is required by libsql
13+
// url: process.env.TURSO_CONNECTION_URL!,
14+
// authToken: process.env.TURSO_AUTH_TOKEN!,
1115
},
1216
});

0 commit comments

Comments
 (0)