extUI.test.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. describe('pages/tabBar/extUI/extUI.nvue', () => {
  2. let page, containsVite, isApp;
  3. containsVite = process.env.UNI_CLI_PATH.includes('uniapp-cli-vite')
  4. isApp = process.env.UNI_PLATFORM.includes('app')
  5. if (containsVite && isApp) {
  6. it('vue3', async () => {
  7. expect(1).toBe(1)
  8. })
  9. return
  10. }
  11. beforeAll(async () => {
  12. // 重新reLaunch至首页,并获取首页page对象(其中 program 是uni-automator自动注入的全局对象)
  13. page = await program.reLaunch('/pages/tabBar/extUI/extUI')
  14. if (process.env.UNI_PLATFORM === "h5") {
  15. await page.waitFor(1000)
  16. }
  17. if (process.env.UNI_PLATFORM === "mp-weixin" || process.env.UNI_PLATFORM === "mp-baidu") {
  18. await page.waitFor(10000)
  19. }
  20. page = await program.currentPage()
  21. await page.waitFor("view")
  22. })
  23. /**
  24. * 点击 u-link 组件
  25. */
  26. it('u-link 点击', async () => {
  27. const helloLink = await page.$('.hello-link')
  28. // 检测首页u-link的文本内容
  29. expect(await helloLink.text()).toBe('https://ext.dcloud.net.cn')
  30. })
  31. /**
  32. * 检测列表长度,是否发生变化
  33. */
  34. it('.uni-panel 列表长度', async () => {
  35. let lists = []
  36. if(process.env.UNI_PLATFORM == 'h5'){
  37. lists = await page.$$('.uni-container.extUI .uni-panel')
  38. }else{
  39. const extUIEl = await page.$('.extUI')
  40. lists = await extUIEl.$$('.uni-panel')
  41. }
  42. console.log('lists.length:',lists.length,(await page.data('lists')).length)
  43. console.log('uniTestPlatformInfo:',process.env.uniTestPlatformInfo)
  44. if(process.env.UNI_PLATFORM == 'app-plus'){
  45. expect(lists.length).toBe(41)
  46. }else if(process.env.UNI_PLATFORM == 'h5' || process.env.UNI_PLATFORM == 'mp-weixin'){
  47. expect(lists.length).toBe(44)
  48. }
  49. })
  50. /**
  51. * 检测打开列表第一个元素是否正确
  52. */
  53. it('.uni-panel-h tap 打开 badge 组件', async () => {
  54. // 检测首个 panel 是视图容器
  55. expect(await (await page.$('.uni-panel-text')).text()).toBe('uni-badge 数字角标')
  56. const listHead = await page.$('.uni-panel-h')
  57. // 是否获取正确的元素
  58. expect(await listHead.attribute('class')).toContain('uni-panel-h')
  59. // 点击第一个 item,验证打开的新页面是否正确
  60. await listHead.tap()
  61. await page.waitFor(2000)
  62. expect((await program.currentPage()).path).toBe('pages/extUI/badge/badge')
  63. await page.waitFor(500)
  64. // 执行 navigateBack 验证是否返回
  65. expect((await program.navigateBack()).path).toBe('pages/tabBar/extUI/extUI')
  66. })
  67. })