import path from 'node:path'; import { beforeEach, describe, expect, test, vi } from 'vitest'; import { loadCommonJsModule } from '../test-utils/loadCommonJsModule.js'; const shareGridBridgePath = path.resolve( process.cwd(), 'miniprogram/host-bridge/wechatHostBridgeShareGrid.js', ); const shareGridShellPath = path.resolve( process.cwd(), 'miniprogram/shell/wechatShellShareGrid.js', ); let createWechatShareGridPage; function createPage() { const page = createWechatShareGridPage(); return { ...page, data: { ...page.data }, setData(patch) { Object.assign(this.data, patch); }, }; } describe('wechat share-grid shell page', () => { beforeEach(() => { globalThis.wx = { navigateBack: vi.fn(), }; const shareGridBridge = loadCommonJsModule(shareGridBridgePath); const shareGridShell = loadCommonJsModule(shareGridShellPath, { '../host-bridge/wechatHostBridgeShareGrid': shareGridBridge, }); createWechatShareGridPage = shareGridShell.createWechatShareGridPage; }); test('shows a clear error when imageUrl is missing', async () => { const page = createPage(); await page.onLoad({}); expect(page.data.loading).toBe(false); expect(page.data.errorMessage).toBe('缺少封面图。'); }); });