uni-push.test.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. jest.setTimeout(30000);
  2. const platformInfo = process.env.uniTestPlatformInfo.toLocaleLowerCase()
  3. const isWeb = platformInfo.startsWith('web')
  4. const isMP = platformInfo.startsWith('mp')
  5. describe('uni-push', () => {
  6. let page;
  7. beforeAll(async () => {
  8. page = await program.reLaunch('/pages/API/uni-push/uni-push')
  9. await page.waitFor('view');
  10. await page.callMethod('updateAutoTest', true)
  11. await page.data('autoTest')
  12. });
  13. // 获取cid | getPushClientId:值
  14. it('getPushClientId', async () => {
  15. await page.callMethod('handleGetClientId')
  16. await page.waitFor(2000);
  17. const jestResult = await page.data('jestResult')
  18. expect(jestResult.clientId.length).toBe(32);
  19. });
  20. if(isWeb || isMP){
  21. // app端需要自定义基座
  22. // 发送通知消息 | sendPushMessage:成功提示
  23. it('sendPushMessage', async () => {
  24. await page.callMethod('handleSendPushMessage')
  25. await page.waitFor(1000);
  26. expect(await page.data('jestResult.sendPushMessageRes')).toBe(0);
  27. });
  28. }
  29. // 注册回调 | onPushMessage:成功
  30. it('onPushMessage', async () => {
  31. await page.callMethod('handleOnPushMessage')
  32. await page.waitFor(1000);
  33. expect(await page.data('isRegister.state')).toBe(true);
  34. });
  35. if(isWeb || isMP){
  36. // 发送通知消息 | sendPushMessage:回调信息
  37. it('sendPushMessage', async () => {
  38. await page.callMethod('handleSendPushMessage')
  39. await page.waitFor(1000);
  40. expect(await page.data('jestResult.onPushMessageType')).toBe("receive");
  41. const info = await page.data('jestResult.onPushMessageCallbackInfo')
  42. // 使用 JSON.parse 将字符串转换回对象
  43. const objCopy = JSON.parse(info);
  44. expect(objCopy).toEqual({
  45. "unipush_version": "2.0",
  46. "payload": {
  47. "data": "测试推送数据"
  48. },
  49. "title": "测试推送标题",
  50. "content": "测试推送内容"
  51. })
  52. });
  53. }
  54. // 注销回调 | offPushMessage:注销成功
  55. it('offPushMessage', async () => {
  56. await page.callMethod('handleOffPushMessage')
  57. await page.waitFor(1000);
  58. expect(await page.data('isRegister.state')).toBe(false);
  59. });
  60. if(isWeb || isMP){
  61. // 发送通知消息 | sendPushMessage:成功提示
  62. it('sendPushMessage', async () => {
  63. await page.callMethod('handleSendPushMessage')
  64. await page.waitFor(300);
  65. expect(await page.data('jestResult.sendPushMessageRes')).toBe(0);
  66. });
  67. }
  68. });