+
{labels.map((label, index) => (
{label.value}
diff --git a/src/stories/collection/collection-items-panel/CollectionCard.stories.tsx b/src/stories/collection/collection-items-panel/CollectionCard.stories.tsx
index e50285374..c3975d4f6 100644
--- a/src/stories/collection/collection-items-panel/CollectionCard.stories.tsx
+++ b/src/stories/collection/collection-items-panel/CollectionCard.stories.tsx
@@ -25,6 +25,7 @@ export const Default: Story = {
export const WithLongDescription: Story = {
render: () => {
const collectionPreview = CollectionItemTypePreviewMother.create({
+ name: 'Scientific Research Collection',
description: FakerHelper.paragraph(20)
})
return (
diff --git a/src/stories/collection/collection-items-panel/DatasetCard.stories.tsx b/src/stories/collection/collection-items-panel/DatasetCard.stories.tsx
index 4edb1f002..ccf92b4ae 100644
--- a/src/stories/collection/collection-items-panel/DatasetCard.stories.tsx
+++ b/src/stories/collection/collection-items-panel/DatasetCard.stories.tsx
@@ -16,10 +16,24 @@ export const Default: Story = {
render: () =>
}
+export const Published: Story = {
+ render: () =>
+}
+
+export const DraftAndUnpublished: Story = {
+ render: () => (
+
+ )
+}
+
export const Deaccessioned: Story = {
render: () =>
}
+export const InReview: Story = {
+ render: () =>
+}
+
export const WithThumbnail: Story = {
render: () =>
}
diff --git a/tests/component/collection/domain/models/CollectionItemTypePreviewMother.ts b/tests/component/collection/domain/models/CollectionItemTypePreviewMother.ts
index 73fd9ff2c..a54079217 100644
--- a/tests/component/collection/domain/models/CollectionItemTypePreviewMother.ts
+++ b/tests/component/collection/domain/models/CollectionItemTypePreviewMother.ts
@@ -75,6 +75,7 @@ export class CollectionItemTypePreviewMother {
}
static createUnpublished(): CollectionItemTypePreview {
return CollectionItemTypePreviewMother.createWithOnlyRequiredFields({
+ name: 'Scientific Research Collection',
isReleased: false,
affiliation: FakerHelper.affiliation()
})
@@ -93,6 +94,7 @@ export class CollectionItemTypePreviewMother {
static createWithThumbnail(): CollectionItemTypePreview {
return CollectionItemTypePreviewMother.create({
+ name: 'Scientific Research Collection',
thumbnail: FakerHelper.getImageUrl()
})
}
diff --git a/tests/component/dataset/domain/models/DatasetItemTypePreviewMother.ts b/tests/component/dataset/domain/models/DatasetItemTypePreviewMother.ts
index 0acb5b741..9b523dce0 100644
--- a/tests/component/dataset/domain/models/DatasetItemTypePreviewMother.ts
+++ b/tests/component/dataset/domain/models/DatasetItemTypePreviewMother.ts
@@ -57,7 +57,16 @@ export class DatasetItemTypePreviewMother {
static createDraft(): DatasetItemTypePreview {
return this.create({
version: DatasetVersionMother.createDraft(),
- publicationStatuses: [PublicationStatus.Draft]
+ publicationStatuses: [PublicationStatus.Draft],
+ thumbnail: undefined
+ })
+ }
+
+ static createDraftAndUnpublished(): DatasetItemTypePreview {
+ return this.create({
+ version: DatasetVersionMother.createNotReleased(),
+ publicationStatuses: [PublicationStatus.Unpublished, PublicationStatus.Draft],
+ thumbnail: undefined
})
}
@@ -71,7 +80,16 @@ export class DatasetItemTypePreviewMother {
static createDeaccessioned(): DatasetItemTypePreview {
return this.create({
- version: DatasetVersionMother.createDeaccessioned()
+ version: DatasetVersionMother.createDeaccessioned(),
+ publicationStatuses: [PublicationStatus.Deaccessioned]
+ })
+ }
+
+ static createInReview(): DatasetItemTypePreview {
+ return this.create({
+ version: DatasetVersionMother.createDraft(),
+ publicationStatuses: [PublicationStatus.Draft, PublicationStatus.InReview],
+ thumbnail: undefined
})
}
}
diff --git a/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCard.spec.tsx b/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCard.spec.tsx
index c10dd9741..4fd60fe41 100644
--- a/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCard.spec.tsx
+++ b/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCard.spec.tsx
@@ -1,6 +1,8 @@
+import { Route } from '@/sections/Route.enum'
import { DatasetCard } from '@/sections/collection/collection-items-panel/items-list/dataset-card/DatasetCard'
import { DatasetItemTypePreviewMother } from '@tests/component/dataset/domain/models/DatasetItemTypePreviewMother'
import { DateHelper } from '@/shared/helpers/DateHelper'
+import styles from '@/sections/collection/collection-items-panel/items-list/dataset-card/DatasetCard.module.scss'
describe('DatasetCard', () => {
it('should render the card', () => {
@@ -14,6 +16,7 @@ describe('DatasetCard', () => {
cy.findByText(DateHelper.toDisplayFormat(dataset.releaseOrCreateDate)).should('exist')
cy.findByText(/Admin, Dataverse, 2023, "Dataset Title",/).should('exist')
})
+
it('should render the card with user roles', () => {
const userRoles = ['Admin', 'Contributor']
const dataset = DatasetItemTypePreviewMother.create({ userRoles: userRoles })
@@ -29,4 +32,56 @@ describe('DatasetCard', () => {
cy.findByText(role).should('exist')
})
})
+
+ it('should render the dataset info correctly', () => {
+ const dataset = DatasetItemTypePreviewMother.createDraft()
+ cy.customMount()
+
+ cy.findByText(DateHelper.toDisplayFormat(dataset.releaseOrCreateDate)).should('exist')
+ cy.findByText(/Admin, Dataverse, 2023, "Dataset Title",/)
+ .should('exist')
+ .parent()
+ .parent()
+ .should('have.class', styles['citation-box'])
+ cy.findByText(dataset.description).should('exist')
+ })
+
+ it('should render the citation with the deaccessioned background if the dataset is deaccessioned', () => {
+ const dataset = DatasetItemTypePreviewMother.createDeaccessioned()
+ cy.customMount()
+
+ cy.findByText(/Admin, Dataverse, 2023, "Dataset Title",/)
+ .should('exist')
+ .parent()
+ .parent()
+ .should('have.class', styles['deaccesioned'])
+ })
+
+ describe('Parent Collection Link', () => {
+ it('should render it if parentCollectionAlias is not the one where the dataset card is being shown', () => {
+ const dataset = DatasetItemTypePreviewMother.create({
+ parentCollectionAlias: 'parent-collection-alias',
+ parentCollectionName: 'Parent Collection Name'
+ })
+ cy.customMount(
+
+ )
+
+ cy.findByText('Parent Collection Name')
+ .should('exist')
+ .should('have.attr', 'href', `${Route.COLLECTIONS_BASE}/parent-collection-alias`)
+ })
+
+ it('should not render it if parentCollectionAlias is the same as the one where the dataset card is being shown', () => {
+ const dataset = DatasetItemTypePreviewMother.create({
+ parentCollectionAlias: 'parent-collection-alias',
+ parentCollectionName: 'Parent Collection Name'
+ })
+ cy.customMount(
+
+ )
+
+ cy.findByText('Parent Collection Name').should('not.exist')
+ })
+ })
})
diff --git a/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCardHeader.spec.tsx b/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCardHeader.spec.tsx
index f649c6a6d..5bc17f397 100644
--- a/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCardHeader.spec.tsx
+++ b/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCardHeader.spec.tsx
@@ -1,11 +1,16 @@
import { DatasetCardHeader } from '@/sections/collection/collection-items-panel/items-list/dataset-card/DatasetCardHeader'
+import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus'
import { DatasetItemTypePreviewMother } from '@tests/component/dataset/domain/models/DatasetItemTypePreviewMother'
describe('DatasetCardHeader', () => {
it('should render the header', () => {
const dataset = DatasetItemTypePreviewMother.create()
cy.customMount(
-
+
)
cy.findByText(dataset.version.title)
@@ -18,19 +23,60 @@ describe('DatasetCardHeader', () => {
}&version=${dataset.version.number.toString()}`
)
- dataset.version.labels.forEach((label) => {
- cy.findByText(label.value).should('exist')
- })
cy.findByLabelText('icon-dataset').should('exist')
})
it('should render the correct search param for draft version', () => {
const dataset = DatasetItemTypePreviewMother.createDraft()
cy.customMount(
-
+
)
cy.findByText(dataset.version.title)
.should('exist')
.should('have.attr', 'href', `/datasets?persistentId=${dataset.persistentId}&version=DRAFT`)
})
+
+ it('should sort the publication statuses by name', () => {
+ const dataset = DatasetItemTypePreviewMother.create({
+ publicationStatuses: [
+ PublicationStatus.Unpublished,
+ PublicationStatus.Draft,
+ PublicationStatus.InReview
+ ]
+ })
+ cy.customMount(
+
+ )
+
+ cy.findAllByText(PublicationStatus.Draft).should('exist')
+ cy.findAllByText(PublicationStatus.InReview).should('exist')
+ cy.findAllByText(PublicationStatus.Unpublished).should('exist')
+
+ cy.get('.badge').then((badges) => {
+ expect(badges[0].textContent).to.equal(PublicationStatus.Draft)
+ expect(badges[1].textContent).to.equal(PublicationStatus.InReview)
+ expect(badges[2].textContent).to.equal(PublicationStatus.Unpublished)
+ })
+ })
+
+ it('should filter out and dont render the Published status badge', () => {
+ const dataset = DatasetItemTypePreviewMother.create()
+ cy.customMount(
+
+ )
+
+ cy.findByText(PublicationStatus.Published).should('not.exist')
+ })
})
diff --git a/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCardInfo.spec.tsx b/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCardInfo.spec.tsx
deleted file mode 100644
index 9ef0f054f..000000000
--- a/tests/component/sections/collection/collection-items-panel/dataset-card/DatasetCardInfo.spec.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-import { DatasetCardInfo } from '@/sections/collection/collection-items-panel/items-list/dataset-card/DatasetCardInfo'
-import { DatasetItemTypePreviewMother } from '../../../../dataset/domain/models/DatasetItemTypePreviewMother'
-import { DateHelper } from '@/shared/helpers/DateHelper'
-import styles from '@/sections/collection/collection-items-panel/items-list/dataset-card/DatasetCard.module.scss'
-
-describe('DatasetCardInfo', () => {
- it('should render the dataset info', () => {
- const dataset = DatasetItemTypePreviewMother.createDraft()
- cy.customMount(
-
- )
-
- cy.findByText(DateHelper.toDisplayFormat(dataset.releaseOrCreateDate)).should('exist')
- cy.findByText(/Admin, Dataverse, 2023, "Dataset Title",/)
- .should('exist')
- .parent()
- .parent()
- .should('have.class', styles['citation-box'])
- cy.findByText(dataset.description).should('exist')
- })
-
- it('should render the citation with the deaccessioned background if the dataset is deaccessioned', () => {
- const dataset = DatasetItemTypePreviewMother.createDeaccessioned()
- cy.customMount(
-
- )
-
- cy.findByText(/Admin, Dataverse, 2023, "Dataset Title",/)
- .should('exist')
- .parent()
- .parent()
- .should('have.class', styles['deaccesioned'])
- })
-})
diff --git a/tests/component/sections/collection/collection-items-panel/file-card/FileCard.spec.tsx b/tests/component/sections/collection/collection-items-panel/file-card/FileCard.spec.tsx
index 7ab9b3c30..0d4259211 100644
--- a/tests/component/sections/collection/collection-items-panel/file-card/FileCard.spec.tsx
+++ b/tests/component/sections/collection/collection-items-panel/file-card/FileCard.spec.tsx
@@ -67,4 +67,22 @@ describe('FileCard', () => {
.should('have.attr', 'href')
.and('include', 'version=DRAFT')
})
+
+ it('should not show any tag if the file has no tags', () => {
+ const filePreview = FileItemTypePreviewMother.create({ tags: [] })
+ cy.customMount()
+
+ cy.findByTestId('file-labels').children().should('have.length', 0)
+ })
+
+ it('should default to 0 variables and 0 observations if file is tabular and they are not present', () => {
+ const filePreview = FileItemTypePreviewMother.create({
+ fileType: 'Tab-Delimited',
+ variables: undefined,
+ observations: undefined
+ })
+ cy.customMount()
+
+ cy.contains('0 variables, 0 observations').should('exist')
+ })
})