refactor(stores): standardize state machine structure
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user