taro-api-mock.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. /**
  2. * Taro API Mock 文件
  3. * 通过 jest.config.js 的 moduleNameMapper 重定向 @tarojs/taro 到这里
  4. */
  5. // 创建所有 Taro API 的 mock 函数
  6. export const mockShowToast = jest.fn()
  7. export const mockShowLoading = jest.fn()
  8. export const mockHideLoading = jest.fn()
  9. export const mockNavigateTo = jest.fn()
  10. export const mockNavigateBack = jest.fn()
  11. export const mockSwitchTab = jest.fn()
  12. export const mockShowModal = jest.fn()
  13. export const mockReLaunch = jest.fn()
  14. export const mockPreviewImage = jest.fn()
  15. export const mockSetNavigationBarTitle = jest.fn()
  16. export const mockOpenCustomerServiceChat = jest.fn()
  17. export const mockUseRouter = jest.fn()
  18. export const mockRequestPayment = jest.fn()
  19. export const mockGetEnv = jest.fn()
  20. export const mockUseLoad = jest.fn()
  21. export const mockUseShareAppMessage = jest.fn()
  22. export const mockUseShareTimeline = jest.fn()
  23. export const mockGetCurrentInstance = jest.fn()
  24. export const mockRemoveStorageSync = jest.fn()
  25. export const mockSetStorageSync = jest.fn()
  26. export const mockGetStorageSync = jest.fn()
  27. export const mockCreateCanvasContext = jest.fn(() => ({
  28. setStrokeStyle: jest.fn(),
  29. setLineWidth: jest.fn(),
  30. setLineCap: jest.fn(),
  31. setFontSize: jest.fn(),
  32. setFillStyle: jest.fn(),
  33. setTextAlign: jest.fn(),
  34. setTextBaseline: jest.fn(),
  35. setShadow: jest.fn(),
  36. setLineDash: jest.fn(),
  37. draw: jest.fn(),
  38. width: 750,
  39. height: 500
  40. }))
  41. // 环境类型常量
  42. export const ENV_TYPE = {
  43. WEAPP: 'WEAPP',
  44. WEB: 'WEB',
  45. RN: 'RN',
  46. SWAN: 'SWAN',
  47. ALIPAY: 'ALIPAY',
  48. TT: 'TT',
  49. QQ: 'QQ',
  50. JD: 'JD',
  51. HARMONY: 'HARMONY'
  52. }
  53. // 导出所有 mock 函数,便于在测试中访问
  54. export default {
  55. // UI 相关
  56. showToast: mockShowToast,
  57. showLoading: mockShowLoading,
  58. hideLoading: mockHideLoading,
  59. showModal: mockShowModal,
  60. previewImage: mockPreviewImage,
  61. setNavigationBarTitle: mockSetNavigationBarTitle,
  62. // 导航相关
  63. navigateTo: mockNavigateTo,
  64. navigateBack: mockNavigateBack,
  65. switchTab: mockSwitchTab,
  66. reLaunch: mockReLaunch,
  67. useRouter: () => mockUseRouter(),
  68. useLoad: (callback: any) => mockUseLoad(callback),
  69. // 微信相关
  70. openCustomerServiceChat: mockOpenCustomerServiceChat,
  71. requestPayment: mockRequestPayment,
  72. // 系统信息
  73. getSystemInfoSync: () => ({
  74. statusBarHeight: 20,
  75. windowWidth: 375,
  76. windowHeight: 667,
  77. pixelRatio: 2
  78. }),
  79. getMenuButtonBoundingClientRect: () => ({
  80. width: 87,
  81. height: 32,
  82. top: 48,
  83. right: 314,
  84. bottom: 80,
  85. left: 227
  86. }),
  87. getEnv: mockGetEnv,
  88. createCanvasContext: mockCreateCanvasContext,
  89. // 存储相关
  90. setStorageSync: mockSetStorageSync,
  91. getStorageSync: mockGetStorageSync,
  92. removeStorageSync: mockRemoveStorageSync,
  93. // 分享相关
  94. useShareAppMessage: mockUseShareAppMessage,
  95. useShareTimeline: mockUseShareTimeline,
  96. // 实例相关
  97. getCurrentInstance: mockGetCurrentInstance,
  98. // 环境类型常量
  99. ENV_TYPE
  100. }
  101. // 为命名导入导出所有函数
  102. export {
  103. mockShowToast as showToast,
  104. mockShowLoading as showLoading,
  105. mockHideLoading as hideLoading,
  106. mockShowModal as showModal,
  107. mockNavigateTo as navigateTo,
  108. mockNavigateBack as navigateBack,
  109. mockSwitchTab as switchTab,
  110. mockReLaunch as reLaunch,
  111. mockPreviewImage as previewImage,
  112. mockSetNavigationBarTitle as setNavigationBarTitle,
  113. mockUseRouter as useRouter,
  114. mockUseLoad as useLoad,
  115. mockOpenCustomerServiceChat as openCustomerServiceChat,
  116. mockRequestPayment as requestPayment,
  117. mockGetEnv as getEnv,
  118. mockUseShareAppMessage as useShareAppMessage,
  119. mockUseShareTimeline as useShareTimeline,
  120. mockGetCurrentInstance as getCurrentInstance,
  121. mockSetStorageSync as setStorageSync,
  122. mockGetStorageSync as getStorageSync,
  123. mockRemoveStorageSync as removeStorageSync,
  124. mockCreateCanvasContext as createCanvasContext
  125. }