update tests

This commit is contained in:
Gsk54
2023-01-18 10:47:20 +01:00
parent 972d43ac30
commit 1d2e7da673
8 changed files with 62 additions and 52 deletions

View File

@@ -18,37 +18,37 @@ const existingUsername = {
type: Type.EMAIL,
};
const newUsernameRequest: UpdateUsernameRequest = new UpdateUsernameRequest();
newUsernameRequest.uuid = 'bb281075-1b98-4456-89d6-c643d3044a90';
newUsernameRequest.username = '+33611223344';
newUsernameRequest.type = Type.PHONE;
const updateUsernameRequest: UpdateUsernameRequest =
new UpdateUsernameRequest();
updateUsernameRequest.uuid = 'bb281075-1b98-4456-89d6-c643d3044a91';
updateUsernameRequest.username = 'johnny.doe@email.com';
updateUsernameRequest.type = Type.EMAIL;
const newUsernameRequest: UpdateUsernameRequest = new UpdateUsernameRequest();
newUsernameRequest.uuid = 'bb281075-1b98-4456-89d6-c643d3044a91';
newUsernameRequest.username = '+33611223344';
newUsernameRequest.type = Type.PHONE;
const invalidUpdateUsernameRequest: UpdateUsernameRequest =
new UpdateUsernameRequest();
invalidUpdateUsernameRequest.uuid = 'bb281075-1b98-4456-89d6-c643d3044a91';
invalidUpdateUsernameRequest.username = '';
invalidUpdateUsernameRequest.type = Type.EMAIL;
const unknownUsernameRequest: UpdateUsernameRequest =
new UpdateUsernameRequest();
unknownUsernameRequest.uuid = 'bb281075-1b98-4456-89d6-c643d3044a91';
unknownUsernameRequest.uuid = 'bb281075-1b98-4456-89d6-c643d3044a92';
unknownUsernameRequest.username = 'unknown@email.com';
unknownUsernameRequest.type = Type.EMAIL;
const updateUsernameCommand: UpdateUsernameCommand = new UpdateUsernameCommand(
updateUsernameRequest,
);
const invalidUpdateUsernameRequest: UpdateUsernameRequest =
new UpdateUsernameRequest();
invalidUpdateUsernameRequest.uuid = 'bb281075-1b98-4456-89d6-c643d3044a93';
invalidUpdateUsernameRequest.username = '';
invalidUpdateUsernameRequest.type = Type.EMAIL;
const newUsernameCommand: UpdateUsernameCommand = new UpdateUsernameCommand(
newUsernameRequest,
);
const updateUsernameCommand: UpdateUsernameCommand = new UpdateUsernameCommand(
updateUsernameRequest,
);
const invalidUpdateUsernameCommand: UpdateUsernameCommand =
new UpdateUsernameCommand(invalidUpdateUsernameRequest);
@@ -56,21 +56,24 @@ const unknownUpdateUsernameCommand: UpdateUsernameCommand =
new UpdateUsernameCommand(unknownUsernameRequest);
const mockUsernameRepository = {
findOne: jest.fn().mockResolvedValue(existingUsername),
updateWhere: jest
.fn()
.mockImplementationOnce(() => {
return Promise.resolve(updateUsernameRequest);
})
.mockImplementationOnce(() => {
findOne: jest.fn().mockImplementation((request) => {
if (request.uuid == 'bb281075-1b98-4456-89d6-c643d3044a90') {
return Promise.resolve(null);
}
return Promise.resolve(existingUsername);
}),
updateWhere: jest.fn().mockImplementation((request) => {
if (request.uuid_type.uuid == 'bb281075-1b98-4456-89d6-c643d3044a90') {
return Promise.resolve(newUsernameRequest);
})
.mockImplementationOnce(() => {
}
if (request.uuid_type.uuid == 'bb281075-1b98-4456-89d6-c643d3044a91') {
return Promise.resolve(updateUsernameRequest);
}
if (request.uuid_type.uuid == 'bb281075-1b98-4456-89d6-c643d3044a92') {
throw new Error('Error');
})
.mockImplementationOnce(() => {
return Promise.resolve(invalidUpdateUsernameRequest);
}),
}
return Promise.resolve(invalidUpdateUsernameRequest);
}),
};
const mockAddUsernameCommand = {
@@ -115,15 +118,6 @@ describe('UpdateUsernameUseCase', () => {
});
describe('execute', () => {
it('should update a username for email type', async () => {
const updatedUsername: Username = await updateUsernameUseCase.execute(
updateUsernameCommand,
);
expect(updatedUsername.username).toBe(updateUsernameRequest.username);
expect(updatedUsername.type).toBe(updateUsernameRequest.type);
});
it('should create a new username', async () => {
const newUsername: Username = await updateUsernameUseCase.execute(
newUsernameCommand,
@@ -133,6 +127,15 @@ describe('UpdateUsernameUseCase', () => {
expect(newUsername.type).toBe(newUsernameRequest.type);
});
it('should update a username for email type', async () => {
const updatedUsername: Username = await updateUsernameUseCase.execute(
updateUsernameCommand,
);
expect(updatedUsername.username).toBe(updateUsernameRequest.username);
expect(updatedUsername.type).toBe(updateUsernameRequest.type);
});
it('should throw an error if username does not exist', async () => {
await expect(
updateUsernameUseCase.execute(unknownUpdateUsernameCommand),