30 lines
933 B
TypeScript
30 lines
933 B
TypeScript
import { setupServer } from "msw/node";
|
|
import { login } from "./login";
|
|
import { loginMock } from "./login.mock";
|
|
import { MOCK_EMAIL, MOCK_PASSWORD } from "./constants";
|
|
|
|
const server = setupServer(loginMock);
|
|
|
|
describe("login", () => {
|
|
beforeAll(() => server.listen({ onUnhandledRequest: "error" }));
|
|
afterEach(() => server.resetHandlers());
|
|
afterAll(() => server.close());
|
|
|
|
describe("happy path", () => {
|
|
it("returns access token and user on valid credentials", async () => {
|
|
const result = await login({ email: MOCK_EMAIL, password: MOCK_PASSWORD });
|
|
|
|
expect(result.accessToken).toBe("mock.access.token");
|
|
expect(result.user).toEqual({ id: "1", email: MOCK_EMAIL });
|
|
});
|
|
});
|
|
|
|
describe("error cases", () => {
|
|
it("throws on invalid credentials", async () => {
|
|
await expect(
|
|
login({ email: "wrong@test.com", password: "wrong" }),
|
|
).rejects.toThrow();
|
|
});
|
|
});
|
|
});
|