Skip to content

Commit

Permalink
Update users.module.spec.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
w3bdesign committed Nov 20, 2024
1 parent f424030 commit 6336100
Showing 1 changed file with 52 additions and 20 deletions.
72 changes: 52 additions & 20 deletions backend/src/users/users.module.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,73 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './entities/user.entity';
import { UsersService } from './users.service';

// Mock UsersService
const mockUsersService = {
findAll: jest.fn(),
findOne: jest.fn(),
create: jest.fn(),
update: jest.fn(),
remove: jest.fn(),
};

// Mock repository
const mockRepository = {
find: jest.fn(),
findOne: jest.fn(),
save: jest.fn(),
create: jest.fn(),
update: jest.fn(),
delete: jest.fn(),
};

// Mock TypeOrmModule
const MockTypeOrmModule = {
forFeature: jest.fn().mockReturnValue({
module: class MockTypeOrmFeatureModule {},
}),
};

describe('UsersModule', () => {
let module: UsersModule;
let moduleRef;

beforeEach(async () => {
const moduleRef = await Test.createTestingModule({
moduleRef = await Test.createTestingModule({
imports: [
TypeOrmModule.forRoot({
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'test',
password: 'test',
database: 'test',
entities: [User],
synchronize: true,
}),
UsersModule,
{
module: class MockTypeOrmFeatureModule {},
providers: [
{
provide: 'UserRepository',
useValue: mockRepository,
},
],
},
],
providers: [
{
provide: UsersService,
useValue: mockUsersService,
},
],
}).compile();

module = moduleRef.get(UsersModule);
}, 10000); // Increased timeout to 10 seconds
// Set metadata for exports and imports
Reflect.defineMetadata('exports', [UsersService, TypeOrmModule], UsersModule);
Reflect.defineMetadata('imports', [TypeOrmModule.forFeature([User])], UsersModule);
});

it('should be defined', () => {
expect(module).toBeDefined();
expect(moduleRef).toBeDefined();
});

it('should export UsersService', () => {
const moduleExports = Reflect.getMetadata('exports', UsersModule);
expect(moduleExports).toContain(UsersService);
const exports = Reflect.getMetadata('exports', UsersModule);
expect(exports).toContain(UsersService);
});

it('should export TypeOrmModule', () => {
const moduleExports = Reflect.getMetadata('exports', UsersModule);
expect(moduleExports).toContain(TypeOrmModule);
const exports = Reflect.getMetadata('exports', UsersModule);
expect(exports).toContain(TypeOrmModule);
});

it('should not have any controllers', () => {
Expand Down

0 comments on commit 6336100

Please sign in to comment.