@exdst-sitecore-content-sdk/astro 0.0.23 → 0.0.25
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/package.json +9 -14
- package/src/client/sitecore-astro-client.ts +0 -45
- package/src/context.ts +14 -16
- package/src/env.d.ts +1 -1
- package/src/sharedTypes/component-props.ts +0 -10
- package/src/tools/generate-map.ts +9 -21
- package/src/client/sitecore-astro-client.test.ts +0 -292
- package/src/components/AstroImage.astro.test.ts +0 -541
- package/src/components/Date.astro.test.ts +0 -197
- package/src/components/EditingScripts.astro.test.ts +0 -267
- package/src/components/ErrorBoundary.astro.test.ts +0 -252
- package/src/components/ErrorComponent.astro.test.ts +0 -31
- package/src/components/FieldMetadata.astro.test.ts +0 -40
- package/src/components/File.astro.test.ts +0 -68
- package/src/components/HiddenRendering.astro.test.ts +0 -36
- package/src/components/Image.astro.test.ts +0 -438
- package/src/components/Link.astro.test.ts +0 -261
- package/src/components/MissingComponent.astro.test.ts +0 -21
- package/src/components/Placeholder/Placeholder.astro.test.ts +0 -1088
- package/src/components/Placeholder/PlaceholderMetadata.astro.test.ts +0 -228
- package/src/components/Placeholder/PlaceholderUtils.astro.test.ts +0 -149
- package/src/components/Placeholder/placeholder-utils.test.ts +0 -309
- package/src/components/RichText.astro.test.ts +0 -205
- package/src/components/Text.astro.test.ts +0 -273
- package/src/config/define-config.test.ts +0 -526
- package/src/config-cli/define-cli-config.test.ts +0 -88
- package/src/editing/editing-config-middleware.test.ts +0 -164
- package/src/editing/editing-render-middleware.test.ts +0 -1143
- package/src/editing/render-middleware.test.ts +0 -57
- package/src/editing/utils.test.ts +0 -1212
- package/src/enhancers/WithEmptyFieldEditingComponent.astro.test.ts +0 -380
- package/src/enhancers/WithFieldMetadata.astro.test.ts +0 -113
- package/src/middleware/middleware.test.ts +0 -520
- package/src/middleware/multisite-middleware.test.ts +0 -667
- package/src/middleware/robots-middleware.test.ts +0 -129
- package/src/middleware/sitemap-middleware.test.ts +0 -184
- package/src/services/component-props-service.ts +0 -183
- package/src/tests/astro-helpers.ts +0 -61
- package/src/tests/helpers.ts +0 -46
- package/src/tests/personalizeData.ts +0 -63
- package/src/tests/test-components/CustomErrorComponent.astro +0 -3
- package/src/tests/test-components/CustomHiddenRendering.astro +0 -10
- package/src/tests/test-components/CustomMissingComponent.astro +0 -9
- package/src/tests/test-components/DownloadCallout.astro +0 -12
- package/src/tests/test-components/EmptyFieldEditingComponent.astro +0 -5
- package/src/tests/test-components/ErrorBoundaryWithError.astro +0 -10
- package/src/tests/test-components/Home.astro +0 -12
- package/src/tests/test-components/SxaRichText.astro +0 -23
- package/src/tests/test-components/SxaRichTextDefault.astro +0 -7
- package/src/tests/test-components/SxaRichTextWithTitle.astro +0 -8
- package/src/tests/test-components/TestComponent.astro +0 -9
- package/src/tests/test-components/TestComponentWithError.astro +0 -4
- package/src/tests/test-components/TestComponentWithField.astro +0 -17
- package/src/tests/test-components/TestHeader.astro +0 -8
- package/src/tests/test-components/TestLogo.astro +0 -5
- package/src/tests/test-components/TestParentWrapperComponent.astro +0 -5
- package/src/tests/test-components/TestWrapperComponent.astro +0 -5
- package/src/tests/test-components/map-components/Bar.astro +0 -0
- package/src/tests/test-components/map-components/Baz.astro +0 -0
- package/src/tests/test-components/map-components/Foo.astro +0 -0
- package/src/tests/test-components/map-components/Hero.variant.astro +0 -0
- package/src/tests/test-components/map-components/NotComponent.bsx +0 -0
- package/src/tests/test-components/map-components/Qux.astro +0 -0
- package/src/tests/test-components/map-components/folded/Folded.astro +0 -0
- package/src/tests/test-components/map-components/folded/random-file-2.docx +0 -0
- package/src/tests/test-components/map-components/random-file.txt +0 -0
- package/src/tests/test-data/metadata-data.ts +0 -86
- package/src/tests/test-data/normal-mode-data.ts +0 -466
- package/src/tests/vitest.setup.ts +0 -4
- package/src/tools/templating/components.test.ts +0 -318
- package/src/tools/templating/default-component.test.ts +0 -31
- package/src/utils/utils.test.ts +0 -48
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect } from 'vitest';
|
|
2
|
-
import { renderAstroComponent } from '../tests/astro-helpers';
|
|
3
|
-
import RichText from './RichText.astro';
|
|
4
|
-
import EmptyFieldEditingComponent from '../tests/test-components/EmptyFieldEditingComponent.astro';
|
|
5
|
-
|
|
6
|
-
describe('<RichText />', () => {
|
|
7
|
-
test('should render nothing with missing field', async () => {
|
|
8
|
-
const field = null!;
|
|
9
|
-
|
|
10
|
-
const rendered = (
|
|
11
|
-
await renderAstroComponent(RichText, {
|
|
12
|
-
props: { field: field },
|
|
13
|
-
})
|
|
14
|
-
).querySelectorAll('div');
|
|
15
|
-
|
|
16
|
-
expect(rendered).to.have.length(0);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
test('should render nothing with empty value', async () => {
|
|
20
|
-
const field = {
|
|
21
|
-
value: '',
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const rendered = (
|
|
25
|
-
await renderAstroComponent(RichText, {
|
|
26
|
-
props: { field: field },
|
|
27
|
-
})
|
|
28
|
-
).querySelectorAll('div');
|
|
29
|
-
|
|
30
|
-
expect(rendered).to.have.length(0);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
test('should render nothing with missing value', async () => {
|
|
34
|
-
const field = {};
|
|
35
|
-
const rendered = (
|
|
36
|
-
await renderAstroComponent(RichText, {
|
|
37
|
-
props: { field: field },
|
|
38
|
-
})
|
|
39
|
-
).querySelectorAll('div');
|
|
40
|
-
expect(rendered).to.have.length(0);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test('should render value with editing explicitly disabled', async () => {
|
|
44
|
-
const field = {
|
|
45
|
-
value: 'value',
|
|
46
|
-
};
|
|
47
|
-
const rendered = (
|
|
48
|
-
await renderAstroComponent(RichText, {
|
|
49
|
-
props: { field: field, editable: false },
|
|
50
|
-
})
|
|
51
|
-
).querySelectorAll('div');
|
|
52
|
-
|
|
53
|
-
expect(rendered).to.have.length(1);
|
|
54
|
-
expect(rendered[0].innerHTML).to.contain('value');
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
test('should render value with with just a value', async () => {
|
|
58
|
-
const field = {
|
|
59
|
-
value: 'value',
|
|
60
|
-
};
|
|
61
|
-
const rendered = (
|
|
62
|
-
await renderAstroComponent(RichText, {
|
|
63
|
-
props: { field: field },
|
|
64
|
-
})
|
|
65
|
-
).querySelectorAll('div');
|
|
66
|
-
|
|
67
|
-
expect(rendered).to.have.length(1);
|
|
68
|
-
expect(rendered[0].innerHTML).to.contain('value');
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
test('should render embedded html as-is', async () => {
|
|
72
|
-
const field = {
|
|
73
|
-
value: '<input type="text">some crazy stuff<script code="whaaaat">uh oh</script>',
|
|
74
|
-
};
|
|
75
|
-
const rendered = (
|
|
76
|
-
await renderAstroComponent(RichText, {
|
|
77
|
-
props: { field: field },
|
|
78
|
-
})
|
|
79
|
-
).querySelectorAll('div');
|
|
80
|
-
|
|
81
|
-
expect(rendered).to.have.length(1);
|
|
82
|
-
expect(rendered[0].innerHTML).to.contain(field.value);
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
test('should render tag with a tag provided', async () => {
|
|
86
|
-
const field = {
|
|
87
|
-
value: 'value',
|
|
88
|
-
};
|
|
89
|
-
const rendered = (
|
|
90
|
-
await renderAstroComponent(RichText, {
|
|
91
|
-
props: { field: field, tag: 'p' },
|
|
92
|
-
})
|
|
93
|
-
).querySelectorAll('p');
|
|
94
|
-
|
|
95
|
-
expect(rendered).to.have.length(1);
|
|
96
|
-
expect(rendered[0].innerHTML).to.contain('value');
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
test('should render other attributes with other props provided', async () => {
|
|
100
|
-
const field = {
|
|
101
|
-
value: 'value',
|
|
102
|
-
};
|
|
103
|
-
const rendered = (
|
|
104
|
-
await renderAstroComponent(RichText, {
|
|
105
|
-
props: { field: field, tag: 'h1', class: 'cssClass', id: 'lorem' },
|
|
106
|
-
})
|
|
107
|
-
).querySelectorAll('h1');
|
|
108
|
-
expect(rendered).to.have.length(1);
|
|
109
|
-
expect(rendered[0].outerHTML).to.contain('<h1 class="cssClass" id="lorem">');
|
|
110
|
-
expect(rendered[0].outerHTML).to.contain('value');
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
describe('edit mode', () => {
|
|
114
|
-
const testMetadata = {
|
|
115
|
-
contextItem: {
|
|
116
|
-
id: '{09A07660-6834-476C-B93B-584248D3003B}',
|
|
117
|
-
language: 'en',
|
|
118
|
-
revision: 'a0b36ce0a7db49418edf90eb9621e145',
|
|
119
|
-
version: 1,
|
|
120
|
-
},
|
|
121
|
-
fieldId: '{414061F4-FBB1-4591-BC37-BFFA67F745EB}',
|
|
122
|
-
fieldType: 'single-line',
|
|
123
|
-
rawValue: 'Test1',
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
test('should render field metadata component when metadata property is present', async () => {
|
|
127
|
-
const field = {
|
|
128
|
-
value: 'value',
|
|
129
|
-
metadata: testMetadata,
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
const rendered = await renderAstroComponent(RichText, {
|
|
133
|
-
props: { field: field },
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
expect(rendered.innerHTML).to.equal(
|
|
137
|
-
[
|
|
138
|
-
`<code type="text/sitecore" chrometype="field" class="scpm" kind="open">${JSON.stringify(
|
|
139
|
-
testMetadata
|
|
140
|
-
)}</code>`,
|
|
141
|
-
'<div>value</div>',
|
|
142
|
-
'<code type="text/sitecore" chrometype="field" class="scpm" kind="close"></code>',
|
|
143
|
-
].join('')
|
|
144
|
-
);
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
test('should render default empty field component when field value is empty', async () => {
|
|
148
|
-
const field = {
|
|
149
|
-
value: '',
|
|
150
|
-
metadata: testMetadata,
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
const rendered = await renderAstroComponent(RichText, {
|
|
154
|
-
props: { field: field },
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
expect(rendered.innerHTML).to.equal(
|
|
158
|
-
[
|
|
159
|
-
`<code type="text/sitecore" chrometype="field" class="scpm" kind="open">${JSON.stringify(
|
|
160
|
-
testMetadata
|
|
161
|
-
)}</code>`,
|
|
162
|
-
'<span>[No text in field]</span>',
|
|
163
|
-
'<code type="text/sitecore" chrometype="field" class="scpm" kind="close"></code>',
|
|
164
|
-
].join('')
|
|
165
|
-
);
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
test('should render custom empty field component when provided, when field value is empty', async () => {
|
|
169
|
-
const field = {
|
|
170
|
-
value: '',
|
|
171
|
-
metadata: testMetadata,
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
const rendered = await renderAstroComponent(RichText, {
|
|
175
|
-
props: {
|
|
176
|
-
field: field,
|
|
177
|
-
emptyFieldEditingComponent: EmptyFieldEditingComponent,
|
|
178
|
-
},
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
expect(rendered.innerHTML).to.equal(
|
|
182
|
-
[
|
|
183
|
-
`<code type="text/sitecore" chrometype="field" class="scpm" kind="open">${JSON.stringify(
|
|
184
|
-
testMetadata
|
|
185
|
-
)}</code>`,
|
|
186
|
-
'<span class="empty-field-value-placeholder">Custom Empty field value</span>',
|
|
187
|
-
'<code type="text/sitecore" chrometype="field" class="scpm" kind="close"></code>',
|
|
188
|
-
].join('')
|
|
189
|
-
);
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
test('should render nothing when field value is empty, when editing is explicitly disabled ', async () => {
|
|
193
|
-
const field = {
|
|
194
|
-
value: '',
|
|
195
|
-
metadata: testMetadata,
|
|
196
|
-
};
|
|
197
|
-
|
|
198
|
-
const rendered = await renderAstroComponent(RichText, {
|
|
199
|
-
props: { field: field, editable: false },
|
|
200
|
-
});
|
|
201
|
-
|
|
202
|
-
expect(rendered.innerHTML).to.equal('');
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
});
|
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect } from 'vitest';
|
|
2
|
-
import { renderAstroComponent } from '../tests/astro-helpers';
|
|
3
|
-
import Text, { TextField } from './Text.astro';
|
|
4
|
-
import EmptyFieldEditingComponent from '../tests/test-components/EmptyFieldEditingComponent.astro';
|
|
5
|
-
|
|
6
|
-
describe('<Text />', () => {
|
|
7
|
-
test('should render nothing with missing field', async () => {
|
|
8
|
-
const field: TextField = null!;
|
|
9
|
-
const rendered = await renderAstroComponent(Text, {
|
|
10
|
-
props: { field: field },
|
|
11
|
-
});
|
|
12
|
-
expect(rendered.innerHTML).to.equal('');
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
test('should render nothing with missing field', async () => {
|
|
16
|
-
const field = {
|
|
17
|
-
value: '',
|
|
18
|
-
};
|
|
19
|
-
const rendered = await renderAstroComponent(Text, {
|
|
20
|
-
props: { field: field },
|
|
21
|
-
});
|
|
22
|
-
expect(rendered.innerHTML).to.equal('');
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
test('should render nothing with missing value', async () => {
|
|
26
|
-
const field = {};
|
|
27
|
-
const rendered = await renderAstroComponent(Text, {
|
|
28
|
-
props: { field: field },
|
|
29
|
-
});
|
|
30
|
-
expect(rendered.innerHTML).to.equal('');
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
test('should render value with editing explicitly disabled', async () => {
|
|
34
|
-
const field = {
|
|
35
|
-
value: 'value',
|
|
36
|
-
};
|
|
37
|
-
const rendered = (
|
|
38
|
-
await renderAstroComponent(Text, {
|
|
39
|
-
props: { field: field, tag: 'span', editable: false },
|
|
40
|
-
})
|
|
41
|
-
).querySelector('span');
|
|
42
|
-
|
|
43
|
-
expect(rendered?.innerHTML).to.contain('value');
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
test('should encode values with editing explicitly disabled', async () => {
|
|
47
|
-
const field = {
|
|
48
|
-
value: 'value < >',
|
|
49
|
-
};
|
|
50
|
-
const rendered = (
|
|
51
|
-
await renderAstroComponent(Text, {
|
|
52
|
-
props: { field: field, tag: 'span', editable: false },
|
|
53
|
-
})
|
|
54
|
-
).querySelector('span');
|
|
55
|
-
expect(rendered?.innerHTML).to.contain('< >');
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
test('should render value with just a value', async () => {
|
|
59
|
-
const field = {
|
|
60
|
-
value: 'value',
|
|
61
|
-
};
|
|
62
|
-
const rendered = (
|
|
63
|
-
await renderAstroComponent(Text, {
|
|
64
|
-
props: { field: field, tag: 'span' },
|
|
65
|
-
})
|
|
66
|
-
).querySelector('span');
|
|
67
|
-
expect(rendered?.innerHTML).to.contain('value');
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
test('should render value without tag', async () => {
|
|
71
|
-
const field = {
|
|
72
|
-
value: 'value',
|
|
73
|
-
};
|
|
74
|
-
const rendered = await renderAstroComponent(Text, {
|
|
75
|
-
props: { field: field },
|
|
76
|
-
});
|
|
77
|
-
expect(rendered.innerHTML).to.equal('value');
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
test('should render number value', async () => {
|
|
81
|
-
const field = {
|
|
82
|
-
value: 1.23,
|
|
83
|
-
};
|
|
84
|
-
const rendered = await renderAstroComponent(Text, {
|
|
85
|
-
props: { field: field },
|
|
86
|
-
});
|
|
87
|
-
expect(rendered.innerHTML).to.equal('1.23');
|
|
88
|
-
});
|
|
89
|
-
|
|
90
|
-
test('should render zero number value', async () => {
|
|
91
|
-
const field = {
|
|
92
|
-
value: 0,
|
|
93
|
-
};
|
|
94
|
-
const rendered = await renderAstroComponent(Text, {
|
|
95
|
-
props: { field: field },
|
|
96
|
-
});
|
|
97
|
-
expect(rendered?.innerHTML).to.equal('0');
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
test('should render negative number value', async () => {
|
|
101
|
-
const field = {
|
|
102
|
-
value: -1.23,
|
|
103
|
-
};
|
|
104
|
-
const rendered = await renderAstroComponent(Text, {
|
|
105
|
-
props: { field: field },
|
|
106
|
-
});
|
|
107
|
-
expect(rendered?.innerHTML).to.equal('-1.23');
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
test('should render value without tag', async () => {
|
|
111
|
-
const field = {
|
|
112
|
-
value: 'value',
|
|
113
|
-
};
|
|
114
|
-
const rendered = await renderAstroComponent(Text, {
|
|
115
|
-
props: { field: field },
|
|
116
|
-
});
|
|
117
|
-
expect(rendered?.innerHTML).to.contain('value');
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
test('should render value with just a value that contains line breaks', async () => {
|
|
121
|
-
const field = {
|
|
122
|
-
value: 'xxx\n\naa\nbbb\ndd',
|
|
123
|
-
};
|
|
124
|
-
const rendered = (
|
|
125
|
-
await renderAstroComponent(Text, {
|
|
126
|
-
props: { field: field, tag: 'span' },
|
|
127
|
-
})
|
|
128
|
-
).querySelector('span');
|
|
129
|
-
expect(rendered?.innerHTML).to.contain('xxx<br><br>aa<br>bbb<br>dd');
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
test('should render value with just a value that contains only one line break', async () => {
|
|
133
|
-
const field = {
|
|
134
|
-
value: '\n',
|
|
135
|
-
};
|
|
136
|
-
const rendered = (
|
|
137
|
-
await renderAstroComponent(Text, {
|
|
138
|
-
props: { field: field, tag: 'span' },
|
|
139
|
-
})
|
|
140
|
-
).querySelector('span');
|
|
141
|
-
expect(rendered?.outerHTML).to.contain('<span><br></span>');
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
test('should render embedded html as-is when encoding is disabled', async () => {
|
|
145
|
-
const field = {
|
|
146
|
-
value: '<input type="text">some crazy stuff<script code="whaaaat">uh oh</script>',
|
|
147
|
-
};
|
|
148
|
-
const rendered = (
|
|
149
|
-
await renderAstroComponent(Text, {
|
|
150
|
-
props: { field: field, encode: false },
|
|
151
|
-
})
|
|
152
|
-
).querySelector('span');
|
|
153
|
-
expect(rendered?.innerHTML).to.contain(field.value);
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
test('should render tag with a tag provided', async () => {
|
|
157
|
-
const field = {
|
|
158
|
-
value: 'value',
|
|
159
|
-
};
|
|
160
|
-
const rendered = (
|
|
161
|
-
await renderAstroComponent(Text, {
|
|
162
|
-
props: { field: field, tag: 'h1' },
|
|
163
|
-
})
|
|
164
|
-
).querySelector('h1');
|
|
165
|
-
expect(rendered?.innerHTML).to.contain('value');
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
test('should render other attributes with other props provided', async () => {
|
|
169
|
-
const field = {
|
|
170
|
-
value: 'value',
|
|
171
|
-
};
|
|
172
|
-
const rendered = (
|
|
173
|
-
await renderAstroComponent(Text, {
|
|
174
|
-
props: { field: field, tag: 'h1', class: 'cssClass', id: 'lorem' },
|
|
175
|
-
})
|
|
176
|
-
).querySelector('h1');
|
|
177
|
-
expect(rendered?.outerHTML).to.contain('<h1 class="cssClass" id="lorem">');
|
|
178
|
-
expect(rendered?.outerHTML).to.contain('value');
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
describe('edit mode', () => {
|
|
182
|
-
const testMetadata = {
|
|
183
|
-
contextItem: {
|
|
184
|
-
id: '{09A07660-6834-476C-B93B-584248D3003B}',
|
|
185
|
-
language: 'en',
|
|
186
|
-
revision: 'a0b36ce0a7db49418edf90eb9621e145',
|
|
187
|
-
version: 1,
|
|
188
|
-
},
|
|
189
|
-
fieldId: '{414061F4-FBB1-4591-BC37-BFFA67F745EB}',
|
|
190
|
-
fieldType: 'single-line',
|
|
191
|
-
rawValue: 'Test1',
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
test('should render field metadata component when metadata property is present', async () => {
|
|
195
|
-
const field = {
|
|
196
|
-
value: 'value',
|
|
197
|
-
metadata: testMetadata,
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
const rendered = await renderAstroComponent(Text, {
|
|
201
|
-
props: { field: field },
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
expect(rendered.innerHTML).to.equal(
|
|
205
|
-
[
|
|
206
|
-
`<code type="text/sitecore" chrometype="field" class="scpm" kind="open">${JSON.stringify(
|
|
207
|
-
testMetadata
|
|
208
|
-
)}</code>`,
|
|
209
|
-
'<span>value</span>',
|
|
210
|
-
'<code type="text/sitecore" chrometype="field" class="scpm" kind="close"></code>',
|
|
211
|
-
].join('')
|
|
212
|
-
);
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
test('should render default empty field component when field value is empty in edit mode metadata', async () => {
|
|
216
|
-
const field = {
|
|
217
|
-
value: '',
|
|
218
|
-
metadata: testMetadata,
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
const rendered = await renderAstroComponent(Text, {
|
|
222
|
-
props: { field: field },
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
expect(rendered.innerHTML).to.equal(
|
|
226
|
-
[
|
|
227
|
-
`<code type="text/sitecore" chrometype="field" class="scpm" kind="open">${JSON.stringify(
|
|
228
|
-
testMetadata
|
|
229
|
-
)}</code>`,
|
|
230
|
-
'<span>[No text in field]</span>',
|
|
231
|
-
'<code type="text/sitecore" chrometype="field" class="scpm" kind="close"></code>',
|
|
232
|
-
].join('')
|
|
233
|
-
);
|
|
234
|
-
});
|
|
235
|
-
|
|
236
|
-
test('should render custom empty field component when provided, when field value is empty in edit mode metadata', async () => {
|
|
237
|
-
const field = {
|
|
238
|
-
value: '',
|
|
239
|
-
metadata: testMetadata,
|
|
240
|
-
};
|
|
241
|
-
|
|
242
|
-
const rendered = await renderAstroComponent(Text, {
|
|
243
|
-
props: {
|
|
244
|
-
field: field,
|
|
245
|
-
emptyFieldEditingComponent: EmptyFieldEditingComponent,
|
|
246
|
-
},
|
|
247
|
-
});
|
|
248
|
-
|
|
249
|
-
expect(rendered.innerHTML).to.equal(
|
|
250
|
-
[
|
|
251
|
-
`<code type="text/sitecore" chrometype="field" class="scpm" kind="open">${JSON.stringify(
|
|
252
|
-
testMetadata
|
|
253
|
-
)}</code>`,
|
|
254
|
-
'<span class="empty-field-value-placeholder">Custom Empty field value</span>',
|
|
255
|
-
'<code type="text/sitecore" chrometype="field" class="scpm" kind="close"></code>',
|
|
256
|
-
].join('')
|
|
257
|
-
);
|
|
258
|
-
});
|
|
259
|
-
|
|
260
|
-
test('should render nothing when field value is empty, when editing is explicitly disabled in edit mode metadata ', async () => {
|
|
261
|
-
const field = {
|
|
262
|
-
value: '',
|
|
263
|
-
metadata: testMetadata,
|
|
264
|
-
};
|
|
265
|
-
|
|
266
|
-
const rendered = await renderAstroComponent(Text, {
|
|
267
|
-
props: { field: field, editable: false },
|
|
268
|
-
});
|
|
269
|
-
|
|
270
|
-
expect(rendered.innerHTML).to.equal('');
|
|
271
|
-
});
|
|
272
|
-
});
|
|
273
|
-
});
|