Skip to content

Commit 7db3f1a

Browse files
committed
Added: RecreateApiToken use case tests
1 parent 0949578 commit 7db3f1a

File tree

3 files changed

+51
-2
lines changed

3 files changed

+51
-2
lines changed

src/users/index.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import { UsersRepository } from './infra/repositories/UsersRepository'
22
import { GetCurrentAuthenticatedUser } from './domain/useCases/GetCurrentAuthenticatedUser'
3+
import { RecreateApiToken } from './domain/useCases/RecreateApiToken'
34

4-
const getCurrentAuthenticatedUser = new GetCurrentAuthenticatedUser(new UsersRepository())
5+
const usersRepository = new UsersRepository()
56

6-
export { getCurrentAuthenticatedUser }
7+
const getCurrentAuthenticatedUser = new GetCurrentAuthenticatedUser(usersRepository)
8+
const recreateApiToken = new RecreateApiToken(usersRepository)
9+
10+
export { getCurrentAuthenticatedUser, recreateApiToken }
711
export { AuthenticatedUser } from './domain/models/AuthenticatedUser'
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { ApiConfig, recreateApiToken } from '../../../src'
2+
import { DataverseApiAuthMechanism } from '../../../src/core/infra/repositories/ApiConfig'
3+
import { TestConstants } from '../../testHelpers/TestConstants'
4+
import { createApiTokenViaApi } from '../../testHelpers/users/apiTokenHelper'
5+
6+
describe('execute', () => {
7+
afterAll(async () => {
8+
ApiConfig.init(
9+
TestConstants.TEST_API_URL,
10+
DataverseApiAuthMechanism.API_KEY,
11+
process.env.TEST_API_KEY
12+
)
13+
})
14+
15+
test('should successfully recreate the API token', async () => {
16+
const testApiToken = await createApiTokenViaApi()
17+
ApiConfig.init(TestConstants.TEST_API_URL, DataverseApiAuthMechanism.API_KEY, testApiToken)
18+
const actualNewApiToken = await recreateApiToken.execute()
19+
expect(actualNewApiToken).not.toBe(testApiToken)
20+
})
21+
})
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { IUsersRepository } from '../../../src/users/domain/repositories/IUsersRepository'
2+
import { RecreateApiToken } from '../../../src/users/domain/useCases/RecreateApiToken'
3+
import { WriteError } from '../../../src'
4+
5+
describe('execute', () => {
6+
test('should return API token on repository success', async () => {
7+
const testNewToken = 'newToken'
8+
const usersRepositoryStub: IUsersRepository = {} as IUsersRepository
9+
usersRepositoryStub.recreateApiToken = jest.fn().mockResolvedValue(testNewToken)
10+
const sut = new RecreateApiToken(usersRepositoryStub)
11+
12+
const actual = await sut.execute()
13+
14+
expect(actual).toEqual(testNewToken)
15+
})
16+
17+
test('should return error result on repository error', async () => {
18+
const usersRepositoryStub: IUsersRepository = {} as IUsersRepository
19+
usersRepositoryStub.recreateApiToken = jest.fn().mockRejectedValue(new WriteError())
20+
const sut = new RecreateApiToken(usersRepositoryStub)
21+
22+
await expect(sut.execute()).rejects.toThrow(WriteError)
23+
})
24+
})

0 commit comments

Comments
 (0)