diff --git a/package-lock.json b/package-lock.json index 375f91bc..1a25d2f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ }, "devDependencies": { "@types/jest": "^29.5.12", + "@types/jsdom": "^20.0.1", "@typescript-eslint/eslint-plugin": "5.51.0", "@typescript-eslint/parser": "5.51.0", "@web-std/file": "3.0.3", @@ -30,6 +31,7 @@ "husky": "9.1.7", "jest": "^29.4.3", "jest-environment-jsdom": "29.7.0", + "jsdom": "^20.0.3", "prettier": "2.8.4", "testcontainers": "^10.11.0", "ts-jest": "^29.0.5", @@ -1534,6 +1536,7 @@ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", @@ -6110,6 +6113,7 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "dev": true, + "license": "MIT", "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.1", diff --git a/package.json b/package.json index 282eced4..aa400f89 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "homepage": "https://github.com/IQSS/dataverse-client-javascript#readme", "devDependencies": { "@types/jest": "^29.5.12", + "@types/jsdom": "^20.0.1", "@typescript-eslint/eslint-plugin": "5.51.0", "@typescript-eslint/parser": "5.51.0", "@web-std/file": "3.0.3", @@ -56,6 +57,7 @@ "husky": "9.1.7", "jest": "^29.4.3", "jest-environment-jsdom": "29.7.0", + "jsdom": "^20.0.3", "prettier": "2.8.4", "testcontainers": "^10.11.0", "ts-jest": "^29.0.5", diff --git a/test/functional/collections/UpdateCollectionFeaturedItems.test.ts b/test/functional/collections/UpdateCollectionFeaturedItems.test.ts index 87d3ebec..b993e27e 100644 --- a/test/functional/collections/UpdateCollectionFeaturedItems.test.ts +++ b/test/functional/collections/UpdateCollectionFeaturedItems.test.ts @@ -18,7 +18,6 @@ import { CONTENT_FIELD_WITH_ALL_TAGS, createCollectionViaApi, deleteCollectionViaApi, - EXPECTED_CONTENT_FIELD_WITH_ALL_TAGS, publishCollectionViaApi } from '../../testHelpers/collections/collectionHelper' import { @@ -27,6 +26,7 @@ import { FeaturedItemType } from '../../../src/collections/domain/models/FeaturedItem' import { uploadFileViaApi } from '../../testHelpers/files/filesHelper' +import { normalizeHtml } from '../../testHelpers/html/htmlNormalizer' import { deletePublishedDatasetViaApi, publishDatasetViaApi, @@ -165,7 +165,9 @@ describe('execute', () => { expect(secondItemResponse.imageFileUrl).toBeUndefined() expect(secondItemResponse.imageFileName).toBeUndefined() - expect(thirdItemResponse.content).toEqual(EXPECTED_CONTENT_FIELD_WITH_ALL_TAGS) + expect(normalizeHtml(thirdItemResponse.content)).toEqual( + normalizeHtml(CONTENT_FIELD_WITH_ALL_TAGS) + ) expect(thirdItemResponse.displayOrder).toBe(newFeaturedItems[2].displayOrder) expect(thirdItemResponse.imageFileName).toEqual('featured-item-test-image-3.png') expect(thirdItemResponse.imageFileUrl).toContain( diff --git a/test/testHelpers/collections/collectionHelper.ts b/test/testHelpers/collections/collectionHelper.ts index 404f5113..9a2eafe2 100644 --- a/test/testHelpers/collections/collectionHelper.ts +++ b/test/testHelpers/collections/collectionHelper.ts @@ -268,11 +268,12 @@ export const createCollectionFacetRequestPayload = (): CollectionFacetPayload => } export const CONTENT_FIELD_WITH_ALL_TAGS = - '

A title

Esto es una oracion que contiene texto en negrita, italica, subrayada, tachado, de tipo code, este es un link que apunta a youtube.

Una lista desordenada:

Una lista ordenada:

  1. Item 1

  2. Item 2

Este es un blockquote.

Esto que viene es un bloque de codigo.

      <Controller name={`featuredItems.${itemIndex}.content`} control={control} rules={rules} render={({ field: { onChange, ref, value }, fieldState: { invalid, error } }) => { console.log({ value }) return ( <Col> <RichTextEditor initialValue={value as string} editorContentAriaLabelledBy={`featuredItems.${itemIndex}.content`} onChange={onChange} invalid={invalid} ariaRequired ref={ref} /> {invalid && <div className={styles["error-msg"]}>{error?.message}</div>} </Col> ) }} />
' + '

A title

Esto es una oracion que contiene texto en negrita, italica, subrayada, tachado, de tipo code, este es un link que apunta a youtube.

Negrita seguida de italica

Una lista desordenada:

Una lista ordenada:

  1. Item 1

  2. Item 2

Este es un blockquote.

Esto que viene es un bloque de codigo.

      <Controller name={`featuredItems.${itemIndex}.content`} control={control} rules={rules} render={({ field: { onChange, ref, value }, fieldState: { invalid, error } }) => { console.log({ value }) return ( <Col> <RichTextEditor initialValue={value as string} editorContentAriaLabelledBy={`featuredItems.${itemIndex}.content`} onChange={onChange} invalid={invalid} ariaRequired ref={ref} /> {invalid && <div className={styles["error-msg"]}>{error?.message}</div>} </Col> ) }} />
' -export const EXPECTED_CONTENT_FIELD_WITH_ALL_TAGS = +export const SERVER_FORMATTED_CONTENT_FIELD_WITH_ALL_TAGS = '

A title

\n' + '

Esto es una oracion que contiene texto en negrita, italica, subrayada, tachado, de tipo code, este es un link que apunta a youtube.

\n' + + '

Negrita seguida de italica

\n' + '

Una lista desordenada:

\n' + '