Skip to content

Commit e5600a3

Browse files
authored
Merge pull request #766 from IQSS/764-update-includedeaccessioned-to-getfile
Update includedeaccessioned to GetFileById
2 parents e7769b4 + 32916dd commit e5600a3

5 files changed

Lines changed: 58 additions & 21 deletions

File tree

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"@dnd-kit/sortable": "8.0.0",
1818
"@dnd-kit/utilities": "3.2.2",
1919
"@faker-js/faker": "7.6.0",
20-
"@iqss/dataverse-client-javascript": "2.0.0-alpha.52",
20+
"@iqss/dataverse-client-javascript": "2.0.0-alpha.53",
2121
"@iqss/dataverse-design-system": "*",
2222
"@istanbuljs/nyc-config-typescript": "1.0.2",
2323
"@tanstack/react-table": "8.9.2",

src/files/infrastructure/FileJSDataverseRepository.ts

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -252,20 +252,29 @@ export class FileJSDataverseRepository implements FileRepository {
252252
}
253253

254254
getById(id: number, datasetVersionNumber?: string): Promise<File> {
255-
return getFileAndDataset
256-
.execute(id, datasetVersionNumber)
257-
.then(([jsFile, jsDataset]) =>
258-
Promise.all([
259-
jsFile,
260-
jsDataset,
261-
getDatasetCitation.execute(jsDataset.id, datasetVersionNumber, includeDeaccessioned),
262-
FileJSDataverseRepository.getCitationById(jsFile.id, datasetVersionNumber),
263-
FileJSDataverseRepository.getDownloadCountById(jsFile.id, jsFile.publicationDate),
264-
FileJSDataverseRepository.getPermissionsById(jsFile.id),
265-
FileJSDataverseRepository.getThumbnailById(jsFile.id),
266-
FileJSDataverseRepository.getTabularDataById(jsFile.id, jsFile.tabularData)
267-
])
268-
)
255+
return FileJSDataverseRepository.getPermissionsById(id)
256+
.then((permissions) => {
257+
const includeDeaccessioned = permissions?.canEditOwnerDataset
258+
259+
return getFileAndDataset
260+
.execute(id, datasetVersionNumber, includeDeaccessioned)
261+
.then(([jsFile, jsDataset]) => {
262+
return Promise.all([
263+
jsFile,
264+
jsDataset,
265+
getDatasetCitation.execute(jsDataset.id, datasetVersionNumber, includeDeaccessioned),
266+
FileJSDataverseRepository.getCitationById(
267+
jsFile.id,
268+
datasetVersionNumber,
269+
includeDeaccessioned
270+
),
271+
FileJSDataverseRepository.getDownloadCountById(jsFile.id, jsFile.publicationDate),
272+
Promise.resolve(permissions),
273+
FileJSDataverseRepository.getThumbnailById(jsFile.id),
274+
FileJSDataverseRepository.getTabularDataById(jsFile.id, jsFile.tabularData)
275+
])
276+
})
277+
})
269278
.then(
270279
([
271280
jsFile,
@@ -293,7 +302,11 @@ export class FileJSDataverseRepository implements FileRepository {
293302
})
294303
}
295304

296-
private static getCitationById(id: number, datasetVersionNumber?: string): Promise<string> {
305+
private static getCitationById(
306+
id: number,
307+
datasetVersionNumber?: string,
308+
includeDeaccessioned?: boolean
309+
): Promise<string> {
297310
return getFileCitation
298311
.execute(id, datasetVersionNumber, includeDeaccessioned)
299312
.catch((error: ReadError) => {

src/sections/file/file-version/FileVersions.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ export function FileVersions({
7777
const isCurrentVersion = fileVersion.datasetVersion === displayVersion
7878
const isLinkable =
7979
fileVersion.versionState === DatasetVersionState.RELEASED ||
80-
fileVersion.versionState === DatasetVersionState.DEACCESSIONED ||
80+
(fileVersion.versionState === DatasetVersionState.DEACCESSIONED &&
81+
canEditOwnerDataset) ||
8182
(fileVersion.versionState === DatasetVersionState.DRAFT && canEditOwnerDataset)
8283

8384
return (

tests/component/sections/file/file-version/FileVersions.spec.tsx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,29 @@ describe('FileVersions', () => {
6767
)
6868
})
6969

70+
it('disables the link button for deaccessioned versions without permission', () => {
71+
const deaccessionedFile = [
72+
{
73+
...fileVersionSummaries[0],
74+
datasetVersion: '1.2',
75+
versionState: DatasetVersionState.DEACCESSIONED
76+
}
77+
]
78+
fileRepository.getFileVersionSummaries = cy.stub().resolves(deaccessionedFile)
79+
cy.customMount(
80+
<FileVersions
81+
fileId={1}
82+
datasetVersionNumber={'2.0'}
83+
fileRepository={fileRepository}
84+
canEditOwnerDataset={false}
85+
isInView
86+
/>
87+
)
88+
89+
cy.get('span').contains('1.2').should('exist')
90+
cy.findByTestId('file-version-link-1.2').should('not.exist')
91+
})
92+
7093
it('disables the link button for draft version without permission', () => {
7194
const draftFile = [
7295
{

0 commit comments

Comments
 (0)