Files
cozsweet-frontend-nextjs/src/stores/auth/__tests__/auth-credentials-flow.test.ts
T

37 lines
1.1 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { createActor, waitFor } from "xstate";
import { createTestAuthMachine } from "./auth-machine.test-utils";
describe("auth credentials flow", () => {
it("email login updates login status", async () => {
const actor = createActor(createTestAuthMachine()).start();
actor.send({
type: "AuthEmailLoginSubmitted",
email: "user@example.com",
password: "12345678",
});
await waitFor(actor, (snapshot) => snapshot.matches("idle"));
expect(actor.getSnapshot().context).toMatchObject({
loginStatus: "email",
hasInitialized: true,
});
actor.stop();
});
it("registration completes through the email session", async () => {
const actor = createActor(createTestAuthMachine()).start();
actor.send({
type: "AuthEmailRegisterSubmitted",
email: "user@example.com",
password: "12345678",
username: "User",
confirmPassword: "12345678",
});
await waitFor(actor, (snapshot) => snapshot.matches("idle"));
expect(actor.getSnapshot().context.loginStatus).toBe("email");
actor.stop();
});
});