Skip to content

Commit aa762a8

Browse files
committed
add integration useCase
1 parent b743a4e commit aa762a8

File tree

4 files changed

+116
-1
lines changed

4 files changed

+116
-1
lines changed

src/roles/domain/repositories/transformers/roleTransformers.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import { AxiosResponse } from 'axios'
22
import { Role } from '../../models/Role'
33

44
export const transformRolesUserSelectableResponseToRoles = (response: AxiosResponse): Role[] => {
5+
console.log('transformRolesUserSelectableResponseToRoles', response)
56
const roleUserSelectablePayload = response.data.data
7+
console.log('transformRolesUserSelectableResponseToRoles', response.data.data)
68

79
return roleUserSelectablePayload.map((role: any) => ({
810
id: role.id,

src/roles/infra/repositories/RolesRepository.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export class RolesRepository extends ApiRepository implements IRolesRepository {
77
private readonly rolesResourceName: string = 'roles'
88
public async getUserSelectableRoles(): Promise<Role[]> {
99
return this.doGet(`/${this.rolesResourceName}/userSelectable`, true)
10-
.then((response) => transformRolesUserSelectableResponseToRoles(response.data.data))
10+
.then((response) => transformRolesUserSelectableResponseToRoles(response))
1111
.catch((error) => {
1212
throw error
1313
})
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import {
2+
ApiConfig,
3+
DataverseApiAuthMechanism
4+
} from '../../../src/core/infra/repositories/ApiConfig'
5+
import { TestConstants } from '../../testHelpers/TestConstants'
6+
import { RolesRepository } from '../../../src/roles/infra/repositories/RolesRepository'
7+
import { createSuperAdminRoleArray } from '../../testHelpers/roles/roleHelper'
8+
9+
describe('RolesRepository', () => {
10+
const sut: RolesRepository = new RolesRepository()
11+
12+
describe('getUserSelectableRoles', () => {
13+
test('should return list of selectable roles for authenticated user', async () => {
14+
ApiConfig.init(
15+
TestConstants.TEST_API_URL,
16+
DataverseApiAuthMechanism.API_KEY,
17+
process.env.TEST_API_KEY
18+
)
19+
const actual = await sut.getUserSelectableRoles()
20+
expect(actual).toStrictEqual(createSuperAdminRoleArray())
21+
})
22+
})
23+
})

test/testHelpers/roles/roleHelper.ts

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,93 @@ export const createRoleModelArray = (count: number): Role[] => {
2424
permissions: [`Permission${index + 1}`]
2525
}))
2626
}
27+
28+
export const createSuperAdminRoleArray = (): Role[] => {
29+
return [
30+
{
31+
alias: 'admin',
32+
name: 'Admin',
33+
permissions: [
34+
'AddDataverse',
35+
'AddDataset',
36+
'ViewUnpublishedDataverse',
37+
'ViewUnpublishedDataset',
38+
'DownloadFile',
39+
'EditDataverse',
40+
'EditDataset',
41+
'ManageDataversePermissions',
42+
'ManageDatasetPermissions',
43+
'ManageFilePermissions',
44+
'PublishDataverse',
45+
'PublishDataset',
46+
'DeleteDataverse',
47+
'DeleteDatasetDraft'
48+
],
49+
description:
50+
'A person who has all permissions for dataverses, datasets, and files, including approving requests for restricted data.',
51+
id: 1
52+
},
53+
{
54+
alias: 'fileDownloader',
55+
name: 'File Downloader',
56+
permissions: ['DownloadFile'],
57+
description: 'A person who can download a published file.',
58+
id: 2
59+
},
60+
{
61+
alias: 'fullContributor',
62+
name: 'Dataverse + Dataset Creator',
63+
permissions: ['AddDataverse', 'AddDataset'],
64+
description: 'A person who can add subdataverses and datasets within a dataverse.',
65+
id: 3
66+
},
67+
{
68+
alias: 'dvContributor',
69+
name: 'Dataverse Creator',
70+
permissions: ['AddDataverse'],
71+
description: 'A person who can add subdataverses within a dataverse.',
72+
id: 4
73+
},
74+
{
75+
alias: 'dsContributor',
76+
name: 'Dataset Creator',
77+
permissions: ['AddDataset'],
78+
description: 'A person who can add datasets within a dataverse.',
79+
id: 5
80+
},
81+
{
82+
alias: 'contributor',
83+
name: 'Contributor',
84+
permissions: ['ViewUnpublishedDataset', 'DownloadFile', 'EditDataset', 'DeleteDatasetDraft'],
85+
description:
86+
'For datasets, a person who can edit License + Terms, and then submit them for review.',
87+
id: 6
88+
},
89+
{
90+
alias: 'curator',
91+
name: 'Curator',
92+
permissions: [
93+
'AddDataverse',
94+
'AddDataset',
95+
'ViewUnpublishedDataverse',
96+
'ViewUnpublishedDataset',
97+
'DownloadFile',
98+
'EditDataset',
99+
'ManageDatasetPermissions',
100+
'ManageFilePermissions',
101+
'PublishDataset',
102+
'DeleteDatasetDraft'
103+
],
104+
description:
105+
'For datasets, a person who can edit License + Terms, edit Permissions, and publish datasets.',
106+
id: 7
107+
},
108+
{
109+
alias: 'member',
110+
name: 'Member',
111+
permissions: ['ViewUnpublishedDataverse', 'ViewUnpublishedDataset', 'DownloadFile'],
112+
description: 'A person who can view both unpublished dataverses and datasets.',
113+
id: 8
114+
}
115+
]
116+
}

0 commit comments

Comments
 (0)