完善 CI 质量门禁并启用覆盖率阈值

This commit is contained in:
2026-03-03 13:02:31 +08:00
parent 4cd593bc30
commit 41ac21ea12
8 changed files with 213 additions and 19 deletions
+10 -6
View File
@@ -1,5 +1,5 @@
import { describe, it, expect, vi, beforeEach } from "vitest";
import { render, screen } from "@testing-library/react";
import { render, screen, waitFor } from "@testing-library/react";
import React from "react";
import { ToastContext, type ToastContextValue } from "@/hooks/useToast";
@@ -40,19 +40,23 @@ beforeEach(() => {
});
describe("BlindboxPage", () => {
it("renders page heading", () => {
it("renders page heading", async () => {
renderPage();
expect(screen.getByText("周末契约")).toBeInTheDocument();
expect(await screen.findByText("周末契约")).toBeInTheDocument();
await waitFor(() => {
expect(mockFetch).toHaveBeenCalled();
});
});
it("renders back button", () => {
it("renders back button", async () => {
renderPage();
await screen.findByText("周末契约");
const backBtns = screen.getAllByRole("button");
expect(backBtns.length).toBeGreaterThan(0);
});
it("renders subtitle text", () => {
it("renders subtitle text", async () => {
renderPage();
expect(screen.getByText("ADVENTURE ROULETTE")).toBeInTheDocument();
expect(await screen.findByText("ADVENTURE ROULETTE")).toBeInTheDocument();
});
});
+13 -3
View File
@@ -70,9 +70,14 @@ beforeEach(() => {
});
describe("ProfilePage", () => {
it("renders profile heading", () => {
it("renders profile heading", async () => {
renderPage();
expect(screen.getByText("个人中心")).toBeInTheDocument();
expect(await screen.findByText("个人中心")).toBeInTheDocument();
await waitFor(() => {
expect(mockFetch).toHaveBeenCalledWith(
"/api/user?id=user-1",
);
});
});
it("fetches user profile data with correct URL", async () => {
@@ -91,8 +96,13 @@ describe("ProfilePage", () => {
});
});
it("renders navigation element", () => {
it("renders navigation element", async () => {
renderPage();
await waitFor(() => {
expect(mockFetch).toHaveBeenCalledWith(
"/api/user?id=user-1",
);
});
expect(screen.getByRole("navigation")).toBeInTheDocument();
});
});