bc3b464349
微信小程序 host-bridge 与 shell 文件改为职责命名 移动壳 host-bridge 与 shell 文件改为职责命名 更新原生壳结构门禁、微信 smoke 和宿主壳文档
61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
import path from 'node:path';
|
|
|
|
import { beforeEach, describe, expect, test, vi } from 'vitest';
|
|
|
|
import { loadCommonJsModule } from '../test-utils/loadCommonJsModule.js';
|
|
|
|
const TEST_TEMPLATE_ID = 'm5z7BkkBhJGbcH0cdDeHaeRU2tViDEguP38XdrRRCdU';
|
|
|
|
const subscribeBridgePath = path.resolve(
|
|
process.cwd(),
|
|
'miniprogram/host-bridge/subscribeMessage.js',
|
|
);
|
|
const subscribeShellPath = path.resolve(
|
|
process.cwd(),
|
|
'miniprogram/shell/subscribeMessage.js',
|
|
);
|
|
|
|
describe('wechat subscribe-message shell page', () => {
|
|
let createSubscribeMessagePage;
|
|
|
|
beforeEach(() => {
|
|
globalThis.wx = {
|
|
navigateBack: vi.fn(),
|
|
requestSubscribeMessage: vi.fn(),
|
|
setStorageSync: vi.fn(),
|
|
};
|
|
const subscribeMessageBridge = loadCommonJsModule(subscribeBridgePath);
|
|
const subscribeMessageShell = loadCommonJsModule(subscribeShellPath, {
|
|
'../host-bridge/subscribeMessage': subscribeMessageBridge,
|
|
});
|
|
createSubscribeMessagePage =
|
|
subscribeMessageShell.createSubscribeMessagePage;
|
|
});
|
|
|
|
test('requests generation-result subscribe template and stores result', () => {
|
|
globalThis.wx.requestSubscribeMessage.mockImplementationOnce((options) => {
|
|
options.success?.({
|
|
[TEST_TEMPLATE_ID]: 'accept',
|
|
});
|
|
});
|
|
const page = createSubscribeMessagePage(
|
|
{ setData: vi.fn() },
|
|
{ templateId: TEST_TEMPLATE_ID },
|
|
);
|
|
page.onLoad({ requestId: 'request-1' });
|
|
|
|
page.requestSubscribe();
|
|
|
|
expect(globalThis.wx.requestSubscribeMessage).toHaveBeenCalledWith({
|
|
tmplIds: [TEST_TEMPLATE_ID],
|
|
success: expect.any(Function),
|
|
fail: expect.any(Function),
|
|
});
|
|
expect(globalThis.wx.setStorageSync).toHaveBeenCalledWith(
|
|
'genarrative:wechat-subscribe-result',
|
|
'request-1:success',
|
|
);
|
|
expect(globalThis.wx.navigateBack).toHaveBeenCalled();
|
|
});
|
|
});
|