@capillarytech/creatives-library 8.0.136-alpha.4 → 8.0.136-beta.3

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 (292) hide show
  1. package/components/BreadCrumbs/index.js +65 -0
  2. package/components/BreadCrumbs/messages.js +13 -0
  3. package/components/CapTagList/index.js +235 -0
  4. package/components/CapTagList/messages.js +45 -0
  5. package/components/Card/_customCard.scss +40 -0
  6. package/components/Card/index.js +78 -0
  7. package/components/Card/tests/__snapshots__/index.test.js.snap +22 -0
  8. package/components/Card/tests/index.test.js +20 -0
  9. package/components/CardGrid/index.js +71 -0
  10. package/components/Ckeditor/index.js +238 -0
  11. package/components/Ckeditor/messages.js +13 -0
  12. package/components/Ckeditor/style.scss +3 -0
  13. package/components/Component/index.js +29 -0
  14. package/components/CustomPopOver/index.js +81 -0
  15. package/components/CustomPopOver/messages.js +17 -0
  16. package/components/DateFilter/index.js +349 -0
  17. package/components/DateFilter/messages.js +57 -0
  18. package/components/DateRange/index.js +114 -0
  19. package/components/DateRange/messages.js +25 -0
  20. package/components/Edmeditor/index.js +65 -0
  21. package/components/Edmeditor/messages.js +13 -0
  22. package/components/EmailPreview/_emailPreview.scss +119 -0
  23. package/components/EmailPreview/assets/images/iPad.svg +10 -0
  24. package/components/EmailPreview/assets/images/mobile.png +0 -0
  25. package/components/EmailPreview/index.js +107 -0
  26. package/components/EmailPreview/messages.js +33 -0
  27. package/components/Footer/index.js +27 -0
  28. package/components/Footer/messages.js +13 -0
  29. package/components/FormBuilder/_formBuilder.scss +83 -0
  30. package/components/FormBuilder/index.js +3279 -0
  31. package/components/FormBuilder/messages.js +61 -0
  32. package/components/Header/index.js +44 -0
  33. package/components/Header/messages.js +29 -0
  34. package/components/ImagePreview/_imagePreview.scss +63 -0
  35. package/components/ImagePreview/index.js +52 -0
  36. package/components/ImagePreview/messages.js +17 -0
  37. package/components/PageHeader/_pageHeader.scss +22 -0
  38. package/components/PageHeader/index.js +37 -0
  39. package/components/PageHeader/messages.js +13 -0
  40. package/components/Pagination/_pagination.scss +5 -0
  41. package/components/Pagination/index.js +49 -0
  42. package/components/PreviewSideBar/_previewsidebar.scss +28 -0
  43. package/components/PreviewSideBar/index.js +152 -0
  44. package/components/PreviewSideBar/messages.js +41 -0
  45. package/components/Sidebar/_sidebar.scss +115 -0
  46. package/components/Sidebar/index.js +214 -0
  47. package/components/Sidebar/messages.js +21 -0
  48. package/components/SlideBox/_slideBox.scss +63 -0
  49. package/components/SlideBox/index.js +47 -0
  50. package/components/SlideBox/tests/index.test.js +103 -0
  51. package/components/SmsEditor/index.js +55 -0
  52. package/components/SmsTest/index.js +117 -0
  53. package/components/SmsTest/messages.js +21 -0
  54. package/components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +42 -0
  55. package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +141 -0
  56. package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +21 -0
  57. package/components/TemplatePreview/_templatePreview.scss +642 -0
  58. package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
  59. package/components/TemplatePreview/assets/images/androidPushMessage.svg +45 -0
  60. package/components/TemplatePreview/assets/images/home-screen-android.svg +21 -0
  61. package/components/TemplatePreview/assets/images/home-screen-ios.svg +16 -0
  62. package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +135 -0
  63. package/components/TemplatePreview/assets/images/mobile.svg +24 -0
  64. package/components/TemplatePreview/assets/images/sms-body.png +0 -0
  65. package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
  66. package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
  67. package/components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -0
  68. package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +16 -0
  69. package/components/TemplatePreview/assets/images/user-icon.svg +19 -0
  70. package/components/TemplatePreview/assets/images/wechat-mobile.svg +78 -0
  71. package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -0
  72. package/components/TemplatePreview/index.js +617 -0
  73. package/components/TemplatePreview/messages.js +78 -0
  74. package/components/Toastr/index.js +60 -0
  75. package/components/Toastr/messages.js +13 -0
  76. package/components/ToastrMessage/index.js +113 -0
  77. package/components/ToastrMessage/messages.js +17 -0
  78. package/components/TopBar/_topbar.scss +46 -0
  79. package/components/TopBar/assets/images/capillary_logo.png +0 -0
  80. package/components/TopBar/assets/images/old_capillary_logo.png +0 -0
  81. package/components/TopBar/index.js +113 -0
  82. package/components/TopBar/messages.js +29 -0
  83. package/containers/App/actions.js +7 -0
  84. package/containers/App/constants.js +114 -0
  85. package/containers/App/index.js +52 -0
  86. package/containers/App/reducer.js +19 -0
  87. package/containers/App/sagas.js +31 -0
  88. package/containers/App/selectors.js +25 -0
  89. package/containers/App/test/saga.test.js +11 -0
  90. package/containers/Assets/Gallery/_gallery.scss +126 -0
  91. package/containers/Assets/Gallery/actions.js +37 -0
  92. package/containers/Assets/Gallery/constants.js +23 -0
  93. package/containers/Assets/Gallery/index.js +473 -0
  94. package/containers/Assets/Gallery/messages.js +93 -0
  95. package/containers/Assets/Gallery/reducer.js +81 -0
  96. package/containers/Assets/Gallery/sagas.js +80 -0
  97. package/containers/Assets/Gallery/selectors.js +25 -0
  98. package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +9 -0
  99. package/containers/Assets/Gallery/tests/actions.test.js +25 -0
  100. package/containers/Assets/Gallery/tests/reducer.test.js +96 -0
  101. package/containers/Assets/Gallery/tests/saga.test.js +157 -0
  102. package/containers/Cap/actions.js +66 -0
  103. package/containers/Cap/constants.js +25 -0
  104. package/containers/Cap/index.js +402 -0
  105. package/containers/Cap/messages.js +75 -0
  106. package/containers/Cap/reducer.js +113 -0
  107. package/containers/Cap/sagas.js +159 -0
  108. package/containers/Cap/selectors.js +75 -0
  109. package/containers/Cap/tests/__snapshots__/index.test.js.snap +2269 -0
  110. package/containers/Cap/tests/index.test.js +22 -0
  111. package/containers/Cap/tests/saga.test.js +284 -0
  112. package/containers/Dashboard/actions.js +15 -0
  113. package/containers/Dashboard/constants.js +7 -0
  114. package/containers/Dashboard/index.js +76 -0
  115. package/containers/Dashboard/messages.js +13 -0
  116. package/containers/Dashboard/reducer.js +21 -0
  117. package/containers/Dashboard/sagas.js +17 -0
  118. package/containers/Dashboard/selectors.js +25 -0
  119. package/containers/Dashboard/test/saga.test.js +9 -0
  120. package/containers/Ebill/_ebill.scss +5 -0
  121. package/containers/Ebill/actions.js +43 -0
  122. package/containers/Ebill/constants.js +20 -0
  123. package/containers/Ebill/index.js +1278 -0
  124. package/containers/Ebill/messages.js +77 -0
  125. package/containers/Ebill/reducer.js +72 -0
  126. package/containers/Ebill/sagas.js +74 -0
  127. package/containers/Ebill/selectors.js +25 -0
  128. package/containers/Ebill/test/saga.test.js +11 -0
  129. package/containers/Email/_email.scss +141 -0
  130. package/containers/Email/actions.js +81 -0
  131. package/containers/Email/constants.js +36 -0
  132. package/containers/Email/index.js +3325 -0
  133. package/containers/Email/messages.js +289 -0
  134. package/containers/Email/reducer.js +142 -0
  135. package/containers/Email/sagas.js +135 -0
  136. package/containers/Email/selectors.js +31 -0
  137. package/containers/Email/test/saga.test.js +671 -0
  138. package/containers/LanguageProvider/actions.js +17 -0
  139. package/containers/LanguageProvider/constants.js +8 -0
  140. package/containers/LanguageProvider/index.js +80 -0
  141. package/containers/LanguageProvider/reducer.js +30 -0
  142. package/containers/LanguageProvider/selectors.js +20 -0
  143. package/containers/LanguageProvider/tests/actions.test.js +19 -0
  144. package/containers/LanguageProvider/tests/index.test.js +78 -0
  145. package/containers/LanguageProvider/tests/reducer.test.js +20 -0
  146. package/containers/LanguageProvider/tests/selectors.test.js +15 -0
  147. package/containers/Line/Create/_lineCreate.scss +54 -0
  148. package/containers/Line/Create/actions.js +90 -0
  149. package/containers/Line/Create/constants.js +39 -0
  150. package/containers/Line/Create/index.js +836 -0
  151. package/containers/Line/Create/messages.js +189 -0
  152. package/containers/Line/Create/reducer.js +99 -0
  153. package/containers/Line/Create/sagas.js +121 -0
  154. package/containers/Line/Create/selectors.js +36 -0
  155. package/containers/Line/Create/tests/saga.test.js +202 -0
  156. package/containers/Line/Edit/_lineEdit.scss +35 -0
  157. package/containers/Line/Edit/actions.js +79 -0
  158. package/containers/Line/Edit/constants.js +27 -0
  159. package/containers/Line/Edit/index.js +1050 -0
  160. package/containers/Line/Edit/messages.js +177 -0
  161. package/containers/Line/Edit/reducer.js +83 -0
  162. package/containers/Line/Edit/sagas.js +80 -0
  163. package/containers/Line/Edit/selectors.js +29 -0
  164. package/containers/Line/Edit/test/saga.test.js +160 -0
  165. package/containers/Login/assets/images/capillary_logo.png +0 -0
  166. package/containers/Login/components/LoginForm/index.js +62 -0
  167. package/containers/Login/components/LoginForm/messages.js +33 -0
  168. package/containers/Login/index.js +130 -0
  169. package/containers/Login/messages.js +25 -0
  170. package/containers/Login/selectors.js +25 -0
  171. package/containers/MobilePush/Create/_mobilePushCreate.scss +39 -0
  172. package/containers/MobilePush/Create/actions.js +46 -0
  173. package/containers/MobilePush/Create/constants.js +23 -0
  174. package/containers/MobilePush/Create/index.js +2303 -0
  175. package/containers/MobilePush/Create/messages.js +269 -0
  176. package/containers/MobilePush/Create/reducer.js +70 -0
  177. package/containers/MobilePush/Create/sagas.js +74 -0
  178. package/containers/MobilePush/Create/selectors.js +28 -0
  179. package/containers/MobilePush/Create/test/saga.test.js +19 -0
  180. package/containers/MobilePush/Edit/_mobilePushCreate.scss +39 -0
  181. package/containers/MobilePush/Edit/actions.js +91 -0
  182. package/containers/MobilePush/Edit/constants.js +35 -0
  183. package/containers/MobilePush/Edit/index.js +2601 -0
  184. package/containers/MobilePush/Edit/messages.js +266 -0
  185. package/containers/MobilePush/Edit/reducer.js +112 -0
  186. package/containers/MobilePush/Edit/sagas.js +126 -0
  187. package/containers/MobilePush/Edit/selectors.js +29 -0
  188. package/containers/MobilePush/Edit/tests/saga.test.js +255 -0
  189. package/containers/NotFoundPage/index.js +25 -0
  190. package/containers/NotFoundPage/messages.js +13 -0
  191. package/containers/NotFoundPage/tests/index.test.js +17 -0
  192. package/containers/Sms/Create/_smsCreate.scss +42 -0
  193. package/containers/Sms/Create/actions.js +27 -0
  194. package/containers/Sms/Create/constants.js +16 -0
  195. package/containers/Sms/Create/index.js +1488 -0
  196. package/containers/Sms/Create/messages.js +109 -0
  197. package/containers/Sms/Create/reducer.js +41 -0
  198. package/containers/Sms/Create/sagas.js +40 -0
  199. package/containers/Sms/Create/selectors.js +28 -0
  200. package/containers/Sms/Create/test/saga.test.js +11 -0
  201. package/containers/Sms/Edit/actions.js +40 -0
  202. package/containers/Sms/Edit/constants.js +17 -0
  203. package/containers/Sms/Edit/index.js +1472 -0
  204. package/containers/Sms/Edit/messages.js +105 -0
  205. package/containers/Sms/Edit/reducer.js +50 -0
  206. package/containers/Sms/Edit/sagas.js +60 -0
  207. package/containers/Sms/Edit/selectors.js +32 -0
  208. package/containers/Sms/Edit/test/saga.test.js +13 -0
  209. package/containers/TagList/_tagList.scss +8 -0
  210. package/containers/TagList/actions.js +15 -0
  211. package/containers/TagList/constants.js +32 -0
  212. package/containers/TagList/index.js +236 -0
  213. package/containers/TagList/messages.js +13 -0
  214. package/containers/TagList/reducer.js +23 -0
  215. package/containers/TagList/sagas.js +11 -0
  216. package/containers/TagList/selectors.js +25 -0
  217. package/containers/Templates/_templates.scss +333 -0
  218. package/containers/Templates/actions.js +103 -0
  219. package/containers/Templates/constants.js +60 -0
  220. package/containers/Templates/index.js +1756 -0
  221. package/containers/Templates/messages.js +337 -0
  222. package/containers/Templates/reducer.js +142 -0
  223. package/containers/Templates/sagas.js +163 -0
  224. package/containers/Templates/selectors.js +28 -0
  225. package/containers/Templates/test/saga.test.js +241 -0
  226. package/containers/WeChat/MapTemplates/_mapTemplates.scss +8 -0
  227. package/containers/WeChat/MapTemplates/actions.js +52 -0
  228. package/containers/WeChat/MapTemplates/constants.js +28 -0
  229. package/containers/WeChat/MapTemplates/index.js +1610 -0
  230. package/containers/WeChat/MapTemplates/messages.js +157 -0
  231. package/containers/WeChat/MapTemplates/reducer.js +74 -0
  232. package/containers/WeChat/MapTemplates/sagas.js +84 -0
  233. package/containers/WeChat/MapTemplates/selectors.js +25 -0
  234. package/containers/WeChat/MapTemplates/test/saga.test.js +155 -0
  235. package/containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +57 -0
  236. package/containers/WeChat/RichmediaTemplates/Create/actions.js +36 -0
  237. package/containers/WeChat/RichmediaTemplates/Create/constants.js +15 -0
  238. package/containers/WeChat/RichmediaTemplates/Create/index.js +1071 -0
  239. package/containers/WeChat/RichmediaTemplates/Create/messages.js +165 -0
  240. package/containers/WeChat/RichmediaTemplates/Create/reducer.js +60 -0
  241. package/containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +497 -0
  242. package/containers/WeChat/RichmediaTemplates/Create/sagas.js +51 -0
  243. package/containers/WeChat/RichmediaTemplates/Create/selectors.js +37 -0
  244. package/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +13 -0
  245. package/containers/WeChat/RichmediaTemplates/Edit/actions.js +20 -0
  246. package/containers/WeChat/RichmediaTemplates/Edit/constants.js +10 -0
  247. package/containers/WeChat/RichmediaTemplates/Edit/index.js +136 -0
  248. package/containers/WeChat/RichmediaTemplates/Edit/messages.js +13 -0
  249. package/containers/WeChat/RichmediaTemplates/Edit/reducer.js +28 -0
  250. package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +36 -0
  251. package/containers/WeChat/RichmediaTemplates/Edit/selectors.js +30 -0
  252. package/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +12 -0
  253. package/containers/WeChat/RichmediaTemplates/View/actions.js +15 -0
  254. package/containers/WeChat/RichmediaTemplates/View/constants.js +7 -0
  255. package/containers/WeChat/RichmediaTemplates/View/index.js +47 -0
  256. package/containers/WeChat/RichmediaTemplates/View/messages.js +21 -0
  257. package/containers/WeChat/RichmediaTemplates/View/reducer.js +23 -0
  258. package/containers/WeChat/RichmediaTemplates/View/sagas.js +11 -0
  259. package/containers/WeChat/RichmediaTemplates/View/selectors.js +25 -0
  260. package/index.js +2 -4
  261. package/package.json +1 -1
  262. package/routes.js +202 -136
  263. package/services/getSchema.js +1 -1
  264. package/services/localStorageApi.js +0 -1
  265. package/tests/i18n.test.js +1 -1
  266. package/utils/asyncInjectors.js +78 -0
  267. package/utils/authWrapper.js +1 -1
  268. package/utils/callNativeEvent.js +16 -0
  269. package/utils/checkStore.js +21 -0
  270. package/utils/common.js +2 -2
  271. package/utils/customAuthWrapper.js +62 -0
  272. package/utils/customConnectedAuthWrapper.js +26 -0
  273. package/utils/tagValidations.js +1 -1
  274. package/utils/tests/checkStore.test.js +1 -1
  275. package/utils/tests/customAuth.test.js +1 -1
  276. package/utils/transformerUtils.js +195 -1
  277. package/v2Components/CapTagList/index.js +14 -9
  278. package/v2Components/Carousel/style.scss +1 -1
  279. package/v2Components/EmailMobilePreview/index.js +2 -2
  280. package/v2Components/FormBuilder/index.js +2 -2
  281. package/v2Components/TemplatePreview/index.js +1 -2
  282. package/v2Containers/Cap/tests/saga.test.js +1 -1
  283. package/v2Containers/Email/index.js +1 -1
  284. package/v2Containers/FTP/index.js +1 -1
  285. package/v2Containers/Line/Container/Text/index.js +6 -6
  286. package/v2Containers/Sms/Create/index.js +2 -2
  287. package/v2Containers/Sms/Edit/index.js +1 -1
  288. package/v2Containers/TagList/index.js +1 -1
  289. package/v2Containers/TagList/utils.js +1 -1
  290. package/v2Containers/Templates/index.js +1 -1
  291. package/v2Containers/Templates/sagas.js +1 -1
  292. package/constants/unified.js +0 -189
@@ -0,0 +1,241 @@
1
+ import { expectSaga } from 'redux-saga-test-plan';
2
+ import { throwError } from 'redux-saga-test-plan/providers';
3
+ import * as matchers from 'redux-saga-test-plan/matchers';
4
+ import * as Api from '../../../services/api';
5
+ import * as types from '../constants';
6
+ import * as sagas from '../sagas';
7
+ import { templateSaga } from '../sagas';
8
+
9
+ describe('Template Management Sagas', () => {
10
+ describe('getAllTemplates Saga', () => {
11
+ const channel = { channel: 'email' };
12
+ const queryParams = { page: 1 };
13
+
14
+ it.concurrent('handles failure in fetching all templates', () => {
15
+ const error = new Error('API error');
16
+
17
+ return expectSaga(sagas.getAllTemplates, channel, queryParams)
18
+ .provide([
19
+ [matchers.call.fn(Api.getAllTemplates, channel, queryParams), throwError(error)]
20
+ ])
21
+ .put({
22
+ type: types.GET_ALL_TEMPLATES_FAILURE,
23
+ error
24
+ })
25
+ .run();
26
+ });
27
+ });
28
+
29
+ describe('deleteTemplate Saga', () => {
30
+ const channel = 'email';
31
+ const id = '123';
32
+
33
+ it.concurrent('handles successful deletion of a template', () => {
34
+ const fakeResponse = {
35
+ response: 'Template deleted successfully'
36
+ };
37
+
38
+ return expectSaga(sagas.deleteTemplate, channel, id)
39
+ .provide([
40
+ [matchers.call.fn(Api.deleteTemplate, channel, id), fakeResponse]
41
+ ])
42
+ .put({
43
+ type: types.DELETE_TEMPLATE_SUCCESS,
44
+ data: fakeResponse.response
45
+ })
46
+ .run();
47
+ });
48
+
49
+ it.concurrent('handles failure in deleting a template', () => {
50
+ const error = new Error('Deletion failed');
51
+
52
+ return expectSaga(sagas.deleteTemplate, channel, id)
53
+ .provide([
54
+ [matchers.call.fn(Api.deleteTemplate, channel, id), throwError(error)]
55
+ ])
56
+ .put({
57
+ type: types.DELETE_TEMPLATE_FAILURE,
58
+ error
59
+ })
60
+ .run();
61
+ });
62
+ });
63
+
64
+ describe('fetchUserList Saga', () => {
65
+ test.concurrent('handles successful fetching of user list', () => {
66
+ const fakeResponse = {
67
+ data: {
68
+ result: [{ id: 1, name: 'User One' }]
69
+ }
70
+ };
71
+ return expectSaga(sagas.fetchUserList)
72
+ .provide([
73
+ [matchers.call.fn(Api.getUserList), fakeResponse]
74
+ ])
75
+ .put({
76
+ type: types.GET_USER_LIST_SUCCESS,
77
+ data: fakeResponse.data.result
78
+ })
79
+ .run();
80
+ });
81
+ test.concurrent('handles failure in fetching user list', () => {
82
+ const error = new Error('Fetch failed');
83
+ return expectSaga(sagas.fetchUserList)
84
+ .provide([
85
+ [matchers.call.fn(Api.getUserList), throwError(error)]
86
+ ])
87
+ .put({
88
+ type: types.GET_USER_LIST_FAILURE,
89
+ data: error
90
+ })
91
+ .run();
92
+ });
93
+ });
94
+
95
+ describe('fetchWeCrmAccounts Saga', () => {
96
+ const action = { source: 'CRM' };
97
+
98
+ it.concurrent('handles successful fetching of WeCRM accounts', () => {
99
+ const fakeResponse = {
100
+ response: [{ id: 1, name: 'Account One' }]
101
+ };
102
+
103
+ return expectSaga(sagas.fetchWeCrmAccounts, action)
104
+ .provide([
105
+ [matchers.call.fn(Api.fetchWeCrmAccounts, action.source), fakeResponse]
106
+ ])
107
+ .put({
108
+ type: types.GET_WECRM_ACCOUNTS_SUCCESS,
109
+ data: fakeResponse.response
110
+ })
111
+ .run();
112
+ });
113
+
114
+ it.concurrent('handles failure in fetching WeCRM accounts', () => {
115
+ const error = new Error('Fetch failed');
116
+
117
+ return expectSaga(sagas.fetchWeCrmAccounts, action)
118
+ .provide([
119
+ [matchers.call.fn(Api.fetchWeCrmAccounts, action.source), throwError(error)]
120
+ ])
121
+ .put({
122
+ type: types.GET_WECRM_ACCOUNTS_FAILURE,
123
+ data: error
124
+ })
125
+ .run();
126
+ });
127
+ });
128
+
129
+ describe('sendZippedFile Saga', () => {
130
+ const selectedFile = new Blob();
131
+
132
+ it.concurrent('handles successful file sending', () => {
133
+ const fakeResponse = {
134
+ status: { isError: false },
135
+ response: { metaEntity: { htmlContent: encodeURIComponent('<html>Content</html>') } }
136
+ };
137
+
138
+ return expectSaga(sagas.sendZippedFile, { selectedFile })
139
+ .provide([
140
+ [matchers.call.fn(Api.sendZippedFile, selectedFile), fakeResponse]
141
+ ])
142
+ .put({
143
+ type: types.SEND_ZIPPED_FILE_SUCCESS,
144
+ selectedTemplate: decodeURIComponent(fakeResponse.response.metaEntity.htmlContent)
145
+ })
146
+ .run();
147
+ });
148
+
149
+ it.concurrent('handles errors during file sending', () => {
150
+ const errorMessage = "Error sending file";
151
+ const fakeResponse = {
152
+ status: { isError: true },
153
+ message: errorMessage
154
+ };
155
+
156
+ return expectSaga(sagas.sendZippedFile, { selectedFile })
157
+ .provide([
158
+ [matchers.call.fn(Api.sendZippedFile, selectedFile), fakeResponse]
159
+ ])
160
+ .put({
161
+ type: types.SEND_ZIPPED_FILE_FAILURE,
162
+ data: errorMessage
163
+ })
164
+ .run();
165
+ });
166
+ });
167
+
168
+ describe('getEdmTemplates Saga', () => {
169
+ it.concurrent('handles successful fetching of EDM templates', () => {
170
+ const fakeResponse = {
171
+ response: [{ id: 1, name: 'EDM Template One' }]
172
+ };
173
+
174
+ return expectSaga(sagas.getEdmTemplates)
175
+ .provide([
176
+ [matchers.call.fn(Api.getEdmTemplates), fakeResponse]
177
+ ])
178
+ .put({
179
+ type: types.GET_EDM_DEAFULT_TEMPLATES_SUCCESS,
180
+ data: fakeResponse.response
181
+ })
182
+ .run();
183
+ });
184
+
185
+ it.concurrent('handles failure in fetching EDM templates', () => {
186
+ const error = new Error('Fetch failed');
187
+
188
+ return expectSaga(sagas.getEdmTemplates)
189
+ .provide([
190
+ [matchers.call.fn(Api.getEdmTemplates), throwError(error)]
191
+ ])
192
+ .put({
193
+ type: types.GET_EDM_DEAFULT_TEMPLATES_FAILURE,
194
+ error
195
+ })
196
+ .run();
197
+ });
198
+ });
199
+
200
+ describe('getTemplateDetails Saga', () => {
201
+ const id = '123';
202
+ const channel = 'email';
203
+
204
+ it.concurrent('handles successful fetching of template details', () => {
205
+ const fakeResponse = {
206
+ response: { id: 123, name: 'Detailed Template' }
207
+ };
208
+
209
+ return expectSaga(sagas.getTemplateDetails, id, channel)
210
+ .provide([
211
+ [matchers.call.fn(Api.getTemplateDetails, id, channel), fakeResponse]
212
+ ])
213
+ .put({
214
+ type: types.GET_TEMPLATE_DETAILS_SUCCESS,
215
+ data: fakeResponse.response
216
+ })
217
+ .run();
218
+ });
219
+
220
+ it.concurrent('handles failure in fetching template details', () => {
221
+ const error = new Error('Fetch failed');
222
+
223
+ return expectSaga(sagas.getTemplateDetails, id, channel)
224
+ .provide([
225
+ [matchers.call.fn(Api.getTemplateDetails, id, channel), throwError(error)]
226
+ ])
227
+ .put({
228
+ type: types.GET_TEMPLATE_DETAILS_FAILURE,
229
+ error
230
+ })
231
+ .run();
232
+ });
233
+ });
234
+ });
235
+
236
+ describe('Combined Watcher Sagas', () => {
237
+ it.concurrent('templateSaga should initialize all watcher sagas without error', () => {
238
+ return expectSaga(templateSaga)
239
+ .run();
240
+ });
241
+ });
@@ -0,0 +1,8 @@
1
+ .wechat-container {
2
+ .cap-checkbox {
3
+ margin-bottom: 24px;
4
+ .ant-checkbox-wrapper{
5
+ padding-left: 0;
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,52 @@
1
+ /*
2
+ *
3
+ * WeChat actions
4
+ *
5
+ */
6
+
7
+ import * as types from './constants';
8
+
9
+ export function getDefaultWeChatTemplates(channel, queryParams) {
10
+ return {
11
+ type: types.GET_WECHAT_DEFAULT_TEMPLATES_REQUEST,
12
+ channel,
13
+ queryParams,
14
+ };
15
+ }
16
+ export function createTemplate(template) {
17
+ return {
18
+ type: types.CREATE_TEMPLATE_REQUEST, template,
19
+ };
20
+ }
21
+
22
+ export function clearCreateResponse() {
23
+ return {
24
+ type: types.CLEAR_CREATE_RESPONSE_REQUEST,
25
+ };
26
+ }
27
+
28
+ export function getWeCrmAccounts() {
29
+ return {
30
+ type: types.GET_WECRM_ACCOUNTS_REQUEST,
31
+ };
32
+ }
33
+
34
+ export function setWeChatAccount(weChatAccount) {
35
+ return {
36
+ type: types.SET_WECHAT_ACCOUNT,
37
+ weChatAccount,
38
+ };
39
+ }
40
+
41
+ export function getTemplateDetails(id) {
42
+
43
+ return {
44
+ type: types.GET_TEMPLATE_DETAILS_REQUEST, id,
45
+ };
46
+ }
47
+ export function setTemplateDetails(templateDetails) {
48
+ return {
49
+ type: types.GET_TEMPLATE_DETAILS_SUCCESS,
50
+ data: templateDetails,
51
+ };
52
+ }
@@ -0,0 +1,28 @@
1
+ /*
2
+ *
3
+ * WeChat constants
4
+ *
5
+ */
6
+
7
+ export const GET_WECHAT_DEFAULT_TEMPLATES_REQUEST = 'app/containers/WeChat/GET_WECHAT_DEFAULT_TEMPLATES_REQUEST';
8
+ export const GET_WECHAT_DEFAULT_TEMPLATES_SUCCESS = 'app/containers/WeChat/GET_WECHAT_DEFAULT_TEMPLATES_SUCCESS';
9
+ export const GET_WECHAT_DEFAULT_TEMPLATES_FAILURE = 'app/containers/WeChat/GET_WECHAT_DEFAULT_TEMPLATES_FAILURE';
10
+
11
+ export const CREATE_TEMPLATE_REQUEST = 'app/containers/WeChat/CREATE_TEMPLATE_REQUEST';
12
+ export const CREATE_TEMPLATE_SUCCESS = 'app/containers/WeChat/CREATE_TEMPLATE_SUCCESS';
13
+ export const CREATE_TEMPLATE_FAILURE = 'app/containers/WeChat/CREATE_TEMPLATE_FAILURE';
14
+
15
+ export const CLEAR_CREATE_RESPONSE_REQUEST = 'app/containers/WeChat/CLEAR_CREATE_RESPONSE_REQUEST';
16
+ export const CLEAR_CREATE_RESPONSE_SUCCESS = 'app/containers/WeChat/CLEAR_CREATE_RESPONSE_SUCCESS';
17
+ export const CLEAR_CREATE_RESPONSE_FAILURE = 'app/containers/WeChat/CLEAR_CREATE_RESPONSE_FAILURE';
18
+
19
+ export const GET_WECRM_ACCOUNTS_REQUEST = "app/containers/WeChat/GET_WECRM_ACCOUNTS_REQUEST";
20
+ export const GET_WECRM_ACCOUNTS_SUCCESS = "app/containers/WeChat/GET_WECRM_ACCOUNTS_SUCCESS";
21
+ export const GET_WECRM_ACCOUNTS_FAILURE = "app/containers/WeChat/GET_WECRM_ACCOUNTS_FAILURE";
22
+
23
+ export const GET_TEMPLATE_DETAILS_REQUEST = 'app/containers/WeChat/GET_TEMPLATE_DETAILS_REQUEST';
24
+ export const GET_TEMPLATE_DETAILS_SUCCESS = 'app/containers/WeChat/GET_TEMPLATE_DETAILS_SUCCESS';
25
+ export const GET_TEMPLATE_DETAILS_FAILURE = 'app/containers/WeChat/GET_TEMPLATE_DETAILS_FAILURE';
26
+
27
+
28
+ export const SET_WECHAT_ACCOUNT = "app/containers/WeChat/SET_WECHAT_ACCOUNT";