test(20-01): add failing tests for tag service and route

- Tag service tests: empty array, alphabetical ordering, id+name projection
- Tag route tests: GET /api/tags returns 200, correct tag objects
This commit is contained in:
2026-04-06 07:56:32 +02:00
parent e59e724d84
commit 6f07e874f9
2 changed files with 87 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
import { beforeEach, describe, expect, it } from "bun:test";
import { tags } from "../../src/db/schema.ts";
import { getAllTags } from "../../src/server/services/tag.service.ts";
import { createTestDb } from "../helpers/db.ts";
describe("Tag Service", () => {
let db: Awaited<ReturnType<typeof createTestDb>>["db"];
beforeEach(async () => {
const testDb = await createTestDb();
db = testDb.db;
});
it("returns empty array when no tags exist", async () => {
const result = await getAllTags(db);
expect(result).toEqual([]);
});
it("returns all tags as { id, name } ordered alphabetically", async () => {
await db.insert(tags).values([
{ name: "bikepacking" },
{ name: "ultralight" },
{ name: "accessories" },
]);
const result = await getAllTags(db);
expect(result).toHaveLength(3);
expect(result[0].name).toBe("accessories");
expect(result[1].name).toBe("bikepacking");
expect(result[2].name).toBe("ultralight");
// Should NOT include createdAt
expect(result[0]).toEqual({ id: expect.any(Number), name: "accessories" });
});
});