const { launchMiniProgram } = require('../helpers/automator'); const { HomePage } = require('../pages/HomePage'); const { LoginPage } = require('../pages/LoginPage'); describe('小程序冒烟测试', () => { let miniProgram; let homePage; beforeAll(async () => { try { miniProgram = await launchMiniProgram(); homePage = new HomePage(miniProgram); } catch (error) { console.warn('小程序连接失败:', error.message); } }); afterAll(async () => {}); test('小程序首页加载与基本内容', async () => { if (!miniProgram) { console.log('跳过:小程序环境未就绪'); return; } // 确保在首页 tabbar await miniProgram.switchTab('/pages/index/index'); await new Promise(resolve => setTimeout(resolve, 1500)); const page = await miniProgram.currentPage(); console.log('当前页面路径:', page.path); expect(page).toBeDefined(); expect(page.path).toBeTruthy(); // 首页数据验证 const data = await homePage.getPageData(); console.log('首页数据:', JSON.stringify(data).substring(0, 200)); expect(data).toBeDefined(); }); test('TabBar 页面间导航', async () => { if (!miniProgram) { console.log('跳过:小程序环境未就绪'); return; } // 先确保在首页 await miniProgram.switchTab('/pages/index/index'); await new Promise(resolve => setTimeout(resolve, 1000)); let page = await miniProgram.currentPage(); console.log('导航测试 - 首页:', page.path); // 切换到搜索 await miniProgram.switchTab('/pages/search/search'); await new Promise(resolve => setTimeout(resolve, 1000)); page = await miniProgram.currentPage(); console.log('导航测试 - 搜索:', page.path); expect(page.path).toBe('pages/search/search'); // 切换到我的课程 await miniProgram.switchTab('/pages/my-courses/my-courses'); await new Promise(resolve => setTimeout(resolve, 1000)); page = await miniProgram.currentPage(); console.log('导航测试 - 我的课程:', page.path); expect(page.path).toBe('pages/my-courses/my-courses'); // 切换到个人中心 await miniProgram.switchTab('/pages/profile/profile'); await new Promise(resolve => setTimeout(resolve, 1000)); page = await miniProgram.currentPage(); console.log('导航测试 - 个人中心:', page.path); expect(page.path).toBe('pages/profile/profile'); // 返回首页 await miniProgram.switchTab('/pages/index/index'); await new Promise(resolve => setTimeout(resolve, 1000)); page = await miniProgram.currentPage(); expect(page.path).toBe('pages/index/index'); }); });