@amityco/ts-sdk 0.0.1-beta.31 → 0.0.1-beta.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/cache/api/backupCache.d.ts.map +1 -1
  2. package/dist/cache/api/ingestInCache.d.ts +1 -1
  3. package/dist/cache/api/tests/ingestInCache.test.d.ts +2 -0
  4. package/dist/cache/api/tests/ingestInCache.test.d.ts.map +1 -0
  5. package/dist/cache/api/tests/pushToCache.test.d.ts +2 -0
  6. package/dist/cache/api/tests/pushToCache.test.d.ts.map +1 -0
  7. package/dist/channel/api/addChannelMembers.d.ts.map +1 -1
  8. package/dist/channel/api/getChannel.d.ts.map +1 -1
  9. package/dist/channel/api/tests/addChannelMembers.test.d.ts +2 -0
  10. package/dist/channel/api/tests/addChannelMembers.test.d.ts.map +1 -0
  11. package/dist/channel/api/tests/getChannel.test.d.ts +2 -0
  12. package/dist/channel/api/tests/getChannel.test.d.ts.map +1 -0
  13. package/dist/channel/events/onChannelMemberAdded.d.ts.map +1 -1
  14. package/dist/core/events.d.ts +1 -1
  15. package/dist/core/events.d.ts.map +1 -1
  16. package/dist/core/model/idResolvers.d.ts.map +1 -1
  17. package/dist/core/transports/http.d.ts +5 -0
  18. package/dist/core/transports/http.d.ts.map +1 -1
  19. package/dist/core/transports/test/http.test.d.ts +2 -0
  20. package/dist/core/transports/test/http.test.d.ts.map +1 -0
  21. package/dist/index.cjs.js +61 -51
  22. package/dist/index.esm.js +60 -51
  23. package/dist/index.umd.js +4 -4
  24. package/dist/message/api/deleteMessage.d.ts.map +1 -1
  25. package/dist/message/api/tests/deleteMessage.test.d.ts +2 -0
  26. package/dist/message/api/tests/deleteMessage.test.d.ts.map +1 -0
  27. package/dist/message/{tests/api → api/tests}/getMessage.test.d.ts +0 -0
  28. package/dist/message/api/tests/getMessage.test.d.ts.map +1 -0
  29. package/dist/message/api/tests/getMessages.test.d.ts +2 -0
  30. package/dist/message/api/tests/getMessages.test.d.ts.map +1 -0
  31. package/dist/message/api/tests/queryMessages.test.d.ts +2 -0
  32. package/dist/message/api/tests/queryMessages.test.d.ts.map +1 -0
  33. package/dist/message/api/tests/updateMessage.test.d.ts +2 -0
  34. package/dist/message/api/tests/updateMessage.test.d.ts.map +1 -0
  35. package/dist/reaction/api/addReaction.d.ts.map +1 -1
  36. package/dist/reaction/api/removeReaction.d.ts.map +1 -1
  37. package/dist/reaction/api/tests/addReaction.test.d.ts +2 -0
  38. package/dist/reaction/api/tests/addReaction.test.d.ts.map +1 -0
  39. package/dist/reaction/api/tests/removeReaction.test.d.ts +2 -0
  40. package/dist/reaction/api/tests/removeReaction.test.d.ts.map +1 -0
  41. package/dist/user/api/getUser.d.ts.map +1 -1
  42. package/dist/user/api/queryUsers.d.ts.map +1 -1
  43. package/dist/user/api/tests/queryUsers.test.d.ts +2 -0
  44. package/dist/user/api/tests/queryUsers.test.d.ts.map +1 -0
  45. package/dist/utils/tests/dummy/channel.d.ts +6 -0
  46. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  47. package/dist/utils/tests/dummy/community.d.ts +4 -0
  48. package/dist/utils/tests/dummy/community.d.ts.map +1 -0
  49. package/dist/utils/tests/dummy/file.d.ts +2 -0
  50. package/dist/utils/tests/dummy/file.d.ts.map +1 -0
  51. package/dist/utils/tests/dummy/follow.d.ts +1 -0
  52. package/dist/utils/tests/dummy/follow.d.ts.map +1 -1
  53. package/dist/utils/tests/dummy/index.d.ts +5 -0
  54. package/dist/utils/tests/dummy/index.d.ts.map +1 -1
  55. package/dist/utils/tests/dummy/message.d.ts +5 -0
  56. package/dist/utils/tests/dummy/message.d.ts.map +1 -1
  57. package/dist/utils/tests/dummy/poll.d.ts +3 -0
  58. package/dist/utils/tests/dummy/poll.d.ts.map +1 -0
  59. package/dist/utils/tests/dummy/post.d.ts +15 -1
  60. package/dist/utils/tests/dummy/post.d.ts.map +1 -1
  61. package/dist/utils/tests/dummy/reaction.d.ts +4 -0
  62. package/dist/utils/tests/dummy/reaction.d.ts.map +1 -0
  63. package/dist/utils/tests/dummy/role.d.ts +4 -0
  64. package/dist/utils/tests/dummy/role.d.ts.map +1 -0
  65. package/dist/utils/tests/dummy/user.d.ts +1 -0
  66. package/dist/utils/tests/dummy/user.d.ts.map +1 -1
  67. package/package.json +2 -1
  68. package/src/cache/api/backupCache.ts +0 -1
  69. package/src/cache/api/ingestInCache.ts +2 -2
  70. package/src/cache/api/tests/ingestInCache.test.ts +87 -0
  71. package/src/cache/api/tests/pushToCache.test.ts +57 -0
  72. package/src/channel/api/addChannelMembers.ts +9 -1
  73. package/src/channel/api/getChannel.ts +20 -5
  74. package/src/channel/api/tests/addChannelMembers.test.ts +95 -0
  75. package/src/channel/api/tests/getChannel.test.ts +108 -0
  76. package/src/channel/api/tests/queryChannels.test.ts +20 -0
  77. package/src/channel/events/onChannelMemberAdded.ts +1 -1
  78. package/src/channel/observers/tests/liveChannels.test.ts +0 -1
  79. package/src/core/events.ts +1 -1
  80. package/src/core/model/idResolvers.ts +1 -1
  81. package/src/core/transports/http.ts +3 -17
  82. package/src/core/transports/test/http.test.ts +83 -0
  83. package/src/message/api/deleteMessage.ts +2 -3
  84. package/src/message/api/tests/createMessage.test.ts +74 -51
  85. package/src/message/api/tests/deleteMessage.test.ts +110 -0
  86. package/src/message/api/tests/getMessage.test.ts +121 -0
  87. package/src/message/api/tests/getMessages.test.ts +108 -0
  88. package/src/message/api/tests/queryMessages.test.ts +115 -0
  89. package/src/message/api/tests/updateMessage.test.ts +100 -0
  90. package/src/post/tests/api/queryPosts.test.ts +117 -18
  91. package/src/reaction/api/addReaction.ts +17 -6
  92. package/src/reaction/api/removeReaction.ts +17 -6
  93. package/src/reaction/api/tests/addReaction.test.ts +73 -0
  94. package/src/reaction/api/tests/removeReaction.test.ts +79 -0
  95. package/src/user/api/getUser.ts +1 -2
  96. package/src/user/api/queryUsers.ts +24 -5
  97. package/src/user/api/tests/queryUsers.test.ts +124 -0
  98. package/src/utils/tests/dummy/channel.ts +9 -1
  99. package/src/utils/tests/dummy/community.ts +44 -0
  100. package/src/utils/tests/dummy/file.ts +20 -0
  101. package/src/utils/tests/dummy/follow.ts +6 -0
  102. package/src/utils/tests/dummy/index.ts +9 -0
  103. package/src/utils/tests/dummy/message.ts +8 -1
  104. package/src/utils/tests/dummy/poll.ts +43 -0
  105. package/src/utils/tests/dummy/post.ts +65 -4
  106. package/src/utils/tests/dummy/reaction.ts +22 -0
  107. package/src/utils/tests/dummy/role.ts +21 -0
  108. package/src/utils/tests/dummy/user.ts +7 -1
  109. package/dist/message/tests/api/getMessage.test.d.ts.map +0 -1
  110. package/src/message/tests/api/getMessage.test.ts +0 -96
@@ -1 +1 @@
1
- {"version":3,"file":"deleteMessage.d.ts","sourceRoot":"","sources":["../../../src/message/api/deleteMessage.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa;gBACb,MAAM,OAAO,CAAC,WAAW,CAAC,GACpC,QAAQ,MAAM,OAAO,CAAC;IAgBzB;;;;;;;;;;;;OAYG;8BAEU,MAAM,OAAO,CAAC,WAAW,CAAC,GACpC,MAAM,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS;CAjBzC,CAAC"}
1
+ {"version":3,"file":"deleteMessage.d.ts","sourceRoot":"","sources":["../../../src/message/api/deleteMessage.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa;gBACb,MAAM,OAAO,CAAC,WAAW,CAAC,GACpC,QAAQ,MAAM,OAAO,CAAC;IAgBzB;;;;;;;;;;;;OAYG;8BAEU,MAAM,OAAO,CAAC,WAAW,CAAC,GACpC,MAAM,MAAM,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS;CAjBzC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deleteMessage.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteMessage.test.d.ts","sourceRoot":"","sources":["../../../../src/message/api/tests/deleteMessage.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMessage.test.d.ts","sourceRoot":"","sources":["../../../../src/message/api/tests/getMessage.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getMessages.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMessages.test.d.ts","sourceRoot":"","sources":["../../../../src/message/api/tests/getMessages.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=queryMessages.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryMessages.test.d.ts","sourceRoot":"","sources":["../../../../src/message/api/tests/queryMessages.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=updateMessage.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateMessage.test.d.ts","sourceRoot":"","sources":["../../../../src/message/api/tests/updateMessage.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"addReaction.d.ts","sourceRoot":"","sources":["../../../src/reaction/api/addReaction.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,WAAW;oBACP,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,QAAQ,OAAO,CAAC;IAoBnB;;;;;;;;;;;;;;SAcK;kCAEY,MAAM,aAAa,eACrB,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,OAAO,GAAG,SAAS;CArBrB,CAAC"}
1
+ {"version":3,"file":"addReaction.d.ts","sourceRoot":"","sources":["../../../src/reaction/api/addReaction.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,WAAW;oBACP,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,QAAQ,OAAO,CAAC;IA4BnB;;;;;;;;;;;;;;SAcK;kCAEY,MAAM,aAAa,eACrB,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,OAAO,GAAG,SAAS;CArBrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"removeReaction.d.ts","sourceRoot":"","sources":["../../../src/reaction/api/removeReaction.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,cAAc;oBACV,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,QAAQ,OAAO,CAAC;IAkBnB;;;;;;;;;;;;;;SAcK;kCAEY,MAAM,aAAa,eACrB,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,OAAO,GAAG,SAAS;CArBrB,CAAC"}
1
+ {"version":3,"file":"removeReaction.d.ts","sourceRoot":"","sources":["../../../src/reaction/api/removeReaction.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,cAAc;oBACV,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,QAAQ,OAAO,CAAC;IA0BnB;;;;;;;;;;;;;;SAcK;kCAEY,MAAM,aAAa,eACrB,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,OAAO,GAAG,SAAS;CArBrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=addReaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addReaction.test.d.ts","sourceRoot":"","sources":["../../../../src/reaction/api/tests/addReaction.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=removeReaction.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeReaction.test.d.ts","sourceRoot":"","sources":["../../../../src/reaction/api/tests/removeReaction.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"getUser.d.ts","sourceRoot":"","sources":["../../../src/user/api/getUser.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO;aACV,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAE3B,QAAQ,MAAM,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAwCpC;;;;;;;;;;;;OAYG;oBACwB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;CAfrF,CAAC"}
1
+ {"version":3,"file":"getUser.d.ts","sourceRoot":"","sources":["../../../src/user/api/getUser.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO;aACV,MAAM,IAAI,CAAC,QAAQ,CAAC,qBAE3B,QAAQ,MAAM,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IAuCpC;;;;;;;;;;;;OAYG;oBACwB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;CAfrF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryUsers.d.ts","sourceRoot":"","sources":["../../../src/user/api/queryUsers.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU;aACd;QACL,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,aAAa,CAAC;QACxD,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;KACnB,GACA,QAAQ,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAwCjD;;;;;;;;;;;;;OAaG;oBAEM,WAAW,iBAAiB,CAAC,CAAC,CAAC,CAAC,GACtC,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,SAAS;CAlBnD,CAAC"}
1
+ {"version":3,"file":"queryUsers.d.ts","sourceRoot":"","sources":["../../../src/user/api/queryUsers.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU;aACd;QACL,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;QAC3B,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,aAAa,CAAC;QACxD,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;KACnB,GACA,QAAQ,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAiDjD;;;;;;;;;;;;;OAaG;oBAEM,WAAW,iBAAiB,CAAC,CAAC,CAAC,CAAC,GACtC,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,SAAS;CAlBnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=queryUsers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryUsers.test.d.ts","sourceRoot":"","sources":["../../../../src/user/api/tests/queryUsers.test.ts"],"names":[],"mappings":""}
@@ -71,4 +71,10 @@ export declare const channelUserQueryResponsePage3: {
71
71
  files: never[];
72
72
  };
73
73
  };
74
+ export declare const channelPayload: {
75
+ channels: Amity.Channel<any>[];
76
+ channelUsers: Amity.Membership<"channel">[];
77
+ users: Amity.User[];
78
+ files: Amity.File<"image">[];
79
+ };
74
80
  //# sourceMappingURL=channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/channel.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAO/B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAO/B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAK/B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAK7B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAI7B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAO7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAYpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAKpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAapD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAGpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAYpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAYpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAGpD,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;CAQhC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;CAQrC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;CAQpC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;CAQzC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;CAQzC,CAAC"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/channel.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAO/B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAO/B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAK/B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAK7B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAI7B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAO7B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAYpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAKpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAapD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAGpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAYpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAYpD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAGpD,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;CAQhC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;CAQrC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;CAQpC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;CAQzC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;CAQzC,CAAC;AAGF,eAAO,MAAM,cAAc;;;;;CAK1B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const community11: Amity.Community;
2
+ export declare const communityUser11: Amity.Membership<'community'>;
3
+ export declare const communityPayload: Amity.CommunityPayload;
4
+ //# sourceMappingURL=community.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/community.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,SAoB/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAYzD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,gBAKpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const file11: Amity.File<'image'>;
2
+ //# sourceMappingURL=file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/file.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAmBtC,CAAC"}
@@ -9,4 +9,5 @@ export declare const follows: {
9
9
  page1: Amity.FollowStatus[];
10
10
  page2: Amity.FollowStatus[];
11
11
  };
12
+ export declare const followPayload: Amity.FollowersPayload;
12
13
  //# sourceMappingURL=follow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"follow.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/follow.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAEF,eAAO,MAAM,OAAO;;;;CAInB,CAAC"}
1
+ {"version":3,"file":"follow.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/follow.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,YAK5B,CAAC;AAEF,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,gBAIjC,CAAC"}
@@ -4,8 +4,13 @@ export declare const rolesAndPermissions: {
4
4
  permissions: never[];
5
5
  };
6
6
  export * from './user';
7
+ export * from './role';
8
+ export * from './file';
7
9
  export * from './post';
10
+ export * from './poll';
8
11
  export * from './follow';
12
+ export * from './reaction';
9
13
  export * from './channel';
14
+ export * from './community';
10
15
  export * from './message';
11
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,QAA2B,CAAC;AAC7C,eAAO,MAAM,mBAAmB;;;CAAiC,CAAC;AAElE,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,QAA2B,CAAC;AAC7C,eAAO,MAAM,mBAAmB;;;CAAiC,CAAC;AAElE,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AAEvB,cAAc,QAAQ,CAAC;AAEvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAE3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAE5B,cAAc,WAAW,CAAC"}
@@ -16,4 +16,9 @@ export declare const messageQueryResponse: {
16
16
  };
17
17
  };
18
18
  };
19
+ export declare const messagePayload: {
20
+ messages: Amity.Message<any>[];
21
+ files: Amity.File<"image">[];
22
+ users: Amity.User[];
23
+ };
19
24
  //# sourceMappingURL=message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/message.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAa7B,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;CAUhC,CAAC"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/message.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAa7B,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;CAUhC,CAAC;AAGF,eAAO,MAAM,cAAc;;;;CAI1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const poll11: Amity.Poll;
2
+ export declare const pollPayload: Amity.PollPayload;
3
+ //# sourceMappingURL=poll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/poll.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAmC1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,WAG/B,CAAC"}
@@ -1,4 +1,7 @@
1
- export declare const post1: Amity.Post;
1
+ export declare const post11: Amity.Post;
2
+ export declare const comment11: Amity.Comment;
3
+ export declare const post12: Amity.Post;
4
+ export declare const post13: Amity.Post;
2
5
  export declare const posts: {
3
6
  targetId: string;
4
7
  targetType: Amity.PostTargetType;
@@ -6,4 +9,15 @@ export declare const posts: {
6
9
  page2: string[];
7
10
  page3: string[];
8
11
  };
12
+ export declare const commentPayload: Amity.CommentPayload;
13
+ export declare const postPayload: Amity.PostPayload;
14
+ export declare const postQueryResponse: {
15
+ data: {
16
+ posts: Amity.Post<any>[];
17
+ files: never[];
18
+ paging: {
19
+ next: string;
20
+ };
21
+ };
22
+ };
9
23
  //# sourceMappingURL=post.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/post.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,IAoBzB,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;CAMjB,CAAC"}
1
+ {"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/post.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAoB1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAuB7B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;CAMjB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,cAGlC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,WAM/B,CAAC;AAIF,eAAO,MAAM,iBAAiB;;;;;;;;CAQ7B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const reaction11: Amity.Reaction;
2
+ export declare const reactor11: Amity.Reactor;
3
+ export declare const reactionPayload: Amity.ReactionPayload;
4
+ //# sourceMappingURL=reaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/reaction.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,QAO9B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAK7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,eAGnC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const role11: Amity.Role;
2
+ export declare const role12: Amity.Role;
3
+ export declare const rolePayload: Amity.RolePayload;
4
+ //# sourceMappingURL=role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/role.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAO1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAO1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,WAE/B,CAAC"}
@@ -12,4 +12,5 @@ export declare const userQueryResponse: {
12
12
  };
13
13
  };
14
14
  };
15
+ export declare const userPayload: Amity.UserPayload;
15
16
  //# sourceMappingURL=user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/user.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAQ1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;CAS7B,CAAC"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/user.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAQ1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;CAS7B,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,WAG/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "0.0.1-beta.31",
3
+ "version": "0.0.1-beta.33",
4
4
  "license": "CC-BY-ND-4.0",
5
5
  "author": "amity.co <developers@amity.co> (https://amity.co)",
6
6
  "description": "Amity Social Cloud Typescript SDK",
@@ -59,6 +59,7 @@
59
59
  "js-base64": "^3.7.2",
60
60
  "mitt": "^3.0.0",
61
61
  "mqtt": "^4.3.7",
62
+ "qs": "^6.11.0",
62
63
  "react-native-uuid": "^2.0.1",
63
64
  "socket.io-client": "2.2.0",
64
65
  "ts-jest": "^28.0.3"
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
1
  import AsyncStorage from '@react-native-async-storage/async-storage';
3
2
 
4
3
  import { getActiveClient } from '~/client/api/activeClient';
@@ -6,7 +6,7 @@ import { upsertInCache } from './upsertInCache';
6
6
  * Ingest a payload (v3) into the cache
7
7
  *
8
8
  * @param payload a "backend v3" payload object
9
- * @param order the order of the keys to process (in case of need)
9
+ * @param options caching options like cachedAt or offline
10
10
  *
11
11
  * @category Cache
12
12
  * @hidden
@@ -20,9 +20,9 @@ export const ingestInCache = (
20
20
  if (!type) return;
21
21
 
22
22
  const resolver = getResolver(type);
23
+
23
24
  models.forEach(model => {
24
25
  upsertInCache(
25
- // eslint-disable @typescript-eslint no-explicit-any
26
26
  [type, 'get', resolver(model as any)], // this 'any' cannot be avoided, sorry.
27
27
  model,
28
28
  options,
@@ -0,0 +1,87 @@
1
+ import { PAYLOAD2MODEL, getResolver } from '~/core/model';
2
+
3
+ import {
4
+ userPayload,
5
+ rolePayload,
6
+ channelPayload,
7
+ messagePayload,
8
+ communityPayload,
9
+ postPayload,
10
+ commentPayload,
11
+ pollPayload,
12
+ reactionPayload,
13
+ followPayload,
14
+ user11,
15
+ } from '~/utils/tests';
16
+
17
+ import { enableCache, disableCache, pullFromCache } from '..';
18
+ import { ingestInCache } from '../ingestInCache';
19
+
20
+ describe('ingestInCache', () => {
21
+ beforeAll(enableCache);
22
+ afterAll(disableCache);
23
+
24
+ const payloads: [keyof Amity.Model, Record<string, Record<string, unknown>[]>][] = [
25
+ ['user', userPayload],
26
+ ['role', rolePayload],
27
+ ['channel', channelPayload],
28
+ ['message', messagePayload],
29
+ ['community', communityPayload],
30
+ ['post', postPayload],
31
+ ['comment', commentPayload],
32
+ ['poll', pollPayload],
33
+ ['reaction', reactionPayload],
34
+ ['follow', followPayload],
35
+ ];
36
+
37
+ test.each(payloads)('it should add %s payload to cache', (model, payload) => {
38
+ ingestInCache(payload);
39
+
40
+ Object.entries(payload).forEach(([k, v]) => {
41
+ const type = PAYLOAD2MODEL[k];
42
+ const resolver = getResolver(type);
43
+
44
+ expect(type).toBeDefined();
45
+
46
+ v.forEach(entity =>
47
+ expect(pullFromCache([type, 'get', resolver(entity as any)])).toBeDefined(),
48
+ );
49
+ });
50
+ });
51
+
52
+ test('it should not update cache if model invalid', () => {
53
+ const invalidPayload = {
54
+ invalids: [{ invalidId: 'invalidId' }],
55
+ users: [user11],
56
+ };
57
+
58
+ ingestInCache(invalidPayload);
59
+
60
+ expect(pullFromCache(['invalid', 'get', 'invalidId'])).toBeUndefined();
61
+ expect(pullFromCache(['user', 'get', user11.userId])).toBeDefined();
62
+ });
63
+ });
64
+
65
+ describe('ingestInCache -> cachedAt', () => {
66
+ beforeAll(enableCache);
67
+ afterAll(disableCache);
68
+
69
+ test('it should update cache if cachedAt is valid', () => {
70
+ const now = Date.now();
71
+ ingestInCache(userPayload, { cachedAt: now });
72
+
73
+ const { data, cachedAt } = pullFromCache(['user', 'get', user11.userId])!;
74
+
75
+ expect(data).toBeDefined();
76
+ expect(cachedAt).toBe(now);
77
+ });
78
+
79
+ test('it should update cache if cachedAt is expired', () => {
80
+ ingestInCache(userPayload, { cachedAt: -1 });
81
+
82
+ const { data, cachedAt } = pullFromCache(['user', 'get', user11.userId])!;
83
+
84
+ expect(data).toBeDefined();
85
+ expect(cachedAt).toBe(-1);
86
+ });
87
+ });
@@ -0,0 +1,57 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { connectClient, disconnectClient, user11 } from '~/utils/tests';
3
+
4
+ import { pushToCache, enableCache, disableCache, pullFromCache } from '..';
5
+ import { encodeKey } from '../../utils';
6
+
7
+ describe('pushToCache', () => {
8
+ beforeAll(connectClient);
9
+ afterAll(disconnectClient);
10
+
11
+ describe('- cache enabled', () => {
12
+ beforeEach(enableCache);
13
+ afterEach(disableCache);
14
+
15
+ const cacheKey = ['user', 'get', user11.userId];
16
+
17
+ test('it should return true if data added to cache', () => {
18
+ const recieved = pushToCache(cacheKey, user11);
19
+
20
+ expect(recieved).toBe(true);
21
+ });
22
+
23
+ test('it should add data to cache', () => {
24
+ const returned = pushToCache(cacheKey, user11);
25
+ const recieved = pullFromCache(cacheKey)?.data;
26
+
27
+ expect(returned).toBe(true);
28
+ expect(recieved).toBe(user11);
29
+ });
30
+
31
+ test('it should persist data offline', () => {
32
+ const { cache } = getActiveClient();
33
+ const encodedKey = encodeKey(cacheKey);
34
+ const options = { offline: true, cachedAt: Date.now() };
35
+
36
+ const addedUser = pushToCache(cacheKey, user11, options);
37
+
38
+ const expected = {
39
+ key: cacheKey,
40
+ data: user11,
41
+ ...options,
42
+ };
43
+ const recieved = cache?.data[encodedKey];
44
+
45
+ expect(addedUser).toBe(true);
46
+ expect(recieved).toStrictEqual(expected);
47
+ });
48
+ });
49
+
50
+ describe('- no cache', () => {
51
+ test('it should return false if no cache', () => {
52
+ const recieved = pushToCache(['model', 'key', 'modleId'], {});
53
+
54
+ expect(recieved).toBe(false);
55
+ });
56
+ });
57
+ });
@@ -36,7 +36,15 @@ export const addChannelMembers = async (
36
36
 
37
37
  if (client.cache) ingestInCache(data);
38
38
 
39
- fireEvent('v3.channel.didAddUsers', data);
39
+ /*
40
+ * should fire event for each user that was added
41
+ */
42
+ userIds.forEach(id =>
43
+ fireEvent('v3.channel.didAddUsers', {
44
+ ...data,
45
+ channelUsers: data.channelUsers.filter(u => u.userId === id),
46
+ }),
47
+ );
40
48
 
41
49
  const { channelUsers } = data;
42
50
  return !!channelUsers.find(
@@ -3,6 +3,10 @@ import { getActiveClient } from '~/client/api';
3
3
  import { pullFromCache } from '~/cache/api';
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
 
6
+ import { isInTombstone } from '~/cache/api/isInTombstone';
7
+ import { checkIfShouldGoesToTombstone } from '~/cache/utils';
8
+ import { pushToTombstone } from '~/cache/api/pushToTombstone';
9
+
6
10
  import { prepareChannelPayload } from '../utils';
7
11
 
8
12
  /**
@@ -25,12 +29,23 @@ export const getChannel = async (
25
29
  const client = getActiveClient();
26
30
  client.log('channel/getChannel', channelId);
27
31
 
28
- // API-FIX: endpoint should not be /list, parameters should be querystring.
29
- const { data: payload } = await client.http.get<Amity.ChannelPayload>(
30
- `/api/v3/channels/${encodeURIComponent(channelId)}`,
31
- );
32
+ isInTombstone('channel', channelId);
33
+
34
+ let data: Amity.ChannelPayload<any, Amity.Channel>;
35
+
36
+ try {
37
+ const { data: payload } = await client.http.get<Amity.ChannelPayload>(
38
+ `/api/v3/channels/${encodeURIComponent(channelId)}`,
39
+ );
40
+
41
+ data = prepareChannelPayload(payload);
42
+ } catch (error) {
43
+ if (checkIfShouldGoesToTombstone((error as Amity.ErrorResponse)?.code)) {
44
+ pushToTombstone('channel', channelId);
45
+ }
32
46
 
33
- const data = prepareChannelPayload(payload);
47
+ throw error;
48
+ }
34
49
 
35
50
  const cachedAt = client.cache && Date.now();
36
51
  if (client.cache) ingestInCache(data, { cachedAt });
@@ -0,0 +1,95 @@
1
+ import { getResolver } from '~/core/model';
2
+ import { pullFromCache, enableCache, disableCache } from '~/cache/api';
3
+
4
+ import {
5
+ client,
6
+ pause,
7
+ channelUserQueryResponse,
8
+ channelUser1,
9
+ channelUser3,
10
+ channel11,
11
+ } from '~/utils/tests';
12
+
13
+ import { onChannelMemberAdded } from '~/channel/events';
14
+ import { addChannelMembers } from '../addChannelMembers';
15
+
16
+ describe('addChannelMembers', () => {
17
+ const { channelId } = channelUserQueryResponse.data.channels[0];
18
+ const { userId } = channelUser1;
19
+
20
+ test('it should add channel members in channel', async () => {
21
+ client.http.post = jest.fn().mockResolvedValueOnce(channelUserQueryResponse);
22
+
23
+ const recieved = await addChannelMembers(channelId, [userId]);
24
+
25
+ expect(recieved).toBe(true);
26
+ });
27
+
28
+ test('it should update cache with channel members', async () => {
29
+ enableCache();
30
+
31
+ client.http.post = jest.fn().mockResolvedValueOnce(channelUserQueryResponse);
32
+
33
+ const channelUserCacheKey = getResolver('channelUsers')({
34
+ channelId,
35
+ userId,
36
+ });
37
+
38
+ const recieved = await addChannelMembers(channelId, [userId]);
39
+ const channelUser = pullFromCache<Amity.Membership<'channel'>>([
40
+ 'channelUsers',
41
+ 'get',
42
+ channelUserCacheKey,
43
+ ])?.data;
44
+
45
+ expect(recieved).toBe(true);
46
+ expect(channelUser).toBeDefined();
47
+ expect(channelUser).toBe(channelUser1);
48
+
49
+ disableCache();
50
+ });
51
+
52
+ test('it should fire event when new members added', async () => {
53
+ expect.assertions(1);
54
+
55
+ client.http.post = jest.fn().mockResolvedValueOnce(channelUserQueryResponse);
56
+ let dispose;
57
+
58
+ const callback = new Promise(resolve => {
59
+ dispose = onChannelMemberAdded(resolve);
60
+ }).finally(dispose);
61
+
62
+ await addChannelMembers(channelId, [userId]);
63
+
64
+ return expect(callback).resolves.not.toThrow();
65
+ });
66
+
67
+ test('it should fire event with all new members', async () => {
68
+ client.http.post = jest.fn().mockResolvedValueOnce(channelUserQueryResponse);
69
+
70
+ const callback = jest.fn();
71
+ const { userId: userId2 } = channelUser3;
72
+ const unsub = onChannelMemberAdded(callback);
73
+
74
+ const recieved = await addChannelMembers(channelId, [userId, userId2]);
75
+
76
+ expect(recieved).toBe(true);
77
+
78
+ await pause();
79
+
80
+ /*
81
+ * Assertion below is required to check if the event handler is called with the right
82
+ * params. It's not enough to check if the handler does not throw
83
+ */
84
+ expect(callback).toHaveBeenNthCalledWith(1, { ...channel11 }, { ...channelUser1 });
85
+ expect(callback).toHaveBeenNthCalledWith(2, { ...channel11 }, { ...channelUser3 });
86
+
87
+ unsub();
88
+ });
89
+
90
+ test('it should return an error', async () => {
91
+ client.http.post = jest.fn().mockRejectedValueOnce(new Error('error'));
92
+
93
+ await expect(addChannelMembers('channelId', [])).rejects.toThrow('error');
94
+ });
95
+ });