37 lines
1.1 KiB
TypeScript
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();
|
|
});
|
|
});
|