UNPKG

nestjs-aop

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/toss/nestjs-aop"> <img src="https://toss.tech/wp-content/uploads/2022/11/tech-article-nest-js-02.png" alt="Logo" height="200"> </a>

45 lines (35 loc) 1.66 kB
import { INestApplication } from '@nestjs/common'; import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify'; import { Test, TestingModule } from '@nestjs/testing'; import supertest from 'supertest'; import { AopModule } from '../aop.module'; import { CacheModule } from './fixture/cache'; import { FooModule } from './fixture/foo'; import { FooController } from './fixture/foo/foo.controller'; describe('Controller', () => { let app: INestApplication; let moduleRef: TestingModule; beforeAll(async () => { moduleRef = await Test.createTestingModule({ imports: [AopModule, FooModule, CacheModule], }).compile(); app = moduleRef.createNestApplication<NestFastifyApplication>(new FastifyAdapter()); await app.init(); await app.getHttpAdapter().getInstance().ready(); }); beforeEach(() => { jest.clearAllMocks(); }); it('With Cache applied, the actual method is called only once', async () => { const fooController = moduleRef.get(FooController); const requester = supertest(app.getHttpServer()); await requester.get('/foo').query({ id: 1 }).expect(200).expect('foo1'); await requester.get('/foo').query({ id: 1 }).expect(200).expect('foo1'); await requester.get('/foo').query({ id: 2 }).expect(200).expect('foo2'); await requester.get('/foo').query({ id: 2 }).expect(200).expect('foo2'); await requester.get('/foo').query({ id: 2 }).expect(200).expect('foo2'); await requester.get('/foo').query({ id: 3 }).expect(200).expect('foo3'); expect(fooController.getFooCount).toMatchInlineSnapshot(`3`); }); afterAll(async () => await app.close()); });