interceptor.test.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. const PAGE_PATH = '/pages/API/interceptor/interceptor'
  2. const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
  3. const isMP = platformInfo.startsWith('mp')
  4. describe('interceptor', () => {
  5. let page
  6. beforeEach(async () => {
  7. page = await program.reLaunch(PAGE_PATH)
  8. await page.waitFor('view')
  9. })
  10. if (!isMP) {
  11. // 小程序不支持拦截navigator组件
  12. it('no Interceptor', async () => {
  13. const newPage = await program.navigateTo('./page1')
  14. await newPage.waitFor('text')
  15. const num = (await newPage.data()).page
  16. await program.navigateBack()
  17. expect(num).toBe(1)
  18. // 新增 navigator 元素
  19. const elementNavigatorButton = await page.$('.navigatorButton')
  20. await elementNavigatorButton.tap()
  21. await page.waitFor(500)
  22. const currentPage = await program.currentPage()
  23. expect(currentPage.path).toBe('pages/API/interceptor/page1')
  24. await program.navigateBack()
  25. })
  26. it('addInterceptor', async () => {
  27. await page.callMethod('addInterceptor')
  28. const newPage = await program.navigateTo('./page1')
  29. await newPage.waitFor('text')
  30. const num = (await newPage.data()).page
  31. await program.navigateBack()
  32. expect(num).toBe(2)
  33. // 新增 navigator 元素
  34. const elementNavigatorButton = await page.$('.navigatorButton')
  35. await elementNavigatorButton.tap()
  36. await page.waitFor(500)
  37. const currentPage = await program.currentPage()
  38. expect(currentPage.path).toBe('pages/API/interceptor/page2')
  39. await program.navigateBack()
  40. })
  41. it('removeInterceptor', async () => {
  42. await page.callMethod('removeInterceptor')
  43. const newPage = await program.navigateTo('./page1')
  44. await newPage.waitFor('text')
  45. const num = (await newPage.data()).page
  46. await program.navigateBack()
  47. expect(num).toBe(1)
  48. // 新增 navigator 元素
  49. const elementNavigatorButton = await page.$('.navigatorButton')
  50. await elementNavigatorButton.tap()
  51. await page.waitFor(500)
  52. const currentPage = await program.currentPage()
  53. expect(currentPage.path).toBe('pages/API/interceptor/page1')
  54. await program.navigateBack()
  55. })
  56. }
  57. it('addInterceptor navigateTo api', async () => {
  58. page = await program.reLaunch(PAGE_PATH)
  59. await page.waitFor('view')
  60. await page.callMethod('addInterceptor')
  61. await page.callMethod('navigateTo')
  62. await page.waitFor(500)
  63. const currentPage = await program.currentPage()
  64. expect(currentPage.path).toBe('pages/API/interceptor/page2')
  65. await program.navigateBack()
  66. })
  67. it('removeInterceptor', async () => {
  68. page = await program.reLaunch(PAGE_PATH)
  69. await page.waitFor('view')
  70. await page.callMethod('addInterceptor')
  71. await page.callMethod('removeInterceptor')
  72. await page.callMethod('navigateTo')
  73. await page.waitFor(500)
  74. const currentPage = await program.currentPage()
  75. expect(currentPage.path).toBe('pages/API/interceptor/page1')
  76. await program.navigateBack()
  77. })
  78. it('addSwitchTabInterceptor', async () => {
  79. await page.callMethod('addSwitchTabInterceptor')
  80. await page.callMethod('switchTab')
  81. await page.waitFor(500)
  82. const currentPage = await program.currentPage()
  83. expect(currentPage.path).toBe('pages/tabBar/API')
  84. })
  85. it('removeSwitchTabInterceptor', async () => {
  86. await page.callMethod('addSwitchTabInterceptor')
  87. await page.callMethod('removeSwitchTabInterceptor')
  88. await page.callMethod('switchTab')
  89. await page.waitFor(500)
  90. const currentPage = await program.currentPage()
  91. expect(currentPage.path).toBe('pages/tabBar/component')
  92. })
  93. })