Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# sample-typescript
# sample-typescript
##
47 changes: 43 additions & 4 deletions test/services/UserService.spec.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// test/services/UserService.spec.ts
import { expect } from 'chai';
import { UserService } from '../../src/services/UserService';
import { User } from '../../src/models/User';
Expand All @@ -21,22 +22,60 @@

it('should throw error when adding duplicate user', () => {
userService.addUser(testUser);
expect(() => userService.addUser(testUser)).to.throw();
expect(() => userService.addUser(testUser)).to.throw(`User with id ${testUser.id} already exists`);

Check failure on line 25 in test/services/UserService.spec.ts

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

test/services/UserService.spec.ts#L25

Returning a void expression from an arrow function shorthand is forbidden. Please add braces to the arrow function.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codacy has a fix for the issue: Returning a void expression from an arrow function shorthand is forbidden. Please add braces to the arrow function.

Suggested change
expect(() => userService.addUser(testUser)).to.throw(`User with id ${testUser.id} already exists`);
expect(() => { userService.addUser(testUser); }).to.throw(`User with id ${testUser.id} already exists`);

});
});

describe('getUser', () => {
it('should return undefined for non-existent user', () => {
expect(userService.getUser(999)).to.be.undefined;
});

it('should return user when exists', () => {
userService.addUser(testUser);
const user = userService.getUser(testUser.id);
expect(user).to.deep.include(testUser);
});
});

describe('getAllUsers', () => {
it('should return all users', () => {
it('should return empty array when no users exist', () => {
expect(userService.getAllUsers()).to.be.empty;
});

it('should return all users when users exist', () => {
const user2 = { id: 2, name: 'Test User 2', email: 'test2@example.com' };
userService.addUser(testUser);
userService.addUser(user2);
const users = userService.getAllUsers();
expect(users).to.have.lengthOf(1);
expect(users[0]).to.deep.include(testUser);
expect(users).to.have.lengthOf(2);
expect(users).to.deep.include(testUser);
expect(users).to.deep.include(user2);
});
});

describe('updateUser', () => {
it('should update existing user', () => {
userService.addUser(testUser);
const updatedUser = { ...testUser, name: 'Updated Name' };
userService.updateUser(updatedUser);
expect(userService.getUser(testUser.id)).to.deep.include(updatedUser);
});

it('should throw error when updating non-existent user', () => {
expect(() => userService.updateUser(testUser)).to.throw(`User with id ${testUser.id} not found`);

Check failure on line 66 in test/services/UserService.spec.ts

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

test/services/UserService.spec.ts#L66

Returning a void expression from an arrow function shorthand is forbidden. Please add braces to the arrow function.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codacy has a fix for the issue: Returning a void expression from an arrow function shorthand is forbidden. Please add braces to the arrow function.

Suggested change
expect(() => userService.updateUser(testUser)).to.throw(`User with id ${testUser.id} not found`);
expect(() => { userService.updateUser(testUser); }).to.throw(`User with id ${testUser.id} not found`);

});
});

describe('deleteUser', () => {
it('should return true when user deleted successfully', () => {
userService.addUser(testUser);
expect(userService.deleteUser(testUser.id)).to.be.true;
expect(userService.getUser(testUser.id)).to.be.undefined;
});

it('should return false when deleting non-existent user', () => {
expect(userService.deleteUser(999)).to.be.false;
});
});
});