@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.
- package/components/BreadCrumbs/index.js +65 -0
- package/components/BreadCrumbs/messages.js +13 -0
- package/components/CapTagList/index.js +235 -0
- package/components/CapTagList/messages.js +45 -0
- package/components/Card/_customCard.scss +40 -0
- package/components/Card/index.js +78 -0
- package/components/Card/tests/__snapshots__/index.test.js.snap +22 -0
- package/components/Card/tests/index.test.js +20 -0
- package/components/CardGrid/index.js +71 -0
- package/components/Ckeditor/index.js +238 -0
- package/components/Ckeditor/messages.js +13 -0
- package/components/Ckeditor/style.scss +3 -0
- package/components/Component/index.js +29 -0
- package/components/CustomPopOver/index.js +81 -0
- package/components/CustomPopOver/messages.js +17 -0
- package/components/DateFilter/index.js +349 -0
- package/components/DateFilter/messages.js +57 -0
- package/components/DateRange/index.js +114 -0
- package/components/DateRange/messages.js +25 -0
- package/components/Edmeditor/index.js +65 -0
- package/components/Edmeditor/messages.js +13 -0
- package/components/EmailPreview/_emailPreview.scss +119 -0
- package/components/EmailPreview/assets/images/iPad.svg +10 -0
- package/components/EmailPreview/assets/images/mobile.png +0 -0
- package/components/EmailPreview/index.js +107 -0
- package/components/EmailPreview/messages.js +33 -0
- package/components/Footer/index.js +27 -0
- package/components/Footer/messages.js +13 -0
- package/components/FormBuilder/_formBuilder.scss +83 -0
- package/components/FormBuilder/index.js +3279 -0
- package/components/FormBuilder/messages.js +61 -0
- package/components/Header/index.js +44 -0
- package/components/Header/messages.js +29 -0
- package/components/ImagePreview/_imagePreview.scss +63 -0
- package/components/ImagePreview/index.js +52 -0
- package/components/ImagePreview/messages.js +17 -0
- package/components/PageHeader/_pageHeader.scss +22 -0
- package/components/PageHeader/index.js +37 -0
- package/components/PageHeader/messages.js +13 -0
- package/components/Pagination/_pagination.scss +5 -0
- package/components/Pagination/index.js +49 -0
- package/components/PreviewSideBar/_previewsidebar.scss +28 -0
- package/components/PreviewSideBar/index.js +152 -0
- package/components/PreviewSideBar/messages.js +41 -0
- package/components/Sidebar/_sidebar.scss +115 -0
- package/components/Sidebar/index.js +214 -0
- package/components/Sidebar/messages.js +21 -0
- package/components/SlideBox/_slideBox.scss +63 -0
- package/components/SlideBox/index.js +47 -0
- package/components/SlideBox/tests/index.test.js +103 -0
- package/components/SmsEditor/index.js +55 -0
- package/components/SmsTest/index.js +117 -0
- package/components/SmsTest/messages.js +21 -0
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +42 -0
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +141 -0
- package/components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +21 -0
- package/components/TemplatePreview/_templatePreview.scss +642 -0
- package/components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
- package/components/TemplatePreview/assets/images/androidPushMessage.svg +45 -0
- package/components/TemplatePreview/assets/images/home-screen-android.svg +21 -0
- package/components/TemplatePreview/assets/images/home-screen-ios.svg +16 -0
- package/components/TemplatePreview/assets/images/iPhonePushMessage.svg +135 -0
- package/components/TemplatePreview/assets/images/mobile.svg +24 -0
- package/components/TemplatePreview/assets/images/sms-body.png +0 -0
- package/components/TemplatePreview/assets/images/sms-icon.png +0 -0
- package/components/TemplatePreview/assets/images/sms_mobile.png +0 -0
- package/components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -0
- package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +16 -0
- package/components/TemplatePreview/assets/images/user-icon.svg +19 -0
- package/components/TemplatePreview/assets/images/wechat-mobile.svg +78 -0
- package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -0
- package/components/TemplatePreview/index.js +617 -0
- package/components/TemplatePreview/messages.js +78 -0
- package/components/Toastr/index.js +60 -0
- package/components/Toastr/messages.js +13 -0
- package/components/ToastrMessage/index.js +113 -0
- package/components/ToastrMessage/messages.js +17 -0
- package/components/TopBar/_topbar.scss +46 -0
- package/components/TopBar/assets/images/capillary_logo.png +0 -0
- package/components/TopBar/assets/images/old_capillary_logo.png +0 -0
- package/components/TopBar/index.js +113 -0
- package/components/TopBar/messages.js +29 -0
- package/containers/App/actions.js +7 -0
- package/containers/App/constants.js +114 -0
- package/containers/App/index.js +52 -0
- package/containers/App/reducer.js +19 -0
- package/containers/App/sagas.js +31 -0
- package/containers/App/selectors.js +25 -0
- package/containers/App/test/saga.test.js +11 -0
- package/containers/Assets/Gallery/_gallery.scss +126 -0
- package/containers/Assets/Gallery/actions.js +37 -0
- package/containers/Assets/Gallery/constants.js +23 -0
- package/containers/Assets/Gallery/index.js +473 -0
- package/containers/Assets/Gallery/messages.js +93 -0
- package/containers/Assets/Gallery/reducer.js +81 -0
- package/containers/Assets/Gallery/sagas.js +80 -0
- package/containers/Assets/Gallery/selectors.js +25 -0
- package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +9 -0
- package/containers/Assets/Gallery/tests/actions.test.js +25 -0
- package/containers/Assets/Gallery/tests/reducer.test.js +96 -0
- package/containers/Assets/Gallery/tests/saga.test.js +157 -0
- package/containers/Cap/actions.js +66 -0
- package/containers/Cap/constants.js +25 -0
- package/containers/Cap/index.js +402 -0
- package/containers/Cap/messages.js +75 -0
- package/containers/Cap/reducer.js +113 -0
- package/containers/Cap/sagas.js +159 -0
- package/containers/Cap/selectors.js +75 -0
- package/containers/Cap/tests/__snapshots__/index.test.js.snap +2269 -0
- package/containers/Cap/tests/index.test.js +22 -0
- package/containers/Cap/tests/saga.test.js +284 -0
- package/containers/Dashboard/actions.js +15 -0
- package/containers/Dashboard/constants.js +7 -0
- package/containers/Dashboard/index.js +76 -0
- package/containers/Dashboard/messages.js +13 -0
- package/containers/Dashboard/reducer.js +21 -0
- package/containers/Dashboard/sagas.js +17 -0
- package/containers/Dashboard/selectors.js +25 -0
- package/containers/Dashboard/test/saga.test.js +9 -0
- package/containers/Ebill/_ebill.scss +5 -0
- package/containers/Ebill/actions.js +43 -0
- package/containers/Ebill/constants.js +20 -0
- package/containers/Ebill/index.js +1278 -0
- package/containers/Ebill/messages.js +77 -0
- package/containers/Ebill/reducer.js +72 -0
- package/containers/Ebill/sagas.js +74 -0
- package/containers/Ebill/selectors.js +25 -0
- package/containers/Ebill/test/saga.test.js +11 -0
- package/containers/Email/_email.scss +141 -0
- package/containers/Email/actions.js +81 -0
- package/containers/Email/constants.js +36 -0
- package/containers/Email/index.js +3325 -0
- package/containers/Email/messages.js +289 -0
- package/containers/Email/reducer.js +142 -0
- package/containers/Email/sagas.js +135 -0
- package/containers/Email/selectors.js +31 -0
- package/containers/Email/test/saga.test.js +671 -0
- package/containers/LanguageProvider/actions.js +17 -0
- package/containers/LanguageProvider/constants.js +8 -0
- package/containers/LanguageProvider/index.js +80 -0
- package/containers/LanguageProvider/reducer.js +30 -0
- package/containers/LanguageProvider/selectors.js +20 -0
- package/containers/LanguageProvider/tests/actions.test.js +19 -0
- package/containers/LanguageProvider/tests/index.test.js +78 -0
- package/containers/LanguageProvider/tests/reducer.test.js +20 -0
- package/containers/LanguageProvider/tests/selectors.test.js +15 -0
- package/containers/Line/Create/_lineCreate.scss +54 -0
- package/containers/Line/Create/actions.js +90 -0
- package/containers/Line/Create/constants.js +39 -0
- package/containers/Line/Create/index.js +836 -0
- package/containers/Line/Create/messages.js +189 -0
- package/containers/Line/Create/reducer.js +99 -0
- package/containers/Line/Create/sagas.js +121 -0
- package/containers/Line/Create/selectors.js +36 -0
- package/containers/Line/Create/tests/saga.test.js +202 -0
- package/containers/Line/Edit/_lineEdit.scss +35 -0
- package/containers/Line/Edit/actions.js +79 -0
- package/containers/Line/Edit/constants.js +27 -0
- package/containers/Line/Edit/index.js +1050 -0
- package/containers/Line/Edit/messages.js +177 -0
- package/containers/Line/Edit/reducer.js +83 -0
- package/containers/Line/Edit/sagas.js +80 -0
- package/containers/Line/Edit/selectors.js +29 -0
- package/containers/Line/Edit/test/saga.test.js +160 -0
- package/containers/Login/assets/images/capillary_logo.png +0 -0
- package/containers/Login/components/LoginForm/index.js +62 -0
- package/containers/Login/components/LoginForm/messages.js +33 -0
- package/containers/Login/index.js +130 -0
- package/containers/Login/messages.js +25 -0
- package/containers/Login/selectors.js +25 -0
- package/containers/MobilePush/Create/_mobilePushCreate.scss +39 -0
- package/containers/MobilePush/Create/actions.js +46 -0
- package/containers/MobilePush/Create/constants.js +23 -0
- package/containers/MobilePush/Create/index.js +2303 -0
- package/containers/MobilePush/Create/messages.js +269 -0
- package/containers/MobilePush/Create/reducer.js +70 -0
- package/containers/MobilePush/Create/sagas.js +74 -0
- package/containers/MobilePush/Create/selectors.js +28 -0
- package/containers/MobilePush/Create/test/saga.test.js +19 -0
- package/containers/MobilePush/Edit/_mobilePushCreate.scss +39 -0
- package/containers/MobilePush/Edit/actions.js +91 -0
- package/containers/MobilePush/Edit/constants.js +35 -0
- package/containers/MobilePush/Edit/index.js +2601 -0
- package/containers/MobilePush/Edit/messages.js +266 -0
- package/containers/MobilePush/Edit/reducer.js +112 -0
- package/containers/MobilePush/Edit/sagas.js +126 -0
- package/containers/MobilePush/Edit/selectors.js +29 -0
- package/containers/MobilePush/Edit/tests/saga.test.js +255 -0
- package/containers/NotFoundPage/index.js +25 -0
- package/containers/NotFoundPage/messages.js +13 -0
- package/containers/NotFoundPage/tests/index.test.js +17 -0
- package/containers/Sms/Create/_smsCreate.scss +42 -0
- package/containers/Sms/Create/actions.js +27 -0
- package/containers/Sms/Create/constants.js +16 -0
- package/containers/Sms/Create/index.js +1488 -0
- package/containers/Sms/Create/messages.js +109 -0
- package/containers/Sms/Create/reducer.js +41 -0
- package/containers/Sms/Create/sagas.js +40 -0
- package/containers/Sms/Create/selectors.js +28 -0
- package/containers/Sms/Create/test/saga.test.js +11 -0
- package/containers/Sms/Edit/actions.js +40 -0
- package/containers/Sms/Edit/constants.js +17 -0
- package/containers/Sms/Edit/index.js +1472 -0
- package/containers/Sms/Edit/messages.js +105 -0
- package/containers/Sms/Edit/reducer.js +50 -0
- package/containers/Sms/Edit/sagas.js +60 -0
- package/containers/Sms/Edit/selectors.js +32 -0
- package/containers/Sms/Edit/test/saga.test.js +13 -0
- package/containers/TagList/_tagList.scss +8 -0
- package/containers/TagList/actions.js +15 -0
- package/containers/TagList/constants.js +32 -0
- package/containers/TagList/index.js +236 -0
- package/containers/TagList/messages.js +13 -0
- package/containers/TagList/reducer.js +23 -0
- package/containers/TagList/sagas.js +11 -0
- package/containers/TagList/selectors.js +25 -0
- package/containers/Templates/_templates.scss +333 -0
- package/containers/Templates/actions.js +103 -0
- package/containers/Templates/constants.js +60 -0
- package/containers/Templates/index.js +1756 -0
- package/containers/Templates/messages.js +337 -0
- package/containers/Templates/reducer.js +142 -0
- package/containers/Templates/sagas.js +163 -0
- package/containers/Templates/selectors.js +28 -0
- package/containers/Templates/test/saga.test.js +241 -0
- package/containers/WeChat/MapTemplates/_mapTemplates.scss +8 -0
- package/containers/WeChat/MapTemplates/actions.js +52 -0
- package/containers/WeChat/MapTemplates/constants.js +28 -0
- package/containers/WeChat/MapTemplates/index.js +1610 -0
- package/containers/WeChat/MapTemplates/messages.js +157 -0
- package/containers/WeChat/MapTemplates/reducer.js +74 -0
- package/containers/WeChat/MapTemplates/sagas.js +84 -0
- package/containers/WeChat/MapTemplates/selectors.js +25 -0
- package/containers/WeChat/MapTemplates/test/saga.test.js +155 -0
- package/containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +57 -0
- package/containers/WeChat/RichmediaTemplates/Create/actions.js +36 -0
- package/containers/WeChat/RichmediaTemplates/Create/constants.js +15 -0
- package/containers/WeChat/RichmediaTemplates/Create/index.js +1071 -0
- package/containers/WeChat/RichmediaTemplates/Create/messages.js +165 -0
- package/containers/WeChat/RichmediaTemplates/Create/reducer.js +60 -0
- package/containers/WeChat/RichmediaTemplates/Create/richmediaschema.js +497 -0
- package/containers/WeChat/RichmediaTemplates/Create/sagas.js +51 -0
- package/containers/WeChat/RichmediaTemplates/Create/selectors.js +37 -0
- package/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +13 -0
- package/containers/WeChat/RichmediaTemplates/Edit/actions.js +20 -0
- package/containers/WeChat/RichmediaTemplates/Edit/constants.js +10 -0
- package/containers/WeChat/RichmediaTemplates/Edit/index.js +136 -0
- package/containers/WeChat/RichmediaTemplates/Edit/messages.js +13 -0
- package/containers/WeChat/RichmediaTemplates/Edit/reducer.js +28 -0
- package/containers/WeChat/RichmediaTemplates/Edit/sagas.js +36 -0
- package/containers/WeChat/RichmediaTemplates/Edit/selectors.js +30 -0
- package/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +12 -0
- package/containers/WeChat/RichmediaTemplates/View/actions.js +15 -0
- package/containers/WeChat/RichmediaTemplates/View/constants.js +7 -0
- package/containers/WeChat/RichmediaTemplates/View/index.js +47 -0
- package/containers/WeChat/RichmediaTemplates/View/messages.js +21 -0
- package/containers/WeChat/RichmediaTemplates/View/reducer.js +23 -0
- package/containers/WeChat/RichmediaTemplates/View/sagas.js +11 -0
- package/containers/WeChat/RichmediaTemplates/View/selectors.js +25 -0
- package/index.js +2 -4
- package/package.json +1 -1
- package/routes.js +202 -136
- package/services/getSchema.js +1 -1
- package/services/localStorageApi.js +0 -1
- package/tests/i18n.test.js +1 -1
- package/utils/asyncInjectors.js +78 -0
- package/utils/authWrapper.js +1 -1
- package/utils/callNativeEvent.js +16 -0
- package/utils/checkStore.js +21 -0
- package/utils/common.js +2 -2
- package/utils/customAuthWrapper.js +62 -0
- package/utils/customConnectedAuthWrapper.js +26 -0
- package/utils/tagValidations.js +1 -1
- package/utils/tests/checkStore.test.js +1 -1
- package/utils/tests/customAuth.test.js +1 -1
- package/utils/transformerUtils.js +195 -1
- package/v2Components/CapTagList/index.js +14 -9
- package/v2Components/Carousel/style.scss +1 -1
- package/v2Components/EmailMobilePreview/index.js +2 -2
- package/v2Components/FormBuilder/index.js +2 -2
- package/v2Components/TemplatePreview/index.js +1 -2
- package/v2Containers/Cap/tests/saga.test.js +1 -1
- package/v2Containers/Email/index.js +1 -1
- package/v2Containers/FTP/index.js +1 -1
- package/v2Containers/Line/Container/Text/index.js +6 -6
- package/v2Containers/Sms/Create/index.js +2 -2
- package/v2Containers/Sms/Edit/index.js +1 -1
- package/v2Containers/TagList/index.js +1 -1
- package/v2Containers/TagList/utils.js +1 -1
- package/v2Containers/Templates/index.js +1 -1
- package/v2Containers/Templates/sagas.js +1 -1
- 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,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";
|