refactor(data): replace schema classes with readonly models

This commit is contained in:
2026-07-17 13:21:40 +08:00
parent 3437312167
commit ae97366a4a
103 changed files with 1220 additions and 2117 deletions
@@ -1,15 +1,15 @@
import { describe, expect, it } from "vitest";
import {
FacebookIdentityResponse,
FacebookPsidLoginResponse,
LoginRequest,
FacebookIdentityResponseSchema,
FacebookPsidLoginResponseSchema,
LoginRequestSchema,
} from "@/data/schemas/auth";
import { UserSchema } from "@/data/schemas/user/user";
describe("facebook identity schema models", () => {
it("parses facebook identity binding responses", () => {
const response = FacebookIdentityResponse.fromJson({
const response = FacebookIdentityResponseSchema.parse({
fbAsid: "asid-1",
fbPsid: "psid-1",
facebookBinding: {
@@ -18,7 +18,7 @@ describe("facebook identity schema models", () => {
},
});
expect(response.toJson()).toMatchObject({
expect(response).toMatchObject({
fbAsid: "asid-1",
fbPsid: "psid-1",
facebookBinding: {
@@ -30,7 +30,7 @@ describe("facebook identity schema models", () => {
it("parses facebook psid login responses for real users and guests", () => {
expect(
FacebookPsidLoginResponse.fromJson({
FacebookPsidLoginResponseSchema.parse({
token: "login-token",
refreshToken: "refresh-token",
matchedBy: "psid",
@@ -39,7 +39,7 @@ describe("facebook identity schema models", () => {
hasCompleteFacebookIdentity: true,
isGuest: false,
user: { id: "user-1", username: "Elio" },
}).toJson(),
}),
).toMatchObject({
isGuest: false,
hasCompleteFacebookIdentity: true,
@@ -47,14 +47,14 @@ describe("facebook identity schema models", () => {
});
expect(
FacebookPsidLoginResponse.fromJson({
FacebookPsidLoginResponseSchema.parse({
token: "guest-token",
matchedBy: "guest",
fbPsid: "psid-1",
hasCompleteFacebookIdentity: false,
isGuest: true,
userId: "guest-1",
}).toJson(),
}),
).toMatchObject({
refreshToken: "",
isGuest: true,
@@ -64,7 +64,7 @@ describe("facebook identity schema models", () => {
});
it("keeps psid in request serialization without a public field declaration", () => {
const request = LoginRequest.from({
const request = LoginRequestSchema.parse({
email: "user@example.com",
password: "password",
platform: "web",
@@ -72,7 +72,7 @@ describe("facebook identity schema models", () => {
psid: "psid-1",
});
expect(request.toJson()).toMatchObject({ psid: "psid-1" });
expect(request).toMatchObject({ psid: "psid-1" });
});
it("accepts facebook identity fields in user schema", () => {