mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-08-07 23:53:56 +08:00
fix(reviews): restore modal detail review gating
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { render, screen } from "@testing-library/vue";
|
||||
import { fireEvent, render, screen } from "@testing-library/vue";
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
import ReviewsPanel from "@/components/ReviewsPanel.vue";
|
||||
@@ -56,6 +56,20 @@ describe("ReviewsPanel", () => {
|
||||
expect(fetchReviews).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("hides the submit form when reviews are read-only", () => {
|
||||
render(ReviewsPanel, {
|
||||
props: {
|
||||
appKey: "apm:amd64-apm:office:wps",
|
||||
tags,
|
||||
loggedIn: true,
|
||||
canSubmit: false,
|
||||
},
|
||||
});
|
||||
|
||||
expect(screen.queryByRole("button", { name: "发表评论" })).toBeNull();
|
||||
expect(screen.getByText("安装应用后可发表评论。")).toBeTruthy();
|
||||
});
|
||||
|
||||
it("ignores stale review responses after app key changes", async () => {
|
||||
let resolveFirstSummary!: (summary: RatingSummary) => void;
|
||||
let resolveFirstReviews!: (reviews: AppReview[]) => void;
|
||||
@@ -139,4 +153,21 @@ describe("ReviewsPanel", () => {
|
||||
expect(screen.queryByText("first review")).toBeNull();
|
||||
expect(screen.queryByText("1.0 / 5 (1)")).toBeNull();
|
||||
});
|
||||
|
||||
it("shows a friendly submit error instead of raw network errors", async () => {
|
||||
vi.mocked(submitReview).mockRejectedValueOnce(new Error("Network Error"));
|
||||
render(ReviewsPanel, {
|
||||
props: { appKey: "apm:amd64-apm:office:wps", tags, loggedIn: true },
|
||||
});
|
||||
|
||||
await fireEvent.update(
|
||||
screen.getByPlaceholderText("分享你的使用体验"),
|
||||
"好用",
|
||||
);
|
||||
await fireEvent.click(screen.getByRole("button", { name: "发表评论" }));
|
||||
|
||||
expect(
|
||||
await screen.findByText("无法连接星火账号服务,请稍后重试。"),
|
||||
).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user