@capillarytech/creatives-library 7.17.118 → 7.17.120-alpha.0

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 (29) hide show
  1. package/package.json +1 -1
  2. package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +16 -12
  3. package/v2Components/CapImageUpload/constants.js +6 -0
  4. package/v2Components/CapImageUpload/index.js +16 -17
  5. package/v2Components/CapImageUpload/index.scss +3 -0
  6. package/v2Components/CapImageUpload/messages.js +3 -7
  7. package/v2Components/CapVideoUpload/constants.js +6 -0
  8. package/v2Components/CapVideoUpload/index.js +46 -20
  9. package/v2Components/CapVideoUpload/index.scss +4 -1
  10. package/v2Components/CapVideoUpload/messages.js +10 -6
  11. package/v2Components/FormBuilder/constants.js +0 -2
  12. package/v2Components/FormBuilder/index.js +28 -4
  13. package/v2Components/TemplatePreview/_templatePreview.scss +21 -0
  14. package/v2Components/TemplatePreview/index.js +56 -45
  15. package/v2Containers/CreativesContainer/SlideBoxContent.js +10 -4
  16. package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -0
  17. package/v2Containers/CreativesContainer/messages.js +4 -0
  18. package/v2Containers/CreativesContainer/tests/SlideBoxContent.test.js +11 -0
  19. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +225 -0
  20. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +40 -25
  21. package/v2Containers/Templates/_templates.scss +9 -4
  22. package/v2Containers/Templates/index.js +29 -8
  23. package/v2Containers/Viber/constants.js +58 -0
  24. package/v2Containers/Viber/index.js +402 -421
  25. package/v2Containers/Viber/index.scss +113 -0
  26. package/v2Containers/Viber/messages.js +68 -0
  27. package/v2Containers/Viber/style.js +20 -0
  28. package/v2Containers/Viber/tests/index.test.js +297 -0
  29. package/v2Containers/Viber/tests/mockData.js +134 -0
@@ -0,0 +1,113 @@
1
+ @import '~@capillarytech/cap-ui-library/styles/_variables';
2
+
3
+ #viber_input {
4
+ height: $CAP_SPACE_40;
5
+ }
6
+ .viber-media-radio>label.ant-radio-wrapper {
7
+ margin-right: $CAP_SPACE_24;
8
+ }
9
+ .viber-render-heading {
10
+ margin-top: $CAP_SPACE_06;
11
+ margin-bottom: $CAP_SPACE_06;
12
+ }
13
+ .cap-custom-image-upload {
14
+ .dragger-button.re-upload {
15
+ top: -11rem;
16
+ position: relative;
17
+ left: 32.75rem;
18
+ color: $FONT_COLOR_05;
19
+ }
20
+ }
21
+ .cap-custom-video-upload {
22
+ padding-top: $CAP_SPACE_20;
23
+ .dragger-button.re-upload {
24
+ top: -11rem;
25
+ position: relative;
26
+ left: 32.75rem;
27
+ color: $FONT_COLOR_05;
28
+ }
29
+ }
30
+
31
+ .viber-message-header {
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: space-between;
35
+ margin-top: $CAP_SPACE_24;
36
+ margin-bottom: $CAP_SPACE_08;
37
+ .viber-message-header-style {
38
+ font-weight: 500;
39
+ }
40
+ }
41
+
42
+ .viber-button-none {
43
+ display: inline-grid;
44
+ margin-top: $CAP_SPACE_16;
45
+ }
46
+
47
+ .viber-button-cta {
48
+ display: inline-grid;
49
+ margin-top: $CAP_SPACE_24;
50
+ }
51
+
52
+ .viber-render-heading {
53
+ margin-top: $CAP_SPACE_24;
54
+ margin-bottom: $CAP_SPACE_06;
55
+ }
56
+ .viber-optional-label {
57
+ margin-left: $CAP_SPACE_08;
58
+ color: $FONT_COLOR_03;
59
+ font-weight: normal;
60
+ font-size: $CAP_SPACE_12;
61
+ }
62
+ .viber-btn-radio-group {
63
+ display: grid;
64
+ }
65
+ .button-section {
66
+ margin-top: $CAP_SPACE_40;
67
+ }
68
+ .button-text {
69
+ margin-bottom: $CAP_SPACE_08;
70
+ }
71
+ .cta-btn-action {
72
+ margin-right: $CAP_SPACE_12;
73
+ }
74
+ .cta-actions {
75
+ margin-top: $CAP_SPACE_16;
76
+ }
77
+ .cta-section {
78
+ border: 1px solid $CAP_G06;
79
+ border-radius: $CAP_SPACE_04;
80
+ padding: $CAP_SPACE_16 $CAP_SPACE_24;
81
+ margin-left: $CAP_SPACE_24;
82
+ margin-top: $CAP_SPACE_12;
83
+ }
84
+ .button-url {
85
+ max-width: 25rem;
86
+ overflow: hidden;
87
+ text-overflow: ellipsis;
88
+ white-space: nowrap;
89
+ }
90
+ .button-edit-icon {
91
+ margin-left: auto;
92
+ cursor: pointer;
93
+ }
94
+ .cta-section-saved {
95
+ display: flex;
96
+ border: 1px solid $CAP_G06;
97
+ border-radius: $CAP_SPACE_04;
98
+ padding: $CAP_SPACE_16 $CAP_SPACE_24;
99
+ margin-left: $CAP_SPACE_24;
100
+ margin-top: $CAP_SPACE_12;
101
+ }
102
+ .cta-text {
103
+ text-align: left;
104
+ margin-right: $CAP_SPACE_24;
105
+ }
106
+ .cta-text-input {
107
+ padding-bottom: $CAP_SPACE_12;
108
+ }
109
+ .char-count-viber {
110
+ display: inline-block;
111
+ float: right;
112
+ margin-top: $CAP_SPACE_08;
113
+ }
@@ -142,4 +142,72 @@ export default defineMessages({
142
142
  id: `${scope}.inValidUrliErrorMessage`,
143
143
  defaultMessage: 'Button URL is not valid',
144
144
  },
145
+ mediaLabel: {
146
+ id: `${scope}.mediaLabel`,
147
+ defaultMessage: "Media",
148
+ },
149
+ mediaText: {
150
+ id: `${scope}.mediaText`,
151
+ defaultMessage: 'Text',
152
+ },
153
+ mediaImage: {
154
+ id: `${scope}.mediaImage`,
155
+ defaultMessage: 'Image',
156
+ },
157
+ mediaVideo: {
158
+ id: `${scope}.mediaVideo`,
159
+ defaultMessage: 'Video',
160
+ },
161
+ videoErrorMessage: {
162
+ id: `${scope}.videoErrorMessage`,
163
+ defaultMessage: 'Please upload the video with allowed file extension, size, dimension and aspect ratio',
164
+ },
165
+ enterMessage: {
166
+ id: `${scope}.enterMessage`,
167
+ defaultMessage: 'Enter message',
168
+ },
169
+ charCount: {
170
+ id: `${scope}.charCount`,
171
+ defaultMessage: 'Characters count:',
172
+ },
173
+ btnLabel: {
174
+ id: `${scope}.btnLabel`,
175
+ defaultMessage: 'Buttons',
176
+ },
177
+ btnDesc: {
178
+ id: `${scope}.btnDesc`,
179
+ defaultMessage: 'These will be show clickable buttons below your message.',
180
+ },
181
+ btnTypeNone: {
182
+ id: `${scope}.btnTypeNone`,
183
+ defaultMessage: 'None',
184
+ },
185
+ btnTypeCTA: {
186
+ id: `${scope}.btnTypeCTA`,
187
+ defaultMessage: 'Call to action',
188
+ },
189
+ ctaDesc: {
190
+ id: `${scope}.ctaDesc`,
191
+ defaultMessage: 'Create a button that lets customers respond to your messages or take action',
192
+ },
193
+ buttonTextTooltip: {
194
+ id: `${scope}.buttonTextTooltip`,
195
+ defaultMessage: 'Use this to name the button. We would recommend not to use special characters here',
196
+ },
197
+ enterButtonText: {
198
+ id: `${scope}.enterButtonText`,
199
+ defaultMessage: 'Enter button text',
200
+ },
201
+ enterButtonUrl: {
202
+ id: `${scope}.enterButtonUrl`,
203
+ defaultMessage: 'Enter button url',
204
+ },
205
+ save: {
206
+ id: `${scope}.save`,
207
+ defaultMessage: 'Save',
208
+ },
209
+ cancel: {
210
+ id: `${scope}.cancel`,
211
+ defaultMessage: 'Cancel',
212
+ },
145
213
  });
@@ -0,0 +1,20 @@
1
+ import styled from 'styled-components';
2
+ import {
3
+ CAP_SPACE_32,
4
+ CAP_SPACE_24,
5
+ CAP_WHITE,
6
+ CAP_SPACE_16,
7
+ } from '@capillarytech/cap-ui-library/styled/variables';
8
+ export const ViberFooter = styled.div`
9
+ background-color: ${CAP_WHITE};
10
+ position: fixed;
11
+ bottom: 0;
12
+ width: 100%;
13
+ margin-left: -2rem;
14
+ padding: ${CAP_SPACE_32} ${CAP_SPACE_24};
15
+
16
+ .ant-btn {
17
+ margin-right: ${CAP_SPACE_16};
18
+ }
19
+ }
20
+ `;
@@ -0,0 +1,297 @@
1
+ import React from 'react';
2
+ import { injectIntl } from 'react-intl';
3
+ import { browserHistory } from 'react-router';
4
+ import '@testing-library/jest-dom';
5
+ import { Provider } from 'react-redux';
6
+ import configureStore from '../../../store';
7
+ import { Viber } from '../index';
8
+ import { render, screen, fireEvent } from '../../../utils/test-utils';
9
+ import { largeText, templateDetailsImage, templateDetailsText, templateDetailsVideo, templateDetails_ } from './mockData';
10
+ import { metaEntities, getDefaultTags, injectedTags } from '../../Zalo/tests/mockData';
11
+
12
+ const mockActions = {
13
+ getTemplateDetails: jest.fn(),
14
+ editTemplate: jest.fn(),
15
+ createTemplate: jest.fn(),
16
+ uploadViberAsset: jest.fn(),
17
+ clearViberAsset: jest.fn(),
18
+ clearEditResponse: jest.fn(),
19
+ clearCreateResponse: jest.fn(),
20
+ };
21
+ const mockGlobalActions = {
22
+ fetchSchemaForEntity: jest.fn(),
23
+ };
24
+
25
+ let store;
26
+ beforeAll(() => {
27
+ store = configureStore({}, browserHistory);
28
+ });
29
+
30
+ const ComponentToRender = injectIntl(Viber);
31
+ const renderComponent = (props) =>
32
+ render(
33
+ <Provider store={store}>
34
+ <ComponentToRender {...props} />
35
+ </Provider>,
36
+ );
37
+
38
+ describe('Test Viber container', () => {
39
+ it('test case for Viber template creation flow', async () => {
40
+ renderComponent({
41
+ actions: mockActions,
42
+ globalActions: mockGlobalActions,
43
+ templateData: {mode: 'create'},
44
+ viber: {
45
+ uploadedAssetData: {},
46
+ createTemplateInProgress: false,
47
+ },
48
+ location: {
49
+ pathname: "/sms/edit",
50
+ query: {
51
+ type: false,
52
+ module: "default",
53
+ },
54
+ search: "",
55
+ },
56
+ isFullMode: true,
57
+ handleClose: jest.fn(),
58
+ });
59
+ const inputBox = await screen.findAllByPlaceholderText(
60
+ 'Enter template name',
61
+ );
62
+ fireEvent.change(inputBox[0], { target: { value: 'Hello, welcome' } });
63
+ fireEvent.change(inputBox[0], { target: { value: '' } });
64
+ fireEvent.change(inputBox[0], { target: { value: 'temp title' } });
65
+ const imageRadio = screen.getByRole('radio', {name: /image/i});
66
+ fireEvent.click(imageRadio);
67
+ const textRadio = screen.getByRole('radio', {name: /text/i});
68
+ fireEvent.click(textRadio);
69
+ const videoRadio = screen.getByRole('radio', {name: /video/i});
70
+ fireEvent.click(videoRadio);
71
+ fireEvent.click(textRadio);
72
+ const msgBox = screen.getAllByPlaceholderText(/Enter message/i);
73
+ msgBox[0].focus();
74
+ fireEvent.change(msgBox[0], { target: { value: 'temp message' }});
75
+ fireEvent.change(msgBox[0], { target: { value: '' }});
76
+ fireEvent.change(msgBox[0], { target: { value: 'test}}' }});
77
+ fireEvent.change(msgBox[0], { target: { value: largeText }});
78
+ fireEvent.change(msgBox[0], { target: { value: 'temp message' }});
79
+ fireEvent.change(inputBox[0], { target: { value: '' } });
80
+ fireEvent.change(inputBox[0], { target: { value: 'temp title' } });
81
+ const ctaRadioBtn = screen.getByRole('radio', {
82
+ name: /call to action create a button that lets customers respond to your messages or take action/i,
83
+ });
84
+ fireEvent.click(ctaRadioBtn);
85
+ const cancelBtn_ = screen.getAllByRole('button', {name: /cancel/i});
86
+ fireEvent.click(cancelBtn_[0]);
87
+ fireEvent.click(ctaRadioBtn);
88
+ const ctaBtnText = await screen.findByPlaceholderText(
89
+ 'Enter button text',
90
+ );
91
+ fireEvent.change(ctaBtnText, { target: { value: 'btn text' } });
92
+ const ctaBtnUrl = await screen.findByPlaceholderText(
93
+ 'Enter button url',
94
+ );
95
+ fireEvent.change(ctaBtnUrl, { target: { value: 'https://www.test.com' } });
96
+ fireEvent.change(ctaBtnUrl, { target: { value: 'not url' } });
97
+ fireEvent.change(ctaBtnUrl, { target: { value: 'https://www.test.com' } });
98
+ const saveBtn = await screen.findByRole('button', {
99
+ name: /save/i,
100
+ });
101
+ expect(saveBtn).toBeEnabled();
102
+ fireEvent.click(saveBtn);
103
+ const editCta = await screen.findByLabelText(/edit-cta-icon/i);
104
+ fireEvent.click(editCta);
105
+ const cancelBtn = screen.getAllByRole('button', {name: /cancel/i});
106
+ fireEvent.click(cancelBtn[0]);
107
+ const doneBtn = await screen.findByRole('button', {
108
+ name: /done/i,
109
+ });
110
+ expect(doneBtn).toBeEnabled();
111
+ fireEvent.click(doneBtn);
112
+ expect(mockActions.createTemplate).toHaveBeenCalled();
113
+ });
114
+ it('test case for Viber template creation flow for image media type', async () => {
115
+ renderComponent({
116
+ actions: mockActions,
117
+ globalActions: mockGlobalActions,
118
+ templateData: {mode: 'create'},
119
+ viber: {
120
+ uploadedAssetData: {},
121
+ createTemplateInProgress: false,
122
+ templateDetails: templateDetailsImage,
123
+ },
124
+ location: {
125
+ pathname: "/sms/edit",
126
+ query: {
127
+ type: false,
128
+ module: "default",
129
+ },
130
+ search: "",
131
+ },
132
+ isFullMode: true,
133
+ params: { id: 'test'},
134
+ handleClose: jest.fn(),
135
+ });
136
+ const doneBtn = screen.getByRole('button', {
137
+ name: /done/i,
138
+ });
139
+ expect(doneBtn).toBeEnabled();
140
+ fireEvent.click(doneBtn);
141
+ expect(mockActions.editTemplate).toHaveBeenCalled();
142
+ });
143
+ it('test case for Viber template creation flow for image not present', async () => {
144
+ renderComponent({
145
+ actions: mockActions,
146
+ globalActions: mockGlobalActions,
147
+ templateData: {mode: 'create'},
148
+ viber: {
149
+ uploadedAssetData: {},
150
+ createTemplateInProgress: false,
151
+ templateDetails: templateDetailsImage,
152
+ },
153
+ location: {
154
+ pathname: "/sms/edit",
155
+ query: {
156
+ type: false,
157
+ module: "default",
158
+ },
159
+ search: "",
160
+ },
161
+ isFullMode: true,
162
+ params: { id: 'test'},
163
+ handleClose: jest.fn(),
164
+ });
165
+ const reupload = screen.getByRole('button', {
166
+ name: /reupload/i,
167
+ });
168
+ fireEvent.click(reupload);
169
+ const doneBtn = screen.getByRole('button', {
170
+ name: /done/i,
171
+ });
172
+ expect(doneBtn).toBeDisabled();
173
+ });
174
+ it('test case for Viber template creation flow for video media type', async () => {
175
+ renderComponent({
176
+ actions: mockActions,
177
+ globalActions: mockGlobalActions,
178
+ templateData: {mode: 'create'},
179
+ viber: {
180
+ uploadedAssetData: {},
181
+ createTemplateInProgress: false,
182
+ templateDetails: templateDetailsVideo,
183
+ },
184
+ location: {
185
+ pathname: "/sms/edit",
186
+ query: {
187
+ type: false,
188
+ module: "default",
189
+ },
190
+ search: "",
191
+ },
192
+ isFullMode: true,
193
+ params: { id: 'test'},
194
+ handleClose: jest.fn(),
195
+ metaEntities,
196
+ getDefaultTags,
197
+ injectedTags,
198
+ });
199
+ const doneBtn = screen.getByRole('button', {
200
+ name: /done/i,
201
+ });
202
+ expect(doneBtn).toBeEnabled();
203
+ fireEvent.click(doneBtn);
204
+ expect(mockActions.editTemplate).toHaveBeenCalled();
205
+ });
206
+ it('test case for Viber template creation flow for text type', async () => {
207
+ renderComponent({
208
+ actions: mockActions,
209
+ globalActions: mockGlobalActions,
210
+ templateData: {mode: 'create'},
211
+ viber: {
212
+ uploadedAssetData: {},
213
+ createTemplateInProgress: false,
214
+ templateDetails: templateDetailsText,
215
+ },
216
+ location: {
217
+ pathname: "/sms/edit",
218
+ query: {
219
+ type: false,
220
+ module: "default",
221
+ },
222
+ search: "",
223
+ },
224
+ isFullMode: true,
225
+ params: { id: 'test'},
226
+ handleClose: jest.fn(),
227
+ metaEntities,
228
+ getDefaultTags,
229
+ injectedTags,
230
+ });
231
+ const doneBtn = screen.getByRole('button', {
232
+ name: /done/i,
233
+ });
234
+ expect(doneBtn).toBeEnabled();
235
+ fireEvent.click(doneBtn);
236
+ expect(mockActions.editTemplate).toHaveBeenCalled();
237
+ });
238
+ it('test case for Viber template creation flow for video not present', async () => {
239
+ renderComponent({
240
+ actions: mockActions,
241
+ globalActions: mockGlobalActions,
242
+ templateData: {mode: 'create'},
243
+ viber: {
244
+ uploadedAssetData: {},
245
+ createTemplateInProgress: false,
246
+ templateDetails: templateDetailsVideo,
247
+ },
248
+ location: {
249
+ pathname: "/sms/edit",
250
+ query: {
251
+ type: false,
252
+ module: "default",
253
+ },
254
+ search: "",
255
+ },
256
+ params: { id: 'test'},
257
+ handleClose: jest.fn(),
258
+ metaEntities,
259
+ getDefaultTags,
260
+ injectedTags,
261
+ });
262
+ const reupload = screen.getByRole('button', {
263
+ name: /re upload/i,
264
+ });
265
+ fireEvent.click(reupload);
266
+ const doneBtn = screen.getByRole('button', {
267
+ name: /done/i,
268
+ });
269
+ expect(doneBtn).toBeDisabled();
270
+ });
271
+ it('test case for Viber template for error cases', async () => {
272
+ renderComponent({
273
+ actions: mockActions,
274
+ globalActions: mockGlobalActions,
275
+ viber: {
276
+ uploadedAssetData: {},
277
+ createTemplateInProgress: false,
278
+ templateDetails: templateDetails_,
279
+ },
280
+ location: {
281
+ pathname: "/sms/edit",
282
+ query: {
283
+ type: true,
284
+ module: "default",
285
+ },
286
+ search: "",
287
+ },
288
+ isFullMode: true,
289
+ params: { id: 'test'},
290
+ handleClose: jest.fn(),
291
+ });
292
+ const doneBtn = screen.getByRole('button', {
293
+ name: /done/i,
294
+ });
295
+ expect(doneBtn).toBeDisabled();
296
+ });
297
+ });
@@ -0,0 +1,134 @@
1
+ export const largeText =
2
+ "test viber message test edit test viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edit test viber message test edit test viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edit test viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test edittest viber message test ittest viber message test";
3
+ export const templateDetailsImage = {
4
+ _id: "664670d929ce5e6fd17c355f",
5
+ name: "test temp_1",
6
+ type: "VIBER",
7
+ versions: {
8
+ history: [],
9
+ base: {
10
+ content: {
11
+ destinations: [
12
+ {
13
+ to: {
14
+ phoneNumber: "{{viber_user_id}}",
15
+ },
16
+ },
17
+ ],
18
+ content: {
19
+ text: "test msg",
20
+ image: {
21
+ url: "https://crm-nightly-new-fileservice.s3.amazonaws.com/intouch_creative_assets/19e1c698-7be8-4f03-beb5-c96b11a3.jpg",
22
+ },
23
+ button: {
24
+ text: "test button",
25
+ url: "https://www.figma.com/file/2iksCNafQinyHxqAoKYR0z/Badges-in-Campaigns-and-Journeys?type=design&node-id=10-66632&mode=design&t=J0LMbSnho0paUjJK-0",
26
+ },
27
+ },
28
+ },
29
+ },
30
+ },
31
+ isActive: true,
32
+ orgId: 1231,
33
+ createdBy: "50685415",
34
+ updatedBy: "50685415",
35
+ createdAt: "2024-05-16T20:47:21.488Z",
36
+ updatedAt: "2024-05-17T13:25:49.078Z",
37
+ };
38
+ export const templateDetailsVideo = {
39
+ _id: "6646ef8af3c82f686462cf91",
40
+ name: "test temp_2",
41
+ type: "VIBER",
42
+ versions: {
43
+ history: [],
44
+ base: {
45
+ content: {
46
+ destinations: [
47
+ {
48
+ to: {
49
+ phoneNumber: "{{viber_user_id}}",
50
+ },
51
+ },
52
+ ],
53
+ content: {
54
+ text: "test video message test video messagetest video messagetest video messagetest video messagetest video messagetest video messagetest video messagetest video messagetest video messagetest video messagetest video messagetest video message test video message test video messagetest video messagetest video messagetest video messagetest video messagetest video messagetest video messagetest overrrrrrrrr",
55
+ video: {
56
+ url: "https://crm-nightly-new-fileservice.s3.amazonaws.com/video_screenshot_assets__1715924855107.png/1040",
57
+ thumbnailUrl: "https://crm-nightly-new-fileservice.s3.amazonaws.com/video_screenshot_assets__1715924855107.png/1040",
58
+ duration: "",
59
+ },
60
+ button: {
61
+ text: "test button",
62
+ url: "https://www.test.com/file/",
63
+ },
64
+ },
65
+ },
66
+ },
67
+ },
68
+ isActive: true,
69
+ orgId: 1231,
70
+ createdBy: "50685415",
71
+ updatedBy: "50685415",
72
+ createdAt: "2024-05-17T05:47:54.636Z",
73
+ updatedAt: "2024-05-17T12:05:52.950Z",
74
+ };
75
+ export const templateDetails_ = {
76
+ _id: "6646ef8af3c82f686462cf91",
77
+ name: "test temp_2",
78
+ type: "VIBER",
79
+ versions: {
80
+ history: [],
81
+ base: {
82
+ content: {
83
+ destinations: [
84
+ {
85
+ to: {
86
+ phoneNumber: "{{viber_user_id}}",
87
+ },
88
+ },
89
+ ],
90
+ content: {
91
+ video: {
92
+ url: "https://crm-nightly-new-fileservice.s3.amazonaws.com/video_screenshot_assets__1715924855107.png/1040",
93
+ thumbnailUrl: "https://crm-nightly-new-fileservice.s3.amazonaws.com/video_screenshot_assets__1715924855107.png/1040",
94
+ duration: "",
95
+ },
96
+ },
97
+ },
98
+ },
99
+ },
100
+ isActive: true,
101
+ orgId: 1231,
102
+ createdBy: "50685415",
103
+ updatedBy: "50685415",
104
+ createdAt: "2024-05-17T05:47:54.636Z",
105
+ updatedAt: "2024-05-17T12:05:52.950Z",
106
+ };
107
+ export const templateDetailsText = {
108
+ _id: "6646ef8af3c82f686462cf91",
109
+ name: "test temp_2",
110
+ type: "VIBER",
111
+ versions: {
112
+ history: [],
113
+ base: {
114
+ content: {
115
+ destinations: [
116
+ {
117
+ to: {
118
+ phoneNumber: "{{viber_user_id}}",
119
+ },
120
+ },
121
+ ],
122
+ content: {
123
+ text: 'test',
124
+ },
125
+ },
126
+ },
127
+ },
128
+ isActive: true,
129
+ orgId: 1231,
130
+ createdBy: "50685415",
131
+ updatedBy: "50685415",
132
+ createdAt: "2024-05-17T05:47:54.636Z",
133
+ updatedAt: "2024-05-17T12:05:52.950Z",
134
+ };