feat(desktop-client/wangyihao): harden token capture and draft submit flow
Inject the YiDun guardian client to obtain ursToken without relying on window.neg, fetch the publish detail (wemediaId/onlineState/...) before saving drafts so 100002 "参数错误" stops blocking submit, downgrade markdown tables to paragraph rows like Baijiahao, and surface friendlier errors for token, draft and publish-click failures. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,9 +2,13 @@ import { describe, expect, it } from "vitest";
|
||||
|
||||
import {
|
||||
QIEHAO_REAL_NAME_AUTH_MESSAGE,
|
||||
WANGYIHAO_DRAFT_SAVE_PARAMETER_MESSAGE,
|
||||
WANGYIHAO_PUBLISH_CLICK_MESSAGE,
|
||||
WANGYIHAO_TOKEN_MISSING_MESSAGE,
|
||||
isQiehaoRealNameAuthError,
|
||||
normalizePublisherErrorMessage,
|
||||
normalizeQiehaoPublishErrorMessage,
|
||||
normalizeWangyihaoPublishErrorMessage,
|
||||
} from "./publisher-errors";
|
||||
|
||||
describe("publisher error normalization", () => {
|
||||
@@ -19,6 +23,31 @@ describe("publisher error normalization", () => {
|
||||
expect(normalizeQiehaoPublishErrorMessage("publish rejected", -5022)).toBe(QIEHAO_REAL_NAME_AUTH_MESSAGE);
|
||||
});
|
||||
|
||||
it("normalizes Wangyihao token missing failures", () => {
|
||||
expect(normalizePublisherErrorMessage("wangyihao_token_missing")).toBe(WANGYIHAO_TOKEN_MISSING_MESSAGE);
|
||||
expect(normalizeWangyihaoPublishErrorMessage("Error: wangyihao_token_missing")).toBe(
|
||||
WANGYIHAO_TOKEN_MISSING_MESSAGE,
|
||||
);
|
||||
});
|
||||
|
||||
it("normalizes Wangyihao draft parameter failures", () => {
|
||||
expect(normalizePublisherErrorMessage("wangyihao_draft_save_failed:wangyihao_error_100002")).toBe(
|
||||
WANGYIHAO_DRAFT_SAVE_PARAMETER_MESSAGE,
|
||||
);
|
||||
expect(normalizeWangyihaoPublishErrorMessage("wangyihao_draft_save_failed:参数错误")).toBe(
|
||||
WANGYIHAO_DRAFT_SAVE_PARAMETER_MESSAGE,
|
||||
);
|
||||
});
|
||||
|
||||
it("normalizes Wangyihao publish click failures", () => {
|
||||
expect(normalizePublisherErrorMessage("wangyihao_publish_click_failed")).toBe(
|
||||
WANGYIHAO_PUBLISH_CLICK_MESSAGE,
|
||||
);
|
||||
expect(normalizeWangyihaoPublishErrorMessage("wangyihao_publish_click_failed:未找到发布按钮")).toBe(
|
||||
WANGYIHAO_PUBLISH_CLICK_MESSAGE,
|
||||
);
|
||||
});
|
||||
|
||||
it("leaves unknown publisher errors unchanged", () => {
|
||||
expect(normalizePublisherErrorMessage("qiehao_publish_failed")).toBe("qiehao_publish_failed");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user