@capillarytech/creatives-library 7.12.13 → 7.12.15

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 (60) hide show
  1. package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +2 -2
  2. package/index.js +0 -6
  3. package/package.json +1 -1
  4. package/routes.js +2 -7
  5. package/services/api.js +2 -8
  6. package/v2Components/CapImageUpload/index.js +11 -24
  7. package/v2Components/CapImageUpload/index.scss +27 -12
  8. package/v2Components/CapImageUpload/messages.js +5 -10
  9. package/v2Components/TemplatePreview/_templatePreview.scss +0 -10
  10. package/v2Components/TemplatePreview/index.js +1 -41
  11. package/v2Components/TemplatePreview/tests/__snapshots__/index.test.js.snap +1 -33
  12. package/v2Components/TemplatePreview/tests/index.test.js +7 -7
  13. package/v2Containers/App/constants.js +1 -2
  14. package/v2Containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +2 -2
  15. package/v2Containers/Cap/messages.js +1 -20
  16. package/v2Containers/CreativesContainer/SlideBoxContent.js +11 -58
  17. package/v2Containers/CreativesContainer/SlideBoxHeader.js +30 -39
  18. package/v2Containers/CreativesContainer/constants.js +0 -1
  19. package/v2Containers/CreativesContainer/index.js +1 -53
  20. package/v2Containers/CreativesContainer/messages.js +0 -4
  21. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +4 -24
  22. package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +4 -23
  23. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +2 -147
  24. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +0 -98
  25. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -71
  26. package/v2Containers/CreativesContainer/tests/index.test.js +9 -21
  27. package/v2Containers/Facebook/Advertisement/index.js +2 -4
  28. package/v2Containers/MobilePush/Create/index.js +6 -6
  29. package/v2Containers/MobilePush/Edit/index.js +34 -21
  30. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +4 -4
  31. package/v2Containers/Templates/_templates.scss +1 -9
  32. package/v2Containers/Templates/actions.js +1 -2
  33. package/v2Containers/Templates/constants.js +0 -1
  34. package/v2Containers/Templates/index.js +174 -234
  35. package/v2Containers/Templates/messages.js +0 -20
  36. package/v2Containers/Templates/reducer.js +0 -2
  37. package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +80 -520
  38. package/v2Containers/TemplatesV2/index.js +4 -13
  39. package/v2Containers/TemplatesV2/messages.js +0 -4
  40. package/v2Containers/Whatsapp/constants.js +19 -13
  41. package/v2Containers/Whatsapp/index.js +2 -4
  42. package/v2Containers/Whatsapp/messages.js +13 -0
  43. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +13 -13
  44. package/v2Containers/Whatsapp/tests/__snapshots__/utils.test.js.snap +26 -32
  45. package/v2Containers/mockdata.js +541 -500
  46. package/v2Components/TemplatePreview/assets/images/sms_mobile_ios.svg +0 -18
  47. package/v2Containers/Assets/images/addCreativesIllustration.svg +0 -30
  48. package/v2Containers/Assets/images/rcsIllustration.png +0 -0
  49. package/v2Containers/Rcs/actions.js +0 -57
  50. package/v2Containers/Rcs/constants.js +0 -51
  51. package/v2Containers/Rcs/index.js +0 -1075
  52. package/v2Containers/Rcs/index.scss +0 -72
  53. package/v2Containers/Rcs/messages.js +0 -122
  54. package/v2Containers/Rcs/reducer.js +0 -107
  55. package/v2Containers/Rcs/sagas.js +0 -141
  56. package/v2Containers/Rcs/selectors.js +0 -8
  57. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +0 -144496
  58. package/v2Containers/Rcs/tests/index.test.js +0 -226
  59. package/v2Containers/Rcs/tests/mockData.js +0 -166
  60. package/v2Containers/Rcs/utils.js +0 -40
@@ -1,226 +0,0 @@
1
- import React from 'react';
2
- import { browserHistory } from 'react-router';
3
- import { Provider } from 'react-redux';
4
- import configureStore from '../../../store';
5
- import { mountWithIntl } from '../../../../app/helpers/intl-enzym-test-helpers';
6
- import { Rcs } from '../index';
7
- import { mockData } from './mockData';
8
-
9
- let store;
10
- beforeAll(() => {
11
- store = configureStore({}, browserHistory);
12
- });
13
-
14
- jest.mock('../../CreativesContainer', () => ({
15
- __esModule: true,
16
- default: (props) => (
17
- <div className="creatives-container-mock" {...props}>
18
- CreativesContainer
19
- </div>
20
- ),
21
- }));
22
-
23
- describe('Creatives rcs test/>', () => {
24
- let renderedComponent;
25
- const uploadRcsAsset = jest.fn();
26
- const clearRcsAsset = jest.fn();
27
- const createTemplate = jest.fn();
28
- const clearCreateResponse = jest.fn();
29
- const getTemplateDetails = jest.fn();
30
- const editTemplate = jest.fn();
31
- const clearEditResponse = jest.fn();
32
- const fetchSchemaForEntity = jest.fn();
33
- const onCreateComplete = jest.fn();
34
- const handleClose = jest.fn();
35
- const formatMessage = jest.fn();
36
- const params = {
37
- id: mockData.rcsData1.templateDetails._id,
38
- };
39
- const rcsData1 = mockData.rcsData1;
40
- const rcsData2 = mockData.rcsData2;
41
- const rcsData3 = mockData.rcsData3;
42
-
43
- const renderHelper = (args) => {
44
- renderedComponent = mountWithIntl(
45
- <Provider store={store}>
46
- <Rcs
47
- actions={{
48
- uploadRcsAsset,
49
- clearRcsAsset,
50
- createTemplate,
51
- clearCreateResponse,
52
- getTemplateDetails,
53
- editTemplate,
54
- clearEditResponse,
55
- }}
56
- globalActions={{ fetchSchemaForEntity }}
57
- onCreateComplete={onCreateComplete}
58
- handleClose={handleClose}
59
- intl={{ formatMessage }}
60
- location={args.isEditFlow ? mockData.location2 : mockData.location1}
61
- params={args.params}
62
- rcsData={args.rcsData}
63
- isFullMode={args.isFullMode || true}
64
- isEditFlow={args.isEditFlow || false}
65
- loadingTags={false}
66
- metaEntities={[]}
67
- getDefaultTags={true}
68
- isDltEnabled={args.isDltEnabled || false}
69
- smsRegister={'DLT'}
70
- />
71
- </Provider>,
72
- );
73
- };
74
-
75
- it('should render create mode', () => {
76
- renderHelper({});
77
- expect(renderedComponent).toMatchSnapshot();
78
- });
79
-
80
- it('template name change', () => {
81
- renderHelper({});
82
- const templateNameRenderHelper = (val) => {
83
- let event = { target: { value: val } };
84
- renderedComponent
85
- .find('#rcs_template_name_input')
86
- .last()
87
- .simulate('change', event);
88
- };
89
- templateNameRenderHelper('test_name');
90
- expect(renderedComponent).toMatchSnapshot();
91
- templateNameRenderHelper('');
92
- expect(renderedComponent).toMatchSnapshot();
93
- });
94
-
95
- it('template media change', () => {
96
- renderHelper({});
97
- const event = { target: { value: 'IMAGE' } };
98
- expect(renderedComponent.find('CapRadioGroup').props().value).toBe('NONE');
99
- expect(renderedComponent).toMatchSnapshot();
100
- renderedComponent.find('CapRadioGroup').props().onChange(event);
101
- renderedComponent.update();
102
- expect(renderedComponent.find('CapRadioGroup').props().value).toBe('IMAGE');
103
- expect(renderedComponent).toMatchSnapshot();
104
- });
105
-
106
- it('template title change', () => {
107
- renderHelper({});
108
- const templateTitleRenderHelper = (val) => {
109
- let event = { target: { value: val } };
110
- renderedComponent
111
- .find('#rcs-template-title-input')
112
- .last()
113
- .simulate('change', event);
114
- };
115
- templateTitleRenderHelper('test_title');
116
- expect(renderedComponent).toMatchSnapshot();
117
- templateTitleRenderHelper('');
118
- expect(renderedComponent).toMatchSnapshot();
119
- });
120
-
121
- it('template desc change', () => {
122
- renderHelper({});
123
- const templateDescRenderHelper = (val) => {
124
- let event = { target: { value: val } };
125
- renderedComponent
126
- .find('#rcs_template_message_textarea')
127
- .last()
128
- .simulate('change', event);
129
- };
130
- templateDescRenderHelper('test_desc');
131
- expect(renderedComponent).toMatchSnapshot();
132
- templateDescRenderHelper('');
133
- expect(renderedComponent).toMatchSnapshot();
134
- });
135
-
136
- it('non dlt fallback msg', () => {
137
- renderHelper({});
138
- const templateDescRenderHelper = (val) => {
139
- let event = { target: { value: val } };
140
- renderedComponent
141
- .find('#rcs_fallback_message_textarea')
142
- .last()
143
- .simulate('change', event);
144
- };
145
- templateDescRenderHelper('test_nondlt_fallback');
146
- expect(renderedComponent).toMatchSnapshot();
147
- templateDescRenderHelper('');
148
- expect(renderedComponent).toMatchSnapshot();
149
- });
150
-
151
- it('create with all data, non dlt org', () => {
152
- renderHelper({});
153
- createTemplate.mockImplementation((obj, callback) => {
154
- callback();
155
- });
156
- expect(
157
- renderedComponent.find('CapButton.rcs-done-btn').first().props().disabled,
158
- ).toBe(true);
159
- renderedComponent
160
- .find('#rcs_template_name_input')
161
- .last()
162
- .simulate('change', { target: { value: 'final_name' } });
163
- renderedComponent
164
- .find('#rcs-template-title-input')
165
- .last()
166
- .simulate('change', { target: { value: 'final_title' } });
167
- renderedComponent
168
- .find('#rcs_template_message_textarea')
169
- .last()
170
- .simulate('change', { target: { value: 'final_desc' } });
171
- expect(
172
- renderedComponent.find('CapButton.fallback-preview-btn').first().props()
173
- .disabled,
174
- ).toBe(true);
175
- renderedComponent
176
- .find('#rcs_fallback_message_textarea')
177
- .last()
178
- .simulate('change', { target: { value: 'final_fallback' } });
179
- expect(
180
- renderedComponent.find('CapButton.fallback-preview-btn').first().props()
181
- .disabled,
182
- ).toBe(false);
183
- renderedComponent.find('CapButton.fallback-preview-btn').simulate('click');
184
- expect(renderedComponent).toMatchSnapshot();
185
- expect(
186
- renderedComponent.find('CapButton.rcs-done-btn').first().props().disabled,
187
- ).toBe(false);
188
- renderedComponent.find('CapButton.rcs-done-btn').simulate('click');
189
- expect(renderedComponent).toMatchSnapshot();
190
- });
191
-
192
- it('should render edit mode in various cases', () => {
193
- //non dlt fallback
194
- renderHelper({
195
- params,
196
- rcsData: rcsData1,
197
- isEditFlow: true,
198
- });
199
- expect(renderedComponent).toMatchSnapshot();
200
- //dlt enabled but no fallback
201
- renderHelper({
202
- params,
203
- rcsData: rcsData2,
204
- isEditFlow: true,
205
- isDltEnabled: true,
206
- });
207
- renderedComponent.find('CapButton.add-dlt-btn').simulate('click');
208
- expect(renderedComponent).toMatchSnapshot();
209
- });
210
-
211
- it('rcs edit with dlt fallback and save', () => {
212
- editTemplate.mockImplementation((obj, callback) => {
213
- callback();
214
- });
215
- //dlt fallback
216
- renderHelper({
217
- params,
218
- rcsData: rcsData3,
219
- isEditFlow: true,
220
- isDltEnabled: true,
221
- });
222
- expect(renderedComponent).toMatchSnapshot();
223
- renderedComponent.find('CapButton.rcs-done-btn').simulate('click');
224
- expect(renderedComponent).toMatchSnapshot();
225
- });
226
- });
@@ -1,166 +0,0 @@
1
- export const mockData = {
2
- rcsData1: {
3
- templateDetails: {
4
- _id: '623acf4df971231e66c85882',
5
- name: 'RCS_TEST1',
6
- type: 'RCS',
7
- versions: {
8
- history: [],
9
- base: {
10
- content: {
11
- RCS: {
12
- cardContent: [
13
- {
14
- title: 'This is RCS title',
15
- description: 'This is RCS description ',
16
- mediaType: 'IMAGE',
17
- media: {
18
- mediaUrl:
19
- 'https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/62f8c77c-f132-44d8-a822-0e90f57c.jpg',
20
- height: 'MEDIUM',
21
- },
22
- },
23
- ],
24
- cardSettings: {
25
- cardOrientation: 'VERTICAL',
26
- },
27
- cardType: 'STANDALONE',
28
- contentType: 'RICHCARD',
29
- smsFallBackContent: {
30
- message: 'This is fallback msg ',
31
- },
32
- },
33
- },
34
- },
35
- },
36
- isActive: true,
37
- orgId: 50146,
38
- createdBy: '15000449',
39
- updatedBy: '15000449',
40
- createdAt: '2022-03-23T07:42:05.226Z',
41
- updatedAt: '2022-03-30T03:25:24.084Z',
42
- },
43
- },
44
- rcsData2: {
45
- templateDetails: {
46
- _id: '62419c0a70387f3eb2f8fdcd',
47
- name: 'RCS_TEST2',
48
- type: 'RCS',
49
- versions: {
50
- history: [],
51
- base: {
52
- content: {
53
- RCS: {
54
- cardContent: [
55
- {
56
- title: 'Rcs title',
57
- description: 'Rcs desc',
58
- mediaType: 'NONE',
59
- media: {
60
- mediaUrl: '',
61
- height: 'MEDIUM',
62
- },
63
- },
64
- ],
65
- cardSettings: {
66
- cardOrientation: 'VERTICAL',
67
- },
68
- cardType: 'STANDALONE',
69
- contentType: 'RICHCARD',
70
- smsFallBackContent: {
71
- message: '',
72
- templateConfigs: {},
73
- },
74
- },
75
- },
76
- },
77
- },
78
- isActive: true,
79
- orgId: 1604,
80
- createdBy: '15000449',
81
- updatedBy: '15000449',
82
- createdAt: '2022-03-28T11:29:15.072Z',
83
- updatedAt: '2022-03-30T03:30:21.273Z',
84
- },
85
- },
86
- rcsData3: {
87
- templateDetails: {
88
- _id: '62419c0a70387f3eb2f8fdcd',
89
- name: 'RCS_TEST3',
90
- type: 'RCS',
91
- versions: {
92
- history: [],
93
- base: {
94
- content: {
95
- RCS: {
96
- cardContent: [
97
- {
98
- title: 'Rcs title',
99
- description: 'Rcs desc',
100
- mediaType: 'IMAGE',
101
- media: {
102
- mediaUrl:
103
- 'https://s3.amazonaws.com/test_files_cache_bkp/intouch_creative_assets/8fcb2fdce8f92e4a48d4.png',
104
- height: 'MEDIUM',
105
- },
106
- },
107
- ],
108
- cardSettings: {
109
- cardOrientation: 'VERTICAL',
110
- },
111
- cardType: 'STANDALONE',
112
- contentType: 'RICHCARD',
113
- smsFallBackContent: {
114
- message:
115
- 'Dear Linen Club Rewards member, your Coupon code for Rs test is test. Kindly show it to the cashier before billing. Conditions Apply. test',
116
- templateConfigs: {
117
- templateId: '1007983204882734091',
118
- templateName: 'Coupon Resend',
119
- template:
120
- 'Dear Linen Club Rewards member, your Coupon code for Rs {#var#} is {#var#}. Kindly show it to the cashier before billing. Conditions Apply. {#var#}',
121
- registeredSenderIds: ['LINNCL', 'LINNCB'],
122
- templateVariableMapping: {
123
- '{#var#}_5': {
124
- count: 1,
125
- data: 'test',
126
- },
127
- '{#var#}_3': {
128
- count: 1,
129
- data: 'test',
130
- },
131
- '{#var#}_1': {
132
- count: 1,
133
- data: 'test',
134
- },
135
- },
136
- },
137
- },
138
- },
139
- },
140
- },
141
- },
142
- isActive: true,
143
- orgId: 1604,
144
- createdBy: '15000449',
145
- updatedBy: '15000449',
146
- createdAt: '2022-03-28T11:29:15.072Z',
147
- updatedAt: '2022-03-30T03:29:30.271Z',
148
- },
149
- },
150
- location1: {
151
- pathname: '/rcs/create',
152
- query: {
153
- type: false,
154
- module: 'default',
155
- },
156
- search: '',
157
- },
158
- location2: {
159
- pathname: '/rcs/edit',
160
- query: {
161
- type: false,
162
- module: 'default',
163
- },
164
- search: '',
165
- },
166
- };
@@ -1,40 +0,0 @@
1
- import React from 'react';
2
- import CapLabel from '@capillarytech/cap-ui-library/CapLabel';
3
- import CapImage from '@capillarytech/cap-ui-library/CapImage';
4
- import { RCS } from '../CreativesContainer/constants';
5
- import './index.scss';
6
- export const getRCSContent = (template) => {
7
- const {
8
- versions: {
9
- base: {
10
- content: {
11
- [RCS]: {
12
- cardContent = [{}],
13
- } = {},
14
- } = {},
15
- } = {},
16
- } = {},
17
- } = template;
18
- const { media = {}, description, title } = cardContent[0];
19
- const { mediaUrl } = media;
20
- return (
21
- <div className="cap-rcs-creatives">
22
- {mediaUrl && (
23
- <CapImage
24
- src={mediaUrl}
25
- className="rcs-listing-image"
26
- />
27
- )}
28
- <CapLabel
29
- type="label19"
30
- className="rcs-listing-content title"
31
- fontWeight="bold"
32
- >
33
- {title}
34
- </CapLabel>
35
- <CapLabel type="label19" className="rcs-listing-content desc">
36
- {description}
37
- </CapLabel>
38
- </div>
39
- );
40
- };