Skip to content

Instantly share code, notes, and snippets.

@nsrau
Last active August 22, 2022 20:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nsrau/68689d37cf2287072a8d0d3065faec78 to your computer and use it in GitHub Desktop.
Save nsrau/68689d37cf2287072a8d0d3065faec78 to your computer and use it in GitHub Desktop.
import { TokenController } from "@api-token/token.controller";
import { TokenService } from "@api-token/services/token.service";
import { Test } from "@nestjs/testing";
import { HttpStatus, INestApplication } from "@nestjs/common";
import { Token, User } from "@entities";
import { getRepositoryToken } from "@nestjs/typeorm";
import { Repository } from "typeorm";
describe("TokenController", () => {
let app: INestApplication;
let tokenController: TokenController;
let tokenRepository: Repository<Token>;
beforeEach(async () => {
const moduleRef = await Test.createTestingModule({
providers: [
{
provide: getRepositoryToken(Token),
useClass: Repository
}
],
controllers: [TokenController]
})
.useMocker((token) => {
if (token === TokenService) {
return { createToken: jest.fn().mockResolvedValue("VALID_TOKEN") };
}
})
.compile();
tokenController = moduleRef.get(TokenController);
tokenRepository = moduleRef.get(getRepositoryToken(Token));
tokenRepository.save = jest.fn().mockResolvedValue("VALID_TOKEN");
app = moduleRef.createNestApplication();
await app.init();
});
afterAll(async () => {
await app.close();
});
describe("token_create", () => {
it("ensure createToken OK", async () => {
const result = {
data: "VALID_TOKEN",
status: HttpStatus.CREATED
};
const payload = {
user: { id: "USER_ID" } as User
};
expect(await tokenController.createToken(payload)).toStrictEqual(result);
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment