Skip to content

Commit

Permalink
test(): changing test into its own test case and provider
Browse files Browse the repository at this point in the history
  • Loading branch information
matt1097 committed Aug 10, 2022
1 parent 83aa87b commit 48b4dba
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 4 deletions.
11 changes: 10 additions & 1 deletion tests/e2e/module-e2e.spec.ts
Expand Up @@ -8,6 +8,7 @@ import {
TEST_EVENT_STRING_PAYLOAD,
} from '../src/constants';
import { EventsControllerConsumer } from '../src/events-controller.consumer';
import { EventsProviderAliasedConsumer } from '../src/events-provider-aliased.consumer';
import { EventsProviderPrependConsumer } from '../src/events-provider-prepend.consumer';
import { EventsProviderConsumer } from '../src/events-provider.consumer';
import { EventsProviderRequestScopedConsumer } from '../src/events-provider.request-scoped.consumer';
Expand All @@ -29,7 +30,15 @@ describe('EventEmitterModule - e2e', () => {
await app.init();

expect(eventsConsumerRef.eventPayload).toEqual(TEST_EVENT_PAYLOAD);
expect(eventsConsumerRef.eventReceiveCount).toEqual(1);
});

it(`aliased providers should receive an event only once`, async () => {
const eventsConsumerRef = app.get(EventsProviderAliasedConsumer);
const eventSpy = jest.spyOn(eventsConsumerRef, 'eventPayload', 'set');
await app.init();

expect(eventSpy).toBeCalledTimes(1);
eventSpy.mockRestore();
});

it(`should emit a "test-event" event to controllers`, async () => {
Expand Down
4 changes: 3 additions & 1 deletion tests/src/app.module.ts
@@ -1,6 +1,7 @@
import { Module } from '@nestjs/common';
import { EventEmitterModule } from '../../lib';
import { EventsControllerConsumer } from './events-controller.consumer';
import { EventsProviderAliasedConsumer } from './events-provider-aliased.consumer';
import { EventsProviderPrependConsumer } from './events-provider-prepend.consumer';
import { EventsProviderConsumer } from './events-provider.consumer';
import { EventsProviderRequestScopedConsumer } from './events-provider.request-scoped.consumer';
Expand All @@ -20,9 +21,10 @@ import { TestProvider } from './test-provider';
EventsProducer,
TestProvider,
EventsProviderRequestScopedConsumer,
EventsProviderAliasedConsumer,
{
provide: 'AnAliasedConsumer',
useExisting: EventsProviderConsumer,
useExisting: EventsProviderAliasedConsumer,
},
],
})
Expand Down
20 changes: 20 additions & 0 deletions tests/src/events-provider-aliased.consumer.ts
@@ -0,0 +1,20 @@
import { Injectable } from '@nestjs/common';
import { OnEvent } from '../../lib';

@Injectable()
export class EventsProviderAliasedConsumer {
private _eventPayload = {};

set eventPayload(value) {
this._eventPayload = value;
}

get eventPayload() {
return this._eventPayload;
}

@OnEvent('test.*')
onTestEvent(payload: Record<string, any>) {
this.eventPayload = payload;
}
}
2 changes: 0 additions & 2 deletions tests/src/events-provider.consumer.ts
Expand Up @@ -4,11 +4,9 @@ import { OnEvent } from '../../lib';
@Injectable()
export class EventsProviderConsumer {
public eventPayload = {};
public eventReceiveCount = 0;

@OnEvent('test.*')
onTestEvent(payload: Record<string, any>) {
this.eventPayload = payload;
this.eventReceiveCount++;
}
}

0 comments on commit 48b4dba

Please sign in to comment.