import { createAdmin, createMember, createOwner } from './shared/db/users'; import * as testDb from './shared/testDb'; import { RoleRepository } from '@/databases/repositories/role.repository'; import Container from 'typedi'; describe('RoleRepository', () => { let roleRepository: RoleRepository; beforeAll(async () => { await testDb.init(); roleRepository = Container.get(RoleRepository); await testDb.truncate(['User']); }); afterAll(async () => { await testDb.terminate(); }); describe('countUsersByRole()', () => { test('should return the number of users in each role', async () => { await Promise.all([ createOwner(), createAdmin(), createAdmin(), createMember(), createMember(), createMember(), ]); const usersByRole = await roleRepository.countUsersByRole(); expect(usersByRole).toStrictEqual({ admin: 2, member: 3, owner: 1 }); }); }); });