fix: show competitor capability unavailable notice
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user