Skip to content

Commit

Permalink
Merge branch 'main' into implement-fuse
Browse files Browse the repository at this point in the history
  • Loading branch information
suxls committed Nov 23, 2024
2 parents 61f0e80 + e8a303d commit 31668f4
Show file tree
Hide file tree
Showing 5 changed files with 113 additions and 1 deletion.
1 change: 1 addition & 0 deletions packages/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"scripts": {
"build": "tsc",
"dev": "tsc --watch",
"test": "vitest",
"clean": "rm -rf .turbo dist node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore",
"lint": "eslint",
Expand Down
5 changes: 5 additions & 0 deletions packages/api/tests/mocks/review.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export const data = [
{ id: "1", workTerm: "SPRING", workEnvironment: "REMOTE" },
{ id: "2", workTerm: "FALL", workEnvironment: "INPERSON" },
{ id: "3", workTerm: "SUMMER", workEnvironment: "HYBRID" },
];
102 changes: 102 additions & 0 deletions packages/api/tests/review.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/unbound-method */
import { beforeEach, describe, expect, test, vi } from "vitest";

import type { Session } from "@cooper/auth";
import type { ReviewType } from "@cooper/db/schema";
import { and, eq } from "@cooper/db";
import { db } from "@cooper/db/client";
import { Review } from "@cooper/db/schema";

import { appRouter } from "../src/root";
import { createCallerFactory, createTRPCContext } from "../src/trpc";
import { data } from "./mocks/review";

vi.mock("@cooper/db/client", () => ({
db: {
query: {
Review: {
findMany: vi.fn(),
},
},
},
}));

vi.mock("@cooper/auth", () => ({
auth: vi.fn(),
}));

describe("Review Router", async () => {
beforeEach(() => {
vi.restoreAllMocks();
vi.mocked(db.query.Review.findMany).mockResolvedValue(data as ReviewType[]);
});

const session: Session = {
user: {
id: "1",
},
expires: "1",
};

const ctx = await createTRPCContext({
session,
headers: new Headers(),
});

const caller = createCallerFactory(appRouter)(ctx);

test("list endpoint returns all reviews", async () => {
const reviews = await caller.review.list({});

expect(reviews).toEqual(data);

expect(db.query.Review.findMany).toHaveBeenCalledWith({
orderBy: expect.anything(),
where: undefined,
});
});

test("list endpoint with cycle filter", async () => {
await caller.review.list({
options: {
cycle: "SPRING",
},
});

expect(db.query.Review.findMany).toHaveBeenCalledWith({
orderBy: expect.anything(),
where: and(eq(Review.workTerm, "SPRING")),
});
});

test("list endpoint with term filter", async () => {
await caller.review.list({
options: {
term: "REMOTE",
},
});

expect(db.query.Review.findMany).toHaveBeenCalledWith({
orderBy: expect.anything(),
where: and(eq(Review.workEnvironment, "REMOTE")),
});
});

test("list endpoint with cycle and term filter", async () => {
await caller.review.list({
options: {
cycle: "SPRING",
term: "REMOTE",
},
});

expect(db.query.Review.findMany).toHaveBeenCalledWith({
orderBy: expect.anything(),
where: and(
eq(Review.workTerm, "SPRING"),
eq(Review.workEnvironment, "REMOTE"),
),
});
});
});
2 changes: 1 addition & 1 deletion packages/api/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
"outDir": "dist",
"tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
},
"include": ["src"],
"include": ["src", "tests"],
"exclude": ["node_modules"]
}
4 changes: 4 additions & 0 deletions turbo.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@
"start": {
"cache": false,
"interactive": true
},
"test": {
"cache": true,
"interactive": true
}
},
"globalEnv": [
Expand Down

0 comments on commit 31668f4

Please sign in to comment.