@tomei/sso
Version:
Tomei SSO Package
90 lines (81 loc) • 3.33 kB
text/typescript
import { UserSystemAccess } from '../../../../src/components/user-system-access/user-system-access';
import { UserSystemAccessRepository } from '../../../../src/components/user-system-access/user-system-access.repository';
import { ClassError } from '@tomei/general';
describe('UserSystemAccess', () => {
let userSystemAccess: UserSystemAccess;
const userSystemAccessAttr = {
UserSystemAccessId: 1,
UserId: 1,
SystemCode: 'system1',
Status: 'active',
CreatedById: 1,
CreatedAt: new Date(),
UpdatedById: 1,
UpdatedAt: new Date(),
};
beforeEach(() => {
userSystemAccess = new (UserSystemAccess as any)(userSystemAccessAttr);
});
afterEach(() => {
jest.clearAllMocks();
});
describe('constructor', () => {
it('should create a new UserSystemAccess instance', () => {
expect(userSystemAccess).toBeDefined();
expect(userSystemAccess).toBeInstanceOf(UserSystemAccess);
expect(userSystemAccess.UserSystemAccessId).toBe(
userSystemAccessAttr.UserSystemAccessId
);
expect(userSystemAccess.UserId).toBe(userSystemAccessAttr.UserId);
expect(userSystemAccess.SystemCode).toBe(userSystemAccessAttr.SystemCode);
expect(userSystemAccess.Status).toBe(userSystemAccessAttr.Status);
expect(userSystemAccess.CreatedById).toBe(
userSystemAccessAttr.CreatedById
);
expect(userSystemAccess.CreatedAt).toBe(userSystemAccessAttr.CreatedAt);
expect(userSystemAccess.UpdatedById).toBe(
userSystemAccessAttr.UpdatedById
);
expect(userSystemAccess.UpdatedAt).toBe(userSystemAccessAttr.UpdatedAt);
});
});
describe('init', () => {
it('should initialize UserSystemAccess with valid UserSystemAccessId', async () => {
const findOneMock = jest
.spyOn(UserSystemAccessRepository.prototype, 'findOne')
.mockResolvedValueOnce({
...userSystemAccessAttr,
get: () => userSystemAccessAttr,
} as any);
const result = await UserSystemAccess.init(null, 1);
expect(findOneMock).toHaveBeenCalledTimes(1);
expect(findOneMock).toHaveBeenCalledWith({
where: { UserSystemAccessId: 1 },
transaction: null,
});
expect(result).toBeInstanceOf(UserSystemAccess);
expect(result.UserSystemAccessId).toBe(
userSystemAccessAttr.UserSystemAccessId
);
expect(result.UserId).toBe(userSystemAccessAttr.UserId);
expect(result.SystemCode).toBe(userSystemAccessAttr.SystemCode);
expect(result.Status).toBe(userSystemAccessAttr.Status);
expect(result.CreatedById).toBe(userSystemAccessAttr.CreatedById);
expect(result.CreatedAt).toBe(userSystemAccessAttr.CreatedAt);
expect(result.UpdatedById).toBe(userSystemAccessAttr.UpdatedById);
expect(result.UpdatedAt).toBe(userSystemAccessAttr.UpdatedAt);
});
it('should throw ClassError when UserSystemAccessId is not found', async () => {
jest
.spyOn(UserSystemAccessRepository.prototype, 'findOne')
.mockResolvedValueOnce(null);
try {
await UserSystemAccess.init(null, 1)
expect(false).toBe(true);
} catch (error) {
expect(error).toBeInstanceOf(ClassError);
expect(error.message).toBe('UserSystemAccess not found');
}
});
});
});