修复小程序生成前订阅授权体验

生成前订阅授权页自动弹出微信授权框

授权返回或跳过后继续执行拼图生成提交

避免订阅页改写上一页 web-view URL 导致回首页

更新订阅消息生成前授权与终态发送文档口径
This commit is contained in:
kdletters
2026-06-08 13:48:49 +08:00
parent 3a918687c5
commit 59b5bd1f83
7 changed files with 90 additions and 28 deletions

View File

@@ -21,7 +21,7 @@ describe('subscribe-message mini program bridge', () => {
globalThis.getCurrentPages = vi.fn(() => []);
});
test('requests subscribe message and notifies previous web-view before returning', () => {
test('requests subscribe message and stores result before returning', () => {
const previousPage = {
data: { webViewUrl: 'https://web.test/#tab=create' },
setData: vi.fn(),
@@ -51,10 +51,7 @@ describe('subscribe-message mini program bridge', () => {
SUBSCRIBE_RESULT_STORAGE_KEY,
'request-1:success',
);
expect(previousPage.setData).toHaveBeenCalledWith({
webViewUrl:
'https://web.test/#tab=create&wx_subscribe_result=request-1%3Asuccess',
});
expect(previousPage.setData).not.toHaveBeenCalled();
expect(globalThis.wx.navigateBack).toHaveBeenCalled();
});
@@ -78,11 +75,34 @@ describe('subscribe-message mini program bridge', () => {
SUBSCRIBE_RESULT_STORAGE_KEY,
'request-skip:skip:user_skip',
);
expect(previousPage.setData).toHaveBeenCalledWith({
webViewUrl:
'https://web.test/#wx_subscribe_result=request-skip%3Askip%3Auser_skip',
expect(previousPage.setData).not.toHaveBeenCalled();
expect(globalThis.wx.navigateBack).toHaveBeenCalled();
});
test('auto request starts subscribe popup on page load', () => {
vi.useFakeTimers();
globalThis.wx.requestSubscribeMessage.mockImplementationOnce((options) => {
options.success?.({
m5z7BkkBhJGbcH0cdDeHaeRU2tViDEguP38XdrRRCdU: 'accept',
});
});
const page = createSubscribeMessagePage(
{
setData: vi.fn(),
},
{ templateId: TEST_TEMPLATE_ID },
);
page.onLoad({ requestId: 'request-auto', autoRequest: '1' });
vi.runAllTimers();
expect(globalThis.wx.requestSubscribeMessage).toHaveBeenCalledWith({
tmplIds: [TEST_TEMPLATE_ID],
success: expect.any(Function),
fail: expect.any(Function),
});
expect(globalThis.wx.navigateBack).toHaveBeenCalled();
vi.useRealTimers();
});
test('appendSubscribeResult replaces stale subscribe hash', () => {