fix: show competitor capability unavailable notice

This commit is contained in:
2026-09-21 09:29:16 +08:00
parent 75658022df
commit ebe8bc0175
2 changed files with 39 additions and 6 deletions
+37 -4
View File
@@ -349,6 +349,32 @@ describe("creator pages", () => {
expect(dataProvider.create).not.toHaveBeenCalled();
});
it("shows the environment reason when competitor preview is unavailable", async () => {
const dataProvider = provider({
create: vi.fn().mockRejectedValue({
status: 503,
message: "creator capability is unavailable",
body: {
error: "creator capability is unavailable",
reason:
"creator capability is unavailable: start account environment: gateway unavailable",
},
}),
});
renderPage(<CreatorCompetitorsPage />, dataProvider);
fireEvent.click(await screen.findByRole("button", { name: "添加监听" }));
fireEvent.change(
screen.getByLabelText("分享内容或链接", { exact: false }),
{ target: { value: "https://v.douyin.com/share-a/" } },
);
fireEvent.click(screen.getByRole("button", { name: "解析并预览作者" }));
expect(
await screen.findByText(
"环境不可用(503):creator capability is unavailable: start account environment: gateway unavailable",
),
).toBeTruthy();
});
it("merges owned and monitored accounts and filters by source", async () => {
const owned = {
id: "account-a",
@@ -486,12 +512,19 @@ describe("creator pages", () => {
renderPage(<CreatorCompetitorsPage />, dataProvider);
fireEvent.click(await screen.findByRole("button", { name: "添加监听" }));
fireEvent.change(screen.getByLabelText("分享内容或链接", { exact: false }), {
target: { value: "复制打开抖音 https://v.douyin.com/share-a/。" },
target: {
value:
"5.38 复制打开抖音,看看【木子不写代码的作品】Github 零基础终极教程! 这是你能看到最完整... https://v.douyin.com/9CdUScDai0U/ TyT:/ :5pm 06/24 L@J.vF",
},
});
const tagInput = screen.getByLabelText("TAGS");
fireEvent.change(tagInput, { target: { value: "重点监测" } });
fireEvent.keyDown(tagInput, { key: "Enter", code: "Enter" });
expect(await screen.findByText(/已提取链接:https:\/\/v\.douyin\.com\/share-a/)).toBeTruthy();
expect(
await screen.findByText(
/已提取链接:https:\/\/v\.douyin\.com\/9CdUScDai0U\//,
),
).toBeTruthy();
fireEvent.click(screen.getByRole("button", { name: "解析并预览作者" }));
expect(await screen.findByText("作者预览")).toBeTruthy();
expect(dataProvider.create).toHaveBeenCalledWith(
@@ -499,7 +532,7 @@ describe("creator pages", () => {
resource: "creator-competitor-preview",
variables: {
platform: "douyin",
share_url: "https://v.douyin.com/share-a/",
share_url: "https://v.douyin.com/9CdUScDai0U/",
},
}),
);
@@ -511,7 +544,7 @@ describe("creator pages", () => {
resource: "creator-competitors",
variables: {
platform: "douyin",
share_url: "https://v.douyin.com/share-a/",
share_url: "https://v.douyin.com/9CdUScDai0U/",
tags: ["重点监测"],
},
}),
@@ -183,8 +183,8 @@ export function CreatorCompetitorsPage() {
});
} catch (parseError) {
setNotice({
variant: "default",
text: parseError.message || "分享内容解析失败",
variant: "destructive",
text: conflictMessage(parseError, "分享内容解析失败"),
});
} finally {
setBusy(false);