@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.
Files changed (72) hide show
  1. package/package.json +9 -14
  2. package/src/client/sitecore-astro-client.ts +0 -45
  3. package/src/context.ts +14 -16
  4. package/src/env.d.ts +1 -1
  5. package/src/sharedTypes/component-props.ts +0 -10
  6. package/src/tools/generate-map.ts +9 -21
  7. package/src/client/sitecore-astro-client.test.ts +0 -292
  8. package/src/components/AstroImage.astro.test.ts +0 -541
  9. package/src/components/Date.astro.test.ts +0 -197
  10. package/src/components/EditingScripts.astro.test.ts +0 -267
  11. package/src/components/ErrorBoundary.astro.test.ts +0 -252
  12. package/src/components/ErrorComponent.astro.test.ts +0 -31
  13. package/src/components/FieldMetadata.astro.test.ts +0 -40
  14. package/src/components/File.astro.test.ts +0 -68
  15. package/src/components/HiddenRendering.astro.test.ts +0 -36
  16. package/src/components/Image.astro.test.ts +0 -438
  17. package/src/components/Link.astro.test.ts +0 -261
  18. package/src/components/MissingComponent.astro.test.ts +0 -21
  19. package/src/components/Placeholder/Placeholder.astro.test.ts +0 -1088
  20. package/src/components/Placeholder/PlaceholderMetadata.astro.test.ts +0 -228
  21. package/src/components/Placeholder/PlaceholderUtils.astro.test.ts +0 -149
  22. package/src/components/Placeholder/placeholder-utils.test.ts +0 -309
  23. package/src/components/RichText.astro.test.ts +0 -205
  24. package/src/components/Text.astro.test.ts +0 -273
  25. package/src/config/define-config.test.ts +0 -526
  26. package/src/config-cli/define-cli-config.test.ts +0 -88
  27. package/src/editing/editing-config-middleware.test.ts +0 -164
  28. package/src/editing/editing-render-middleware.test.ts +0 -1143
  29. package/src/editing/render-middleware.test.ts +0 -57
  30. package/src/editing/utils.test.ts +0 -1212
  31. package/src/enhancers/WithEmptyFieldEditingComponent.astro.test.ts +0 -380
  32. package/src/enhancers/WithFieldMetadata.astro.test.ts +0 -113
  33. package/src/middleware/middleware.test.ts +0 -520
  34. package/src/middleware/multisite-middleware.test.ts +0 -667
  35. package/src/middleware/robots-middleware.test.ts +0 -129
  36. package/src/middleware/sitemap-middleware.test.ts +0 -184
  37. package/src/services/component-props-service.ts +0 -183
  38. package/src/tests/astro-helpers.ts +0 -61
  39. package/src/tests/helpers.ts +0 -46
  40. package/src/tests/personalizeData.ts +0 -63
  41. package/src/tests/test-components/CustomErrorComponent.astro +0 -3
  42. package/src/tests/test-components/CustomHiddenRendering.astro +0 -10
  43. package/src/tests/test-components/CustomMissingComponent.astro +0 -9
  44. package/src/tests/test-components/DownloadCallout.astro +0 -12
  45. package/src/tests/test-components/EmptyFieldEditingComponent.astro +0 -5
  46. package/src/tests/test-components/ErrorBoundaryWithError.astro +0 -10
  47. package/src/tests/test-components/Home.astro +0 -12
  48. package/src/tests/test-components/SxaRichText.astro +0 -23
  49. package/src/tests/test-components/SxaRichTextDefault.astro +0 -7
  50. package/src/tests/test-components/SxaRichTextWithTitle.astro +0 -8
  51. package/src/tests/test-components/TestComponent.astro +0 -9
  52. package/src/tests/test-components/TestComponentWithError.astro +0 -4
  53. package/src/tests/test-components/TestComponentWithField.astro +0 -17
  54. package/src/tests/test-components/TestHeader.astro +0 -8
  55. package/src/tests/test-components/TestLogo.astro +0 -5
  56. package/src/tests/test-components/TestParentWrapperComponent.astro +0 -5
  57. package/src/tests/test-components/TestWrapperComponent.astro +0 -5
  58. package/src/tests/test-components/map-components/Bar.astro +0 -0
  59. package/src/tests/test-components/map-components/Baz.astro +0 -0
  60. package/src/tests/test-components/map-components/Foo.astro +0 -0
  61. package/src/tests/test-components/map-components/Hero.variant.astro +0 -0
  62. package/src/tests/test-components/map-components/NotComponent.bsx +0 -0
  63. package/src/tests/test-components/map-components/Qux.astro +0 -0
  64. package/src/tests/test-components/map-components/folded/Folded.astro +0 -0
  65. package/src/tests/test-components/map-components/folded/random-file-2.docx +0 -0
  66. package/src/tests/test-components/map-components/random-file.txt +0 -0
  67. package/src/tests/test-data/metadata-data.ts +0 -86
  68. package/src/tests/test-data/normal-mode-data.ts +0 -466
  69. package/src/tests/vitest.setup.ts +0 -4
  70. package/src/tools/templating/components.test.ts +0 -318
  71. package/src/tools/templating/default-component.test.ts +0 -31
  72. package/src/utils/utils.test.ts +0 -48
@@ -1,380 +0,0 @@
1
- import { describe, test, expect } from 'vitest';
2
- import { renderAstroComponent } from '../tests/astro-helpers';
3
- import WithEmptyFieldEditingComponent from './WithEmptyFieldEditingComponent.astro';
4
- import DefaultEmptyFieldEditingComponentText from '../components/DefaultEmptyFieldEditingComponentText.astro';
5
- import { EMPTY_DATE_FIELD_VALUE } from '@sitecore-content-sdk/content/layout';
6
- import TestComponent from '../tests/test-components/TestComponent.astro';
7
- import EmptyFieldEditingComponent from '../tests/test-components/EmptyFieldEditingComponent.astro';
8
-
9
- describe('WithEmptyFieldEditingComponent', () => {
10
- describe('Metadata', () => {
11
- const testMetadata = {
12
- contextItem: {
13
- id: '{09A07660-6834-476C-B93B-584248D3003B}',
14
- language: 'en',
15
- revision: 'a0b36ce0a7db49418edf90eb9621e145',
16
- version: 1,
17
- },
18
- fieldId: '{414061F4-FBB1-4591-BC37-BFFA67F745EB}',
19
- fieldType: 'single-line',
20
- rawValue: 'Test1',
21
- };
22
-
23
- test('Should render provided default empty value component component if field value is not provided', async () => {
24
- const props = {
25
- tag: 'h1',
26
- field: {
27
- value: '',
28
- metadata: testMetadata,
29
- },
30
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
31
- };
32
-
33
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
34
-
35
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
36
- props: props,
37
- slots: {
38
- default: testComponent,
39
- },
40
- });
41
-
42
- expect(rendered.innerHTML).to.equal('<h1 tag="h1">[No text in field]</h1>');
43
- });
44
-
45
- test('Should render custom empty value component if provided via props if field value is not provided', async () => {
46
- const props = {
47
- field: {
48
- value: '',
49
- metadata: testMetadata,
50
- },
51
- emptyFieldEditingComponent: EmptyFieldEditingComponent,
52
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
53
- };
54
-
55
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
56
-
57
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
58
- props: props,
59
- slots: {
60
- default: testComponent,
61
- },
62
- });
63
-
64
- const expected = await renderAstroComponent(EmptyFieldEditingComponent);
65
-
66
- expect(rendered.innerHTML).to.equal(expected.innerHTML);
67
- });
68
-
69
- test('Should render component if field value is provided', async () => {
70
- const props = {
71
- field: {
72
- value: 'field value',
73
- metadata: testMetadata,
74
- },
75
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
76
- };
77
-
78
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
79
-
80
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
81
- props: props,
82
- slots: {
83
- default: testComponent,
84
- },
85
- });
86
-
87
- expect(rendered.innerHTML).to.equal('<div><h1>hi</h1><h2>foo</h2><p>bar</p></div>');
88
- });
89
-
90
- test('Should render component if component is explicitly not editable if value is empty', async () => {
91
- const props = {
92
- field: {
93
- value: '',
94
- metadata: testMetadata,
95
- },
96
- editable: false,
97
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
98
- };
99
-
100
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
101
-
102
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
103
- props: props,
104
- slots: {
105
- default: testComponent,
106
- },
107
- });
108
-
109
- expect(rendered.innerHTML).to.equal('<div><h1>hi</h1><h2>foo</h2><p>bar</p></div>');
110
- });
111
-
112
- test('Should render component if metadata is not provided', async () => {
113
- const props = {
114
- field: {
115
- value: '',
116
- },
117
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
118
- };
119
-
120
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
121
-
122
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
123
- props: props,
124
- slots: {
125
- default: testComponent,
126
- },
127
- });
128
-
129
- expect(rendered.innerHTML).to.equal('<div><h1>hi</h1><h2>foo</h2><p>bar</p></div>');
130
- });
131
-
132
- describe('Date', () => {
133
- test('Should render component if field value is provided', async () => {
134
- const props = {
135
- field: {
136
- metadata: testMetadata,
137
- value: '2024-01-01T00:00:00Z',
138
- },
139
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
140
- };
141
-
142
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
143
-
144
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
145
- props: props,
146
- slots: {
147
- default: testComponent,
148
- },
149
- });
150
-
151
- expect(rendered.innerHTML).to.equal('<div><h1>hi</h1><h2>foo</h2><p>bar</p></div>');
152
- });
153
-
154
- test('Should render default empty component if field value is empty', async () => {
155
- const props = {
156
- field: {
157
- value: EMPTY_DATE_FIELD_VALUE,
158
- metadata: testMetadata,
159
- },
160
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
161
- };
162
-
163
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
164
-
165
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
166
- props: props,
167
- slots: {
168
- default: testComponent,
169
- },
170
- });
171
-
172
- const expected = await renderAstroComponent(DefaultEmptyFieldEditingComponentText);
173
-
174
- expect(rendered.innerHTML).to.equal(expected.innerHTML);
175
- });
176
-
177
- test('Should render custom empty component if field value is empty', async () => {
178
- const props = {
179
- field: {
180
- value: EMPTY_DATE_FIELD_VALUE,
181
- metadata: testMetadata,
182
- },
183
- emptyFieldEditingComponent: EmptyFieldEditingComponent,
184
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
185
- };
186
-
187
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
188
-
189
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
190
- props: props,
191
- slots: {
192
- default: testComponent,
193
- },
194
- });
195
-
196
- const expected = await renderAstroComponent(EmptyFieldEditingComponent);
197
-
198
- expect(rendered.innerHTML).to.equal(expected.innerHTML);
199
- });
200
- });
201
-
202
- describe('Image', () => {
203
- test('Should render component if field src is provided', async () => {
204
- const props = {
205
- field: {
206
- metadata: testMetadata,
207
- src: 'img src',
208
- },
209
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
210
- };
211
-
212
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
213
-
214
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
215
- props: props,
216
- slots: {
217
- default: testComponent,
218
- },
219
- });
220
-
221
- expect(rendered.innerHTML).to.equal('<div><h1>hi</h1><h2>foo</h2><p>bar</p></div>');
222
- });
223
-
224
- test('Should render component if field value src is provided', async () => {
225
- const props = {
226
- field: {
227
- metadata: testMetadata,
228
- value: { src: 'img src' },
229
- },
230
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
231
- };
232
-
233
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
234
-
235
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
236
- props: props,
237
- slots: {
238
- default: testComponent,
239
- },
240
- });
241
-
242
- expect(rendered.innerHTML).to.equal('<div><h1>hi</h1><h2>foo</h2><p>bar</p></div>');
243
- });
244
-
245
- test('Should render provided default empty value component component if field value src is not provided', async () => {
246
- const props = {
247
- field: {
248
- value: { src: undefined },
249
- metadata: testMetadata,
250
- },
251
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
252
- };
253
-
254
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
255
-
256
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
257
- props: props,
258
- slots: {
259
- default: testComponent,
260
- },
261
- });
262
- const expected = await renderAstroComponent(DefaultEmptyFieldEditingComponentText);
263
-
264
- expect(rendered.innerHTML).to.equal(expected.innerHTML);
265
- });
266
-
267
- test('Should render custom empty value component if provided via props if field src is not provided', async () => {
268
- const props = {
269
- field: {
270
- src: undefined,
271
- metadata: testMetadata,
272
- },
273
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
274
- emptyFieldEditingComponent: EmptyFieldEditingComponent,
275
- };
276
-
277
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
278
-
279
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
280
- props: props,
281
- slots: {
282
- default: testComponent,
283
- },
284
- });
285
- const expected = await renderAstroComponent(EmptyFieldEditingComponent);
286
-
287
- expect(rendered.innerHTML).to.equal(expected.innerHTML);
288
- });
289
- });
290
-
291
- describe('Link', () => {
292
- test('Should render component if field href is provided', async () => {
293
- const props = {
294
- field: {
295
- metadata: testMetadata,
296
- href: 'img src',
297
- },
298
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
299
- };
300
-
301
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
302
-
303
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
304
- props: props,
305
- slots: {
306
- default: testComponent,
307
- },
308
- });
309
-
310
- expect(rendered.innerHTML).to.equal('<div><h1>hi</h1><h2>foo</h2><p>bar</p></div>');
311
- });
312
-
313
- test('Should render component if field value href is provided', async () => {
314
- const props = {
315
- field: {
316
- metadata: testMetadata,
317
- value: { href: 'img src' },
318
- },
319
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
320
- };
321
-
322
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
323
-
324
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
325
- props: props,
326
- slots: {
327
- default: testComponent,
328
- },
329
- });
330
-
331
- expect(rendered.innerHTML).to.equal('<div><h1>hi</h1><h2>foo</h2><p>bar</p></div>');
332
- });
333
-
334
- test('Should render provided default empty value component component if field value href is not provided', async () => {
335
- const props = {
336
- field: {
337
- value: { href: undefined },
338
- metadata: testMetadata,
339
- },
340
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
341
- };
342
-
343
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
344
-
345
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
346
- props: props,
347
- slots: {
348
- default: testComponent,
349
- },
350
- });
351
- const expected = await renderAstroComponent(DefaultEmptyFieldEditingComponentText);
352
-
353
- expect(rendered.innerHTML).to.equal(expected.innerHTML);
354
- });
355
-
356
- test('Should render custom empty value component if provided via props if field href is not provided', async () => {
357
- const props = {
358
- field: {
359
- href: undefined,
360
- metadata: testMetadata,
361
- },
362
- defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
363
- emptyFieldEditingComponent: EmptyFieldEditingComponent,
364
- };
365
-
366
- const testComponent = (await renderAstroComponent(TestComponent)).innerHTML;
367
-
368
- const rendered = await renderAstroComponent(WithEmptyFieldEditingComponent, {
369
- props: props,
370
- slots: {
371
- default: testComponent,
372
- },
373
- });
374
- const expected = await renderAstroComponent(EmptyFieldEditingComponent);
375
-
376
- expect(rendered.innerHTML).to.equal(expected.innerHTML);
377
- });
378
- });
379
- });
380
- });
@@ -1,113 +0,0 @@
1
- import { describe, test, expect } from 'vitest';
2
- import { renderAstroComponent } from '../tests/astro-helpers';
3
- import WithFieldMetadata from './WithFieldMetadata.astro';
4
- import TestComponentWithField from '../tests/test-components/TestComponentWithField.astro';
5
-
6
- describe('WithFieldMetadata', () => {
7
- const testMetadata = {
8
- contextItem: {
9
- id: '{09A07660-6834-476C-B93B-584248D3003B}',
10
- language: 'en',
11
- revision: 'a0b36ce0a7db49418edf90eb9621e145',
12
- version: 1,
13
- },
14
- fieldId: '{414061F4-FBB1-4591-BC37-BFFA67F745EB}',
15
- fieldType: 'single-line',
16
- rawValue: 'Test1',
17
- };
18
-
19
- test('should return component if field is empty', async () => {
20
- const props = {
21
- editable: true,
22
- };
23
-
24
- const testComponent = (await renderAstroComponent(TestComponentWithField, { props: props }))
25
- .innerHTML;
26
-
27
- const rendered = await renderAstroComponent(WithFieldMetadata, {
28
- props: props,
29
- slots: {
30
- default: testComponent,
31
- },
32
- });
33
-
34
- expect(rendered.innerHTML).to.equal('<div><h1></h1><h2>foo</h2><p>bar</p></div>');
35
- });
36
-
37
- test('should render unwrapped component if metadata field is not provided', async () => {
38
- const props = {
39
- field: {
40
- value: 'test',
41
- },
42
- editable: true,
43
- };
44
-
45
- const testComponent = (await renderAstroComponent(TestComponentWithField, { props: props }))
46
- .innerHTML;
47
-
48
- const rendered = await renderAstroComponent(WithFieldMetadata, {
49
- props: props,
50
- slots: {
51
- default: testComponent,
52
- },
53
- });
54
-
55
- expect(rendered.innerHTML).to.equal('<div><h1>test</h1><h2>foo</h2><p>bar</p></div>');
56
- });
57
-
58
- test('should render unwrapped component if metadata is provided but field is not editable', async () => {
59
- const props = {
60
- field: {
61
- value: 'test',
62
- metadata: testMetadata,
63
- },
64
- editable: false,
65
- };
66
-
67
- const testComponent = (await renderAstroComponent(TestComponentWithField, { props: props }))
68
- .innerHTML;
69
-
70
- const rendered = await renderAstroComponent(WithFieldMetadata, {
71
- props: props,
72
- slots: {
73
- default: testComponent,
74
- },
75
- });
76
-
77
- expect(rendered.innerHTML).to.equal('<div><h1>test</h1><h2>foo</h2><p>bar</p></div>');
78
- });
79
-
80
- test('should wrap field with provided metadata', async () => {
81
- const props = {
82
- field: {
83
- value: 'car',
84
- metadata: testMetadata,
85
- },
86
- editable: true,
87
- };
88
-
89
- const testComponent = (await renderAstroComponent(TestComponentWithField, { props: props }))
90
- .innerHTML;
91
-
92
- const rendered = await renderAstroComponent(WithFieldMetadata, {
93
- props: props,
94
- slots: {
95
- default: testComponent,
96
- },
97
- });
98
-
99
- expect(rendered.innerHTML).to.equal(
100
- [
101
- `<code type="text/sitecore" chrometype="field" class="scpm" kind="open">${JSON.stringify(
102
- testMetadata
103
- )}</code>`,
104
- '<div>',
105
- '<h1>car</h1>',
106
- '<h2>foo</h2>',
107
- '<p>bar</p>',
108
- '</div>',
109
- '<code type="text/sitecore" chrometype="field" class="scpm" kind="close"></code>',
110
- ].join('')
111
- );
112
- });
113
- });