Last active
August 22, 2022 20:40
-
-
Save nsrau/68689d37cf2287072a8d0d3065faec78 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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