event-bus.test.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. const PAGE_PATH = '/pages/API/event-bus/event-bus'
  2. const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
  3. const isIos = platformInfo.startsWith('ios')
  4. describe('event-bus', () => {
  5. if (isIos) {
  6. it('skip ios', () => {
  7. expect(1).toBe(1)
  8. })
  9. return
  10. }
  11. let page
  12. beforeAll(async () => {
  13. page = await program.reLaunch(PAGE_PATH)
  14. await page.waitFor('view')
  15. })
  16. it('on', async () => {
  17. await page.callMethod('clear')
  18. await page.callMethod('on')
  19. await page.callMethod('emit')
  20. const l1 = (await page.data()).log.length
  21. expect(l1).toBe(1)
  22. await page.callMethod('clear')
  23. await page.callMethod('emit')
  24. const l2 = (await page.data()).log.length
  25. expect(l2).toBe(1)
  26. await page.callMethod('clear')
  27. await page.callMethod('on')
  28. await page.callMethod('emit')
  29. const l3 = (await page.data()).log.length
  30. expect(l3).toBe(2)
  31. await page.callMethod('clear')
  32. await page.callMethod('off')
  33. await page.callMethod('emit')
  34. const l4 = (await page.data()).log.length
  35. expect(l4).toBe(1)
  36. await page.callMethod('clear')
  37. await page.callMethod('off')
  38. await page.callMethod('emit')
  39. const l5 = (await page.data()).log.length
  40. expect(l5).toBe(0)
  41. })
  42. it('once', async () => {
  43. await page.callMethod('clear')
  44. await page.callMethod('once')
  45. await page.callMethod('emit')
  46. const l1 = (await page.data()).log.length
  47. expect(l1).toBe(1)
  48. await page.callMethod('clear')
  49. await page.callMethod('emit')
  50. const l2 = (await page.data()).log.length
  51. expect(l2).toBe(0)
  52. await page.callMethod('clear')
  53. await page.callMethod('once')
  54. await page.callMethod('off')
  55. await page.callMethod('emit')
  56. const l3 = (await page.data()).log.length
  57. expect(l3).toBe(0)
  58. })
  59. it('emit object params', async () => {
  60. await page.callMethod('onObj')
  61. await page.callMethod('emitWithObj')
  62. const objArg = await page.data('objArg')
  63. expect(objArg.a).toBe(1)
  64. expect(objArg.b).toBe(2)
  65. })
  66. it('off-all', async () => {
  67. await page.callMethod('clear')
  68. await page.callMethod('on')
  69. await page.callMethod('on2')
  70. await page.callMethod('emit')
  71. const l1 = (await page.data()).log.length
  72. expect(l1).toBe(2)
  73. await page.callMethod('clear')
  74. const l2 = (await page.data()).log.length
  75. expect(l2).toBe(0)
  76. await page.callMethod('offAll')
  77. await page.callMethod('emit')
  78. const l3 = (await page.data()).log.length
  79. expect(l3).toBe(0)
  80. })
  81. it('test return id', async () => {
  82. await page.callMethod('clear')
  83. expect((await page.data()).log.length).toBe(0)
  84. await page.callMethod('testReturnId')
  85. const logs = await page.data('log')
  86. expect(logs.length).toBe(2)
  87. expect(logs[0]).toBe('触发 test-return-id $on fn')
  88. expect(logs[1]).toBe('触发 test-return-id $once fn')
  89. })
  90. it('test $emit no args', async () => {
  91. await page.callMethod('clear')
  92. expect((await page.data()).log.length).toBe(0)
  93. await page.callMethod('testEmitNoArgs')
  94. const logs = await page.data('log')
  95. expect(logs.length).toBe(1)
  96. expect(logs[0]).toBe('test-emit-no-args')
  97. })
  98. it('test $emit multiple args', async () => {
  99. await page.callMethod('clear')
  100. expect((await page.data()).log.length).toBe(0)
  101. await page.callMethod('testEmitMultipleArgs')
  102. const logs = await page.data('log')
  103. expect(logs.length).toBe(1)
  104. expect(logs[0]).toBe('arg1_2')
  105. })
  106. })