wxCloudToken.test.ts 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import { getWxCloudToken } from '../../src/utils/wxCloudToken'
  2. let wxApiToken
  3. let wxTriggerApiTokenV0
  4. let scfTriggerSrc
  5. beforeEach(() => {
  6. wxApiToken = process.env.WX_API_TOKEN
  7. wxTriggerApiTokenV0 = process.env.WX_TRIGGER_API_TOKEN_V0
  8. scfTriggerSrc = process.env.TRIGGER_SRC
  9. })
  10. afterEach(() => {
  11. process.env.WX_API_TOKEN = wxApiToken
  12. process.env.WX_TRIGGER_API_TOKEN_V0 = wxTriggerApiTokenV0
  13. process.env.TRIGGER_SRC = scfTriggerSrc
  14. })
  15. // 由定时触发器触发时(TRIGGER_SRC=timer):优先使用 WX_TRIGGER_API_TOKEN_V0,不存在的话,为了兼容兼容旧的开发者工具,也是使用 WX_API_TOKEN
  16. // 非定时触发器触发时(TRIGGER_SRC!=timer): 使用 WX_API_TOKEN
  17. describe('getWxCloudApiToken: 获取WxCloudApiToken', () => {
  18. it('定时触发器触发:只写入 WX_API_TOKEN 时,使用 WX_API_TOKEN', function() {
  19. process.env.TRIGGER_SRC = 'timer'
  20. process.env.WX_API_TOKEN = 'WX_API_TOKEN'
  21. process.env.WX_TRIGGER_API_TOKEN_V0 = ''
  22. process.env.WX_CONTEXT_KEYS = 'WX_API_TOKEN'
  23. expect(getWxCloudToken().wxCloudApiToken).toBe('WX_API_TOKEN')
  24. expect(getWxCloudToken().wxCloudbaseAccesstoken).toBe(undefined)
  25. })
  26. it('定时触发器触发:只写入 WX_TRIGGER_API_TOKEN_V0 时,使用 WX_TRIGGER_API_TOKEN_V0', function() {
  27. process.env.TRIGGER_SRC = 'timer'
  28. process.env.WX_API_TOKEN = ''
  29. process.env.WX_TRIGGER_API_TOKEN_V0 = 'WX_TRIGGER_API_TOKEN_V0'
  30. expect(getWxCloudToken().wxCloudApiToken).toBe('WX_TRIGGER_API_TOKEN_V0')
  31. expect(getWxCloudToken().wxCloudbaseAccesstoken).toBe(undefined)
  32. })
  33. it('定时触发器触发:WX_API_TOKEN 和 WX_TRIGGER_API_TOKEN_V0 共存时优先使用 WX_TRIGGER_API_TOKEN_V0', function() {
  34. process.env.TRIGGER_SRC = 'timer'
  35. process.env.WX_API_TOKEN = 'WX_API_TOKEN'
  36. process.env.WX_TRIGGER_API_TOKEN_V0 = 'WX_TRIGGER_API_TOKEN_V0'
  37. process.env.WX_CONTEXT_KEYS = 'WX_API_TOKEN'
  38. expect(getWxCloudToken().wxCloudApiToken).toBe('WX_TRIGGER_API_TOKEN_V0')
  39. expect(getWxCloudToken().wxCloudbaseAccesstoken).toBe(undefined)
  40. })
  41. it('非定时触发器触发:只写入 WX_API_TOKEN 时,使用 WX_API_TOKEN', function() {
  42. process.env.TRIGGER_SRC = 'timer'
  43. process.env.WX_API_TOKEN = 'WX_API_TOKEN'
  44. process.env.WX_TRIGGER_API_TOKEN_V0 = ''
  45. process.env.WX_CONTEXT_KEYS = 'WX_API_TOKEN'
  46. expect(getWxCloudToken().wxCloudApiToken).toBe('WX_API_TOKEN')
  47. expect(getWxCloudToken().wxCloudbaseAccesstoken).toBe(undefined)
  48. })
  49. it('非定时触发器触发:只写入 WX_TRIGGER_API_TOKEN_V0 时,使用默认值', function() {
  50. process.env.TRIGGER_SRC = 'tcb'
  51. process.env.WX_API_TOKEN = ''
  52. process.env.WX_TRIGGER_API_TOKEN_V0 = 'WX_TRIGGER_API_TOKEN_V0'
  53. expect(getWxCloudToken().wxCloudApiToken).toBe('')
  54. expect(getWxCloudToken().wxCloudbaseAccesstoken).toBe('')
  55. })
  56. it('非定时触发器触发:WX_API_TOKEN 和 WX_TRIGGER_API_TOKEN_V0 共存时, 使用 WX_API_TOKEN', function() {
  57. process.env.TRIGGER_SRC = 'tcb'
  58. process.env.WX_API_TOKEN = 'WX_API_TOKEN'
  59. process.env.WX_TRIGGER_API_TOKEN_V0 = 'WX_TRIGGER_API_TOKEN_V0'
  60. process.env.WX_CONTEXT_KEYS = 'WX_API_TOKEN'
  61. expect(getWxCloudToken().wxCloudApiToken).toBe('WX_API_TOKEN')
  62. expect(getWxCloudToken().wxCloudbaseAccesstoken).toBe(undefined)
  63. })
  64. it('默认为空', function() {
  65. process.env.WX_API_TOKEN = ''
  66. process.env.WX_TRIGGER_API_TOKEN_V0 = ''
  67. expect(getWxCloudToken().wxCloudApiToken).toBe('')
  68. expect(getWxCloudToken().wxCloudbaseAccesstoken).toBe('')
  69. })
  70. it('wxCloudbaseAccesstoken: 从环境变量中读取', function() {
  71. process.env.WX_API_TOKEN = ''
  72. process.env.WX_TRIGGER_API_TOKEN_V0 = ''
  73. process.env.WX_CLOUDBASE_ACCESSTOKEN = 'WX_CLOUDBASE_ACCESSTOKEN'
  74. process.env.WX_CONTEXT_KEYS = 'WX_API_TOKEN,WX_CLOUDBASE_ACCESSTOKEN'
  75. expect(getWxCloudToken().wxCloudApiToken).toBe('')
  76. expect(getWxCloudToken().wxCloudbaseAccesstoken).toBe('WX_CLOUDBASE_ACCESSTOKEN')
  77. })
  78. })