Skip to content

Commit 4266785

Browse files
committed
test: apply changes now that backend works correctly
1 parent a18e20a commit 4266785

File tree

4 files changed

+61
-74
lines changed

4 files changed

+61
-74
lines changed

test/functional/collections/GetCollectionFeaturedItems.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ describe('execute', () => {
5757
expect(featuredItemsResponse.length).toBe(1)
5858
expect(featuredItemsResponse[0].id).toBe(testFeaturedItemId)
5959
expect(featuredItemsResponse[0].displayOrder).toBe(1)
60-
// expect(featuredItemsResponse[0].content).toBe('<p class="rte-paragraph">Test content</p>')
60+
expect(featuredItemsResponse[0].content).toBe('<p class="rte-paragraph">Test content</p>')
6161
expect(featuredItemsResponse[0].imageFileUrl).toBe(
6262
`http://localhost:8080/api/access/dataverseFeatureItemImage/${featuredItemsResponse[0].id}`
6363
)
@@ -75,7 +75,7 @@ describe('execute', () => {
7575
expect(featuredItemsResponse.length).toBe(2)
7676
expect(featuredItemsResponse[1].id).toBe(featuredItemCreated.id)
7777
expect(featuredItemsResponse[1].displayOrder).toBe(2)
78-
// expect(featuredItemsResponse[1].content).toBe('<p class="rte-paragraph">Test content</p>')
78+
expect(featuredItemsResponse[1].content).toBe('<p class="rte-paragraph">Test content</p>')
7979
expect(featuredItemsResponse[1].imageFileUrl).toBeUndefined()
8080
expect(featuredItemsResponse[1].imageFileName).toBeUndefined()
8181

test/functional/collections/UpdateCollectionFeaturedItems.test.ts

Lines changed: 33 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ import {
1212
deleteCollectionFeaturedItemViaApi
1313
} from '../../testHelpers/collections/collectionFeaturedItemsHelper'
1414
import {
15+
CONTENT_FIELD_WITH_ALL_TAGS,
1516
createCollectionViaApi,
16-
deleteCollectionViaApi
17+
deleteCollectionViaApi,
18+
EXPECTED_CONTENT_FIELD_WITH_ALL_TAGS
1719
} from '../../testHelpers/collections/collectionHelper'
1820

19-
//TODO:ME - After content sanitization is fixed in backend, check if the content is being updated correctly keeping classes, href, rel, target, etc attributes.
20-
2121
describe('execute', () => {
2222
const testCollectionAlias = 'updateCollectionFeaturedItemsTest'
2323

@@ -64,7 +64,7 @@ describe('execute', () => {
6464
keepFile: false
6565
},
6666
{
67-
content: '<p class="rte-paragraph">Test content 3</p>',
67+
content: CONTENT_FIELD_WITH_ALL_TAGS,
6868
displayOrder: 2,
6969
file: createImageFile('featured-item-test-image-3.png'),
7070
keepFile: false
@@ -78,17 +78,17 @@ describe('execute', () => {
7878

7979
expect(updatedFeaturedItemsResponse.length).toBe(3)
8080

81-
// expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
81+
expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
8282
expect(updatedFeaturedItemsResponse[0].displayOrder).toBe(newFeaturedItems[0].displayOrder)
8383
expect(updatedFeaturedItemsResponse[0].imageFileUrl).toBeUndefined()
8484
expect(updatedFeaturedItemsResponse[0].imageFileName).toBeUndefined()
8585

86-
// expect(updatedFeaturedItemsResponse[1].content).toBe(newFeaturedItems[1].content)
86+
expect(updatedFeaturedItemsResponse[1].content).toBe(newFeaturedItems[1].content)
8787
expect(updatedFeaturedItemsResponse[1].displayOrder).toBe(newFeaturedItems[1].displayOrder)
8888
expect(updatedFeaturedItemsResponse[1].imageFileUrl).toBeUndefined()
8989
expect(updatedFeaturedItemsResponse[1].imageFileName).toBeUndefined()
9090

91-
// expect(updatedFeaturedItemsResponse[2].content).toBe(newFeaturedItems[2].content)
91+
expect(updatedFeaturedItemsResponse[2].content).toEqual(EXPECTED_CONTENT_FIELD_WITH_ALL_TAGS)
9292
expect(updatedFeaturedItemsResponse[2].displayOrder).toBe(newFeaturedItems[2].displayOrder)
9393
expect(updatedFeaturedItemsResponse[2].imageFileName).toEqual('featured-item-test-image-3.png')
9494
expect(updatedFeaturedItemsResponse[2].imageFileUrl).toBe(
@@ -132,63 +132,28 @@ describe('execute', () => {
132132
}
133133
})
134134

135-
// TODO:ME - Returning a 500 instead of a proper error message indicating which item property has an error.
136-
// test('should throw an error when featured item content is empty', async () => {
137-
// const newFeaturedItems: CollectionFeaturedItemsDTO = [
138-
// {
139-
// content: '',
140-
// displayOrder: 0,
141-
// file: undefined,
142-
// keepFile: false
143-
// }
144-
// ]
145-
// let writeError: WriteError | undefined
146-
147-
// try {
148-
// await updateCollectionFeaturedItems.execute(testCollectionAlias, newFeaturedItems)
149-
// } catch (error) {
150-
// writeError = error
151-
// } finally {
152-
// expect(writeError).toBeInstanceOf(WriteError)
153-
// expect((writeError as WriteError).message).toEqual(
154-
// 'There was an error when writing the resource. Reason was: [400] Content cannot be empty'
155-
// )
156-
// }
157-
// })
158-
159-
// TODO:ME - Currently not throwing an error and saving them with the same display order.
160-
// test('should throw an error when featured items have the same display order', async () => {
161-
// const newFeaturedItems: CollectionFeaturedItemsDTO = [
162-
// {
163-
// content: '<p class="rte-paragraph">Test content 1</p>',
164-
// displayOrder: 0,
165-
// file: undefined,
166-
// keepFile: false
167-
// },
168-
// {
169-
// content: '<p class="rte-paragraph">Test content 2</p>',
170-
// displayOrder: 0,
171-
// file: undefined,
172-
// keepFile: false
173-
// }
174-
// ]
175-
// let writeError: WriteError | undefined
176-
177-
// try {
178-
// const resp = await updateCollectionFeaturedItems.execute(
179-
// testCollectionAlias,
180-
// newFeaturedItems
181-
// )
182-
// console.log({ resp })
183-
// } catch (error) {
184-
// writeError = error
185-
// } finally {
186-
// expect(writeError).toBeInstanceOf(WriteError)
187-
// expect((writeError as WriteError).message).toEqual(
188-
// 'There was an error when writing the resource. Reason was: [400] Display order must be unique'
189-
// )
190-
// }
191-
// })
135+
test('should throw an error when featured item content is empty', async () => {
136+
const newFeaturedItems: CollectionFeaturedItemsDTO = [
137+
{
138+
content: '',
139+
displayOrder: 0,
140+
file: undefined,
141+
keepFile: false
142+
}
143+
]
144+
let writeError: WriteError | undefined
145+
146+
try {
147+
await updateCollectionFeaturedItems.execute(testCollectionAlias, newFeaturedItems)
148+
} catch (error) {
149+
writeError = error
150+
} finally {
151+
expect(writeError).toBeInstanceOf(WriteError)
152+
expect((writeError as WriteError).message).toEqual(
153+
"There was an error when writing the resource. Reason was: [400] Featured item 'content' property should be provided and not empty."
154+
)
155+
}
156+
})
192157

193158
describe('keepFile behaviour', () => {
194159
let testFeaturedItemId: number
@@ -239,7 +204,7 @@ describe('execute', () => {
239204

240205
expect(updatedFeaturedItemsResponse.length).toBe(1)
241206

242-
// expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
207+
expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
243208
expect(updatedFeaturedItemsResponse[0].displayOrder).toBe(newFeaturedItems[0].displayOrder)
244209
// Should keep the existing file even if a file was not provided because keepFile is true
245210
expect(updatedFeaturedItemsResponse[0].imageFileName).toEqual(testFeaturedItemFilename)
@@ -266,7 +231,7 @@ describe('execute', () => {
266231

267232
expect(updatedFeaturedItemsResponse.length).toBe(1)
268233

269-
// expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
234+
expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
270235
expect(updatedFeaturedItemsResponse[0].displayOrder).toBe(newFeaturedItems[0].displayOrder)
271236
expect(updatedFeaturedItemsResponse[0].imageFileUrl).toBeUndefined()
272237
expect(updatedFeaturedItemsResponse[0].imageFileName).toBeUndefined()
@@ -290,7 +255,7 @@ describe('execute', () => {
290255

291256
expect(updatedFeaturedItemsResponse.length).toBe(1)
292257

293-
// expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
258+
expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
294259
expect(updatedFeaturedItemsResponse[0].displayOrder).toBe(newFeaturedItems[0].displayOrder)
295260
expect(updatedFeaturedItemsResponse[0].imageFileName).toEqual(
296261
'featured-item-test-image-updated.png'
@@ -318,7 +283,7 @@ describe('execute', () => {
318283

319284
expect(updatedFeaturedItemsResponse.length).toBe(1)
320285

321-
// expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
286+
expect(updatedFeaturedItemsResponse[0].content).toBe(newFeaturedItems[0].content)
322287
expect(updatedFeaturedItemsResponse[0].displayOrder).toBe(newFeaturedItems[0].displayOrder)
323288
// Should keep the existing file even if a file was provided because keepFile is true
324289
expect(updatedFeaturedItemsResponse[0].imageFileName).toEqual(testFeaturedItemFilename)

test/integration/collections/CollectionsRepository.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@ describe('CollectionsRepository', () => {
924924
expect(featuredItemsResponse.length).toBe(1)
925925
expect(featuredItemsResponse[0].id).toBe(testFeaturedItemId)
926926
expect(featuredItemsResponse[0].displayOrder).toBe(1)
927-
// expect(featuredItemsResponse[0].content).toBe('<p class="rte-paragraph">Test content</p>')
927+
expect(featuredItemsResponse[0].content).toBe('<p class="rte-paragraph">Test content</p>')
928928
expect(featuredItemsResponse[0].imageFileUrl).toBe(
929929
`http://localhost:8080/api/access/dataverseFeatureItemImage/${featuredItemsResponse[0].id}`
930930
)
@@ -983,17 +983,17 @@ describe('CollectionsRepository', () => {
983983

984984
expect(response).toHaveLength(3)
985985

986-
// expect(response[0].content).toEqual(newFeaturedItems[0].content)
986+
expect(response[0].content).toEqual(newFeaturedItems[0].content)
987987
expect(response[0].displayOrder).toEqual(newFeaturedItems[0].displayOrder)
988988
expect(response[0].imageFileName).toEqual(undefined)
989989
expect(response[0].imageFileUrl).toEqual(undefined)
990990

991-
// expect(response[1].content).toEqual(newFeaturedItems[1].content)
991+
expect(response[1].content).toEqual(newFeaturedItems[1].content)
992992
expect(response[1].displayOrder).toEqual(newFeaturedItems[1].displayOrder)
993993
expect(response[1].imageFileName).toEqual(undefined)
994994
expect(response[1].imageFileUrl).toEqual(undefined)
995995

996-
// expect(response[2].content).toEqual(newFeaturedItems[2].content)
996+
expect(response[2].content).toEqual(newFeaturedItems[2].content)
997997
expect(response[2].displayOrder).toEqual(newFeaturedItems[2].displayOrder)
998998
expect(response[2].imageFileName).toEqual('featured-item-test-image-3.png')
999999
expect(response[2].imageFileUrl).toBe(

test/testHelpers/collections/collectionHelper.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,3 +207,25 @@ export const createCollectionFacetRequestPayload = (): CollectionFacetPayload =>
207207
displayName: 'testDisplayName'
208208
}
209209
}
210+
211+
export const CONTENT_FIELD_WITH_ALL_TAGS =
212+
'<h1 class="rte-heading">A title</h1><p class="rte-paragraph">Esto es una oracion que contiene texto en <strong class="rte-bold">negrita</strong>, <em class="rte-italic">italica</em>, <u class="rte-underline">subrayada</u>, <s class="rte-strike">tachado</s>, <code class="rte-code">de tipo code</code>, este es <a target="_blank" rel="noopener noreferrer nofollow" class="rte-link" href="https://youtube.com">un link que apunta a youtube</a>.</p><p class="rte-paragraph">Una lista desordenada:</p><ul class="rte-bullet-list"><li><p class="rte-paragraph">Item</p></li><li><p class="rte-paragraph">Item</p></li></ul><p class="rte-paragraph">Una lista ordenada:</p><ol class="rte-ordered-list"><li><p class="rte-paragraph">Item 1</p></li><li><p class="rte-paragraph">Item 2</p></li></ol><blockquote class="rte-blockquote"><p class="rte-paragraph">Este es un blockquote.</p></blockquote><p class="rte-paragraph">Esto que viene es un bloque de codigo.</p><pre class="rte-code-block"><code> &lt;Controller name={`featuredItems.${itemIndex}.content`} control={control} rules={rules} render={({ field: { onChange, ref, value }, fieldState: { invalid, error } }) =&gt; { console.log({ value }) return ( &lt;Col&gt; &lt;RichTextEditor initialValue={value as string} editorContentAriaLabelledBy={`featuredItems.${itemIndex}.content`} onChange={onChange} invalid={invalid} ariaRequired ref={ref} /&gt; {invalid &amp;&amp; &lt;div className={styles["error-msg"]}&gt;{error?.message}&lt;/div&gt;} &lt;/Col&gt; ) }} /&gt;</code></pre>'
213+
214+
export const EXPECTED_CONTENT_FIELD_WITH_ALL_TAGS =
215+
'<h1 class="rte-heading">A title</h1>\n' +
216+
'<p class="rte-paragraph">Esto es una oracion que contiene texto en <strong class="rte-bold">negrita</strong>, <em class="rte-italic">italica</em>, <u class="rte-underline">subrayada</u>, <s class="rte-strike">tachado</s>, <code class="rte-code">de tipo code</code>, este es <a target="_blank" rel="noopener noreferrer nofollow" class="rte-link" href="https://youtube.com">un link que apunta a youtube</a>.</p>\n' +
217+
'<p class="rte-paragraph">Una lista desordenada:</p>\n' +
218+
'<ul class="rte-bullet-list">\n' +
219+
' <li><p class="rte-paragraph">Item</p></li>\n' +
220+
' <li><p class="rte-paragraph">Item</p></li>\n' +
221+
'</ul>\n' +
222+
'<p class="rte-paragraph">Una lista ordenada:</p>\n' +
223+
'<ol class="rte-ordered-list">\n' +
224+
' <li><p class="rte-paragraph">Item 1</p></li>\n' +
225+
' <li><p class="rte-paragraph">Item 2</p></li>\n' +
226+
'</ol>\n' +
227+
'<blockquote class="rte-blockquote">\n' +
228+
' <p class="rte-paragraph">Este es un blockquote.</p>\n' +
229+
'</blockquote>\n' +
230+
'<p class="rte-paragraph">Esto que viene es un bloque de codigo.</p>\n' +
231+
'<pre class="rte-code-block"><code> &lt;Controller name={`featuredItems.${itemIndex}.content`} control={control} rules={rules} render={({ field: { onChange, ref, value }, fieldState: { invalid, error } }) =&gt; { console.log({ value }) return ( &lt;Col&gt; &lt;RichTextEditor initialValue={value as string} editorContentAriaLabelledBy={`featuredItems.${itemIndex}.content`} onChange={onChange} invalid={invalid} ariaRequired ref={ref} /&gt; {invalid &amp;&amp; &lt;div className={styles["error-msg"]}&gt;{error?.message}&lt;/div&gt;} &lt;/Col&gt; ) }} /&gt;</code></pre>'

0 commit comments

Comments
 (0)