Skip to content

Commit 5067542

Browse files
committed
Add documentation and unit tests
1 parent 448cb00 commit 5067542

3 files changed

Lines changed: 117 additions & 4 deletions

File tree

docs/useCases.md

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,8 +1398,6 @@ _See [use case](../src/datasets/domain/useCases/GetDatasetAvailableCategories.ts
13981398

13991399
The `datasetId` parameter is a number for numeric identifiers or string for persistent identifiers.
14001400

1401-
# <<<<<<< HEAD
1402-
14031401
#### Get Dataset Templates
14041402

14051403
Returns a [DatasetTemplate](../src/datasets/domain/models/DatasetTemplate.ts) array containing the dataset templates of the requested collection, given the collection identifier or alias.
@@ -2525,6 +2523,42 @@ getAvailableDatasetMetadataExportFormats
25252523

25262524
_See [use case](../src/info/domain/useCases/GetAvailableDatasetMetadataExportFormats.ts) implementation_.
25272525

2526+
#### Get Dataset Publish Popup Custom Text
2527+
2528+
Returns the custom text displayed in the dataset publish confirmation popup
2529+
2530+
##### Example call:
2531+
2532+
```typescript
2533+
import { getDatasetPublishPopupCustomText } from '@iqss/dataverse-client-javascript'
2534+
2535+
/* ... */
2536+
2537+
getDatasetPublishPopupCustomText.execute().then((text: string) => {
2538+
/* ... */
2539+
})
2540+
```
2541+
2542+
_See [use case](../src/info/domain/useCases/GetDatasetPublishPopupCustomText.ts) implementation_.
2543+
2544+
#### Get Publish Dataset Disclaimer Text
2545+
2546+
Returns the disclaimer text displayed in the dataset publish flow.
2547+
2548+
##### Example calls:
2549+
2550+
```typescript
2551+
import { getPublishDatasetDisclaimerText } from '@iqss/dataverse-client-javascript'
2552+
2553+
/* ... */
2554+
2555+
getPublishDatasetDisclaimerText.execute().then((disclaimerText: string) => {
2556+
/* ... */
2557+
})
2558+
```
2559+
2560+
_See [use case](../src/info/domain/useCases/GetPublishDatasetDisclaimerText.ts) implementation_.
2561+
25282562
## Licenses
25292563

25302564
### Get Available Standard License Terms
@@ -2559,7 +2593,7 @@ import { submitContactInfo } from '@iqss/dataverse-client-javascript'
25592593
/* ... */
25602594

25612595
const contactDTO: ContactDTO = {
2562-
targedId: 1
2596+
targedId: 1,
25632597
subject: 'Data Question',
25642598
body: 'Please help me understand your data. Thank you!',
25652599
fromEmail: 'test@gmail.com'

src/info/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { GetZipDownloadLimit } from './domain/useCases/GetZipDownloadLimit'
44
import { GetMaxEmbargoDurationInMonths } from './domain/useCases/GetMaxEmbargoDurationInMonths'
55
import { GetApplicationTermsOfUse } from './domain/useCases/GetApplicationTermsOfUse'
66
import { GetAvailableDatasetMetadataExportFormats } from './domain/useCases/GetAvailableDatasetMetadataExportFormats'
7+
import { GetDatasetPublishPopupCustomText } from './domain/useCases/GetDatasetPublishPopupCustomText'
78

89
const dataverseInfoRepository = new DataverseInfoRepository()
910

@@ -14,13 +15,19 @@ const getApplicationTermsOfUse = new GetApplicationTermsOfUse(dataverseInfoRepos
1415
const getAvailableDatasetMetadataExportFormats = new GetAvailableDatasetMetadataExportFormats(
1516
dataverseInfoRepository
1617
)
18+
const getPublishDatasetDisclaimerText = new GetApplicationTermsOfUse(dataverseInfoRepository)
19+
const getDatasetPublishPopupCustomText = new GetDatasetPublishPopupCustomText(
20+
dataverseInfoRepository
21+
)
1722

1823
export {
1924
getDataverseVersion,
2025
getZipDownloadLimit,
2126
getMaxEmbargoDurationInMonths,
2227
getApplicationTermsOfUse,
23-
getAvailableDatasetMetadataExportFormats
28+
getAvailableDatasetMetadataExportFormats,
29+
getDatasetPublishPopupCustomText,
30+
getPublishDatasetDisclaimerText
2431
}
2532

2633
export { DatasetMetadataExportFormats } from './domain/models/DatasetMetadataExportFormats'

test/unit/info/DataverseInfoRepository.test.ts

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,4 +240,76 @@ describe('DataverseInfoRepository', () => {
240240
expect(error).toBeInstanceOf(Error)
241241
})
242242
})
243+
244+
describe('getDatasetPublishPopupCustomText', () => {
245+
test('should return dataset publish popup custom text on successful response', async () => {
246+
const testPopupText = 'Custom popup text.'
247+
const testSuccessfulResponse = {
248+
data: {
249+
status: 'OK',
250+
data: {
251+
message: testPopupText
252+
}
253+
}
254+
}
255+
jest.spyOn(axios, 'get').mockResolvedValue(testSuccessfulResponse)
256+
257+
const actual = await sut.getDatasetPublishPopupCustomText()
258+
259+
expect(axios.get).toHaveBeenCalledWith(
260+
`${TestConstants.TEST_API_URL}/info/settings/:DatasetPublishPopupCustomText`,
261+
TestConstants.TEST_EXPECTED_UNAUTHENTICATED_REQUEST_CONFIG
262+
)
263+
expect(actual).toMatch(testPopupText)
264+
})
265+
266+
test('should return error result on error response', async () => {
267+
jest.spyOn(axios, 'get').mockRejectedValue(TestConstants.TEST_ERROR_RESPONSE)
268+
269+
let error: ReadError | undefined
270+
await sut.getDatasetPublishPopupCustomText().catch((e) => (error = e))
271+
272+
expect(axios.get).toHaveBeenCalledWith(
273+
`${TestConstants.TEST_API_URL}/info/settings/:DatasetPublishPopupCustomText`,
274+
TestConstants.TEST_EXPECTED_UNAUTHENTICATED_REQUEST_CONFIG
275+
)
276+
expect(error).toBeInstanceOf(Error)
277+
})
278+
})
279+
280+
describe('getPublishDatasetDisclaimerText', () => {
281+
test('should return publish dataset disclaimer text on successful response', async () => {
282+
const testDisclaimerText = 'Disclaimer text.'
283+
const testSuccessfulResponse = {
284+
data: {
285+
status: 'OK',
286+
data: {
287+
message: testDisclaimerText
288+
}
289+
}
290+
}
291+
jest.spyOn(axios, 'get').mockResolvedValue(testSuccessfulResponse)
292+
293+
const actual = await sut.getPublishDatasetDisclaimerText()
294+
295+
expect(axios.get).toHaveBeenCalledWith(
296+
`${TestConstants.TEST_API_URL}/info/settings/:PublishDatasetDisclaimerText`,
297+
TestConstants.TEST_EXPECTED_UNAUTHENTICATED_REQUEST_CONFIG
298+
)
299+
expect(actual).toMatch(testDisclaimerText)
300+
})
301+
302+
test('should return error result on error response', async () => {
303+
jest.spyOn(axios, 'get').mockRejectedValue(TestConstants.TEST_ERROR_RESPONSE)
304+
305+
let error: ReadError | undefined
306+
await sut.getPublishDatasetDisclaimerText().catch((e) => (error = e))
307+
308+
expect(axios.get).toHaveBeenCalledWith(
309+
`${TestConstants.TEST_API_URL}/info/settings/:PublishDatasetDisclaimerText`,
310+
TestConstants.TEST_EXPECTED_UNAUTHENTICATED_REQUEST_CONFIG
311+
)
312+
expect(error).toBeInstanceOf(Error)
313+
})
314+
})
243315
})

0 commit comments

Comments
 (0)