@capillarytech/creatives-library 8.0.113 → 8.0.114-alpha.1
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/containers/App/test/saga.test.js +1 -1
- package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +1 -1
- package/containers/Assets/Gallery/tests/actions.test.js +2 -3
- package/containers/Assets/Gallery/tests/reducer.test.js +7 -7
- package/containers/Assets/Gallery/tests/saga.test.js +9 -9
- package/containers/Dashboard/test/saga.test.js +1 -1
- package/containers/Ebill/test/saga.test.js +1 -1
- package/containers/Email/test/saga.test.js +33 -33
- package/containers/LanguageProvider/tests/actions.test.js +1 -1
- package/containers/LanguageProvider/tests/reducer.test.js +2 -2
- package/containers/LanguageProvider/tests/selectors.test.js +1 -1
- package/containers/Line/Create/tests/saga.test.js +2 -9
- package/containers/Line/Edit/test/saga.test.js +10 -14
- package/containers/MobilePush/Create/test/saga.test.js +2 -2
- package/containers/MobilePush/Edit/tests/saga.test.js +14 -14
- package/containers/Sms/Create/test/saga.test.js +4 -5
- package/containers/Sms/Edit/test/saga.test.js +1 -1
- package/containers/Templates/test/saga.test.js +14 -17
- package/containers/WeChat/MapTemplates/test/saga.test.js +9 -13
- package/containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +1 -1
- package/containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +1 -1
- package/package.json +1 -1
- package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +8 -9
- package/utils/commonUtils.js +359 -3
- package/utils/tagValidations.js +20 -5
- package/utils/tests/authWrapper.test.js +2 -2
- package/utils/tests/cdnTransformation.test.js +16 -15
- package/utils/tests/commonUtil.test.js +474 -171
- package/utils/tests/tagValidations.test.js +89 -2
- package/v2Components/CapVideoUpload/tests/index.test.js +1 -1
- package/v2Components/CapWhatsappCTA/tests/index.test.js +1 -2
- package/v2Components/ErrorInfoNote/ErrorTypeRenderer.js +127 -0
- package/v2Components/ErrorInfoNote/ErrorTypeRenderer.test.js +147 -0
- package/v2Components/ErrorInfoNote/index.js +114 -46
- package/v2Components/ErrorInfoNote/messages.js +25 -0
- package/v2Components/ErrorInfoNote/style.scss +14 -1
- package/v2Components/ErrorInfoNote/utils.js +38 -0
- package/v2Components/ErrorInfoNote/utils.test.js +156 -0
- package/v2Components/FormBuilder/index.js +204 -127
- package/v2Components/FormBuilder/messages.js +1 -1
- package/v2Components/MarketingObjective/test/index.test.js +1 -1
- package/v2Components/NavigationBar/tests/saga.test.js +2 -3
- package/v2Containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +1 -1
- package/v2Containers/Assets/Gallery/tests/actions.test.js +2 -3
- package/v2Containers/Assets/Gallery/tests/reducer.test.js +7 -7
- package/v2Containers/Assets/Gallery/tests/saga.test.js +2 -2
- package/v2Containers/BeeEditor/test/saga.test.js +1 -1
- package/v2Containers/CallTask/test/saga.test.js +1 -1
- package/v2Containers/Cap/reducer.js +4 -4
- package/v2Containers/Cap/tests/actions.test.js +1 -1
- package/v2Containers/Cap/tests/reducer.test.js +11 -11
- package/v2Containers/Cap/tests/saga.test.js +1 -1
- package/v2Containers/Cap/tests/selectors.test.js +3 -3
- package/v2Containers/CapFacebookPreview/tests/saga.test.js +1 -1
- package/v2Containers/CreativesContainer/SlideBoxContent.js +23 -3
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +3 -1
- package/v2Containers/CreativesContainer/constants.js +4 -1
- package/v2Containers/CreativesContainer/index.js +44 -19
- package/v2Containers/CreativesContainer/messages.js +4 -0
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +21 -3
- package/v2Containers/Ebill/index.js +3 -3
- package/v2Containers/Ebill/test/saga.test.js +1 -1
- package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +4 -4
- package/v2Containers/Email/tests/actions.test.js +1 -1
- package/v2Containers/Email/tests/reducer.test.js +2 -2
- package/v2Containers/EmailWrapper/components/EmailWrapperView.js +1 -1
- package/v2Containers/FTP/test/saga.test.js +1 -1
- package/v2Containers/Facebook/test/saga.test.js +7 -7
- package/v2Containers/InApp/index.js +123 -50
- package/v2Containers/InApp/tests/action.test.js +7 -7
- package/v2Containers/InApp/tests/index.test.js +2 -4
- package/v2Containers/InApp/tests/reducer.test.js +175 -89
- package/v2Containers/InApp/tests/sagas.test.js +1 -1
- package/v2Containers/InApp/tests/utils.test.js +41 -0
- package/v2Containers/InApp/utils.js +37 -0
- package/v2Containers/LanguageProvider/tests/actions.test.js +1 -1
- package/v2Containers/LanguageProvider/tests/reducer.test.js +3 -3
- package/v2Containers/LanguageProvider/tests/saga.test.js +2 -2
- package/v2Containers/LanguageProvider/tests/selectors.test.js +1 -1
- package/v2Containers/Line/Container/ImageCarousel/tests/utils.test.js +3 -3
- package/v2Containers/Line/Container/Sticker/tests/utils.test.js +6 -6
- package/v2Containers/MobilePush/Create/index.js +24 -20
- package/v2Containers/MobilePush/Create/test/saga.test.js +2 -2
- package/v2Containers/MobilePush/Edit/index.js +6 -2
- package/v2Containers/MobilePush/Edit/test/saga.test.js +14 -14
- package/v2Containers/MobilepushWrapper/index.js +2 -0
- package/v2Containers/Rcs/tests/saga.test.js +1 -1
- package/v2Containers/Sms/Create/index.js +1 -0
- package/v2Containers/Sms/Create/test/saga.test.js +1 -1
- package/v2Containers/Sms/Edit/index.js +2 -0
- package/v2Containers/Sms/Edit/test/saga.test.js +5 -5
- package/v2Containers/SmsTrai/Create/tests/saga.test.js +1 -1
- package/v2Containers/SmsTrai/Create/tests/selectors.test.js +1 -1
- package/v2Containers/SmsWrapper/index.js +2 -0
- package/v2Containers/TagList/tests/TagList.test.js +1 -3
- package/v2Containers/TagList/tests/utils.test.js +3 -3
- package/v2Containers/Templates/tests/actions.test.js +1 -1
- package/v2Containers/Templates/tests/reducer.test.js +8 -8
- package/v2Containers/Templates/tests/sagas.test.js +2 -4
- package/v2Containers/WeChat/MapTemplates/test/saga.test.js +9 -13
- package/v2Containers/WeChat/RichmediaTemplates/Create/test/saga.test.js +1 -1
- package/v2Containers/WeChat/RichmediaTemplates/Edit/test/saga.test.js +1 -1
- package/v2Containers/Whatsapp/tests/__snapshots__/utils.test.js.snap +9 -9
- package/v2Containers/Whatsapp/tests/actions.test.js +3 -3
- package/v2Containers/Whatsapp/tests/reducer.test.js +32 -36
- package/v2Containers/Whatsapp/tests/utils.test.js +19 -19
- package/v2Containers/Zalo/tests/actions.test.js +3 -3
- package/v2Containers/Zalo/tests/reducer.test.js +72 -42
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { processErrors, getLiquidProps } from './utils';
|
|
2
|
+
|
|
3
|
+
const makeMessages = (overrides = {}) => ({
|
|
4
|
+
standardErrorHeader: { id: 'standard', defaultMessage: 'Standard' },
|
|
5
|
+
dynamicErrorHeader: { id: 'liquid', defaultMessage: 'Liquid' },
|
|
6
|
+
...overrides,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
// Mock platform constants
|
|
10
|
+
const ANDROID = 'ANDROID';
|
|
11
|
+
const IOS = 'IOS';
|
|
12
|
+
|
|
13
|
+
describe('processErrors', () => {
|
|
14
|
+
it('returns empty errors if platform is not specified and input has GENERIC key', () => {
|
|
15
|
+
const messages = makeMessages();
|
|
16
|
+
const raw = { ANDROID: ['a1'], IOS: ['i1'], GENERIC: ['g1', 'g2'] };
|
|
17
|
+
const result = processErrors(raw, 'standard', undefined, messages);
|
|
18
|
+
expect(result.errorsToShow).toEqual([]);
|
|
19
|
+
expect(result.platformLabel).toBeUndefined();
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('returns empty errors for object input with missing keys', () => {
|
|
23
|
+
const messages = makeMessages();
|
|
24
|
+
const raw = { ANDROID: [], IOS: [], GENERIC: [] };
|
|
25
|
+
const result = processErrors(raw, 'standard', 'ANDROID', messages);
|
|
26
|
+
expect(result.errorsToShow).toEqual([]);
|
|
27
|
+
expect(result.platformLabel).toBe('ANDROID');
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it('returns empty errors for null/undefined/empty input', () => {
|
|
31
|
+
const messages = makeMessages();
|
|
32
|
+
expect(processErrors(null, 'standard', undefined, messages).errorsToShow).toEqual([]);
|
|
33
|
+
expect(processErrors(undefined, 'standard', undefined, messages).errorsToShow).toEqual([]);
|
|
34
|
+
expect(processErrors([], 'standard', undefined, messages).errorsToShow).toEqual([]);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('returns empty errors for object input with only GENERIC key', () => {
|
|
38
|
+
const messages = makeMessages();
|
|
39
|
+
const raw = { GENERIC: ['g1', 'g2'] };
|
|
40
|
+
const result = processErrors(raw, 'standard', undefined, messages);
|
|
41
|
+
expect(result.errorsToShow).toEqual([]);
|
|
42
|
+
expect(result.platformLabel).toBeUndefined();
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('handles object input with only ANDROID/IOS keys', () => {
|
|
46
|
+
const messages = makeMessages();
|
|
47
|
+
const raw = { ANDROID: ['a1'], IOS: ['i1'] };
|
|
48
|
+
const result = processErrors(raw, 'standard', 'ANDROID', messages);
|
|
49
|
+
expect(result.errorsToShow).toEqual(['a1']);
|
|
50
|
+
expect(result.platformLabel).toBe('ANDROID');
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('handles object input with no errors for currentTab', () => {
|
|
54
|
+
const messages = makeMessages();
|
|
55
|
+
const raw = { ANDROID: [], IOS: ['i1'] };
|
|
56
|
+
const result = processErrors(raw, 'standard', 'ANDROID', messages);
|
|
57
|
+
expect(result.errorsToShow).toEqual([]);
|
|
58
|
+
expect(result.platformLabel).toBe('ANDROID');
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('returns undefined platformLabel for object input with no GENERIC key and no platform', () => {
|
|
62
|
+
const messages = makeMessages();
|
|
63
|
+
const raw = { ANDROID: ['a1'], IOS: ['i1'] };
|
|
64
|
+
const result = processErrors(raw, 'standard', undefined, messages);
|
|
65
|
+
expect(result.errorsToShow).toEqual([]);
|
|
66
|
+
expect(result.platformLabel).toBeUndefined();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('returns correct title and errors for array input with errorType liquid', () => {
|
|
70
|
+
const messages = makeMessages();
|
|
71
|
+
const result = processErrors(['liquidErr1', 'liquidErr2'], 'liquid', undefined, messages);
|
|
72
|
+
expect(result.errorsToShow).toEqual(['liquidErr1', 'liquidErr2']);
|
|
73
|
+
expect(result.title.props.id).toBe('liquid');
|
|
74
|
+
expect(result.title.props.defaultMessage).toBe('Liquid');
|
|
75
|
+
expect(result.platformLabel).toBeNull();
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('returns correct title and errors for object input with errorType liquid and platform', () => {
|
|
79
|
+
const messages = makeMessages();
|
|
80
|
+
const raw = { ANDROID: ['l1', 'l2'], IOS: ['l3'], GENERIC: ['lg1'] };
|
|
81
|
+
const result = processErrors(raw, 'liquid', 'ANDROID', messages);
|
|
82
|
+
expect(result.errorsToShow).toEqual(['l1', 'l2']);
|
|
83
|
+
expect(result.title.props.id).toBe('liquid');
|
|
84
|
+
expect(result.title.props.defaultMessage).toBe('Liquid');
|
|
85
|
+
expect(result.platformLabel).toBe('ANDROID');
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('returns empty errors for object input with errorType liquid and no platform', () => {
|
|
89
|
+
const messages = makeMessages();
|
|
90
|
+
const raw = { ANDROID: ['l1'], IOS: ['l2'], GENERIC: ['lg1', 'lg2'] };
|
|
91
|
+
const result = processErrors(raw, 'liquid', undefined, messages);
|
|
92
|
+
expect(result.errorsToShow).toEqual([]);
|
|
93
|
+
expect(result.title.props.id).toBe('liquid');
|
|
94
|
+
expect(result.title.props.defaultMessage).toBe('Liquid');
|
|
95
|
+
expect(result.platformLabel).toBeUndefined();
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
describe('getLiquidProps', () => {
|
|
100
|
+
const baseErrors = {
|
|
101
|
+
standard: { errorsToShow: ['s1'] },
|
|
102
|
+
liquid: { errorsToShow: ['l1'], title: 'Liquid Title' },
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
it('returns correct props for Android with showTitle true and showPlatformLabels true', () => {
|
|
106
|
+
const result = getLiquidProps(baseErrors, true, true, true);
|
|
107
|
+
expect(result).toEqual({
|
|
108
|
+
title: 'Liquid Title',
|
|
109
|
+
errors: ['s1', 'l1'],
|
|
110
|
+
liquidError: true,
|
|
111
|
+
platformLabel: ANDROID,
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
it('returns correct props for iOS with showTitle false and showPlatformLabels true', () => {
|
|
116
|
+
const result = getLiquidProps(baseErrors, false, false, true);
|
|
117
|
+
expect(result).toEqual({
|
|
118
|
+
title: 'Liquid Title',
|
|
119
|
+
errors: ['s1', 'l1'],
|
|
120
|
+
liquidError: true,
|
|
121
|
+
platformLabel: IOS,
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it('returns null title if showTitle is false for Android', () => {
|
|
126
|
+
const result = getLiquidProps(baseErrors, true, false, true);
|
|
127
|
+
expect(result.title).toBeFalsy();
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
it('returns null title if showTitle is true for iOS', () => {
|
|
131
|
+
const result = getLiquidProps(baseErrors, false, true, true);
|
|
132
|
+
expect(result.title).toBeFalsy();
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
it('returns platformLabel null if showPlatformLabels is false', () => {
|
|
136
|
+
const result = getLiquidProps(baseErrors, true, true, false);
|
|
137
|
+
expect(result.platformLabel).toBeNull();
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
it('returns empty errors array if both errorsToShow are missing', () => {
|
|
141
|
+
const result = getLiquidProps({}, true, true, true);
|
|
142
|
+
expect(result.errors).toEqual([]);
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it('liquidError is false if no liquid errors', () => {
|
|
146
|
+
const result = getLiquidProps({ standard: { errorsToShow: ['s1'] } }, true, true, true);
|
|
147
|
+
expect(result.liquidError).toBe(false);
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it('handles undefined input gracefully', () => {
|
|
151
|
+
const result = getLiquidProps(undefined, true, true, true);
|
|
152
|
+
expect(result.errors).toEqual([]);
|
|
153
|
+
expect(result.liquidError).toBe(false);
|
|
154
|
+
expect(result.platformLabel).toBe(ANDROID);
|
|
155
|
+
});
|
|
156
|
+
});
|