nestjs-api-tools
Version:
Wrappers for convenient API development including validation, logging and i18n wrappers
63 lines (53 loc) • 1.56 kB
text/typescript
import {Test, TestingModule} from '@nestjs/testing';
import {DISCORD_SERVICE_OPTIONS} from '../constants';
import {DiscordService} from './discord.service';
import {MessageEmbed} from 'discord.js';
import faker from 'faker';
describe('DiscordService', () => {
let service: DiscordService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [
DiscordService,
{
provide: DISCORD_SERVICE_OPTIONS,
useValue: {
debug: true,
domain: faker.internet.domainName(),
id: null,
token: null,
},
},
],
}).compile();
service = module.get<DiscordService>(DiscordService);
});
it('should be defined', () => {
expect(service).toBeDefined();
});
it('should not create hook if id and token not defined', () => {
expect((service as any).hook).toBeUndefined();
});
describe('emitError', () => {
it('should do nothing if hook not defined', async () => {
expect(
await service.emitError(
faker.random.word(),
faker.random.word(),
),
).toBeNull();
});
it('should send error message', async () => {
(service as any).hook = {
send: jest.fn(),
};
expect(
await service.emitError(
faker.random.word(),
faker.random.word(),
),
).not.toBeNull();
expect((service as any).hook.send).toBeCalledWith({embeds: [expect.any(MessageEmbed)]});
});
});
});