Refactor auth controller tests to reuse common behaviour

This commit is contained in:
Rory Powell 2021-07-13 10:28:15 +01:00
parent f7d91f7cd6
commit 5f5fe92807
1 changed files with 14 additions and 14 deletions

View File

@ -61,37 +61,37 @@ describe("/api/admin/auth", () => {
auth.oidc.strategyFactory = strategyFactory auth.oidc.strategyFactory = strategyFactory
const passportSpy = jest.spyOn(auth.passport, "authenticate") const passportSpy = jest.spyOn(auth.passport, "authenticate")
let oidcConf
beforeEach(async () => {
oidcConf = await config.saveOIDCConfig()
})
afterEach(() => {
expect(strategyFactory).toBeCalledWith(
oidcConf.config,
"http://127.0.0.1:4003/api/admin/auth/oidc/callback" // calculated url
)
})
describe("/api/admin/auth/oidc", () => { describe("/api/admin/auth/oidc", () => {
it("should load the oidc config and calculate the correct callback url", async () => { it("should load strategy and delegate to passport", async () => {
const oidcConf = await config.saveOIDCConfig()
await request.get(`/api/admin/auth/oidc`) await request.get(`/api/admin/auth/oidc`)
expect(strategyFactory).toBeCalledWith(
oidcConf.config,
"http://127.0.0.1:4003/api/admin/auth/oidc/callback" // calculated url
)
expect(passportSpy).toBeCalledWith(mockStrategyReturn, { expect(passportSpy).toBeCalledWith(mockStrategyReturn, {
scope: ["profile", "email"], scope: ["profile", "email"],
}) })
expect(passportSpy.mock.calls.length).toBe(1); expect(passportSpy.mock.calls.length).toBe(1);
}) })
}) })
describe("/api/admin/auth/oidc/callback", () => { describe("/api/admin/auth/oidc/callback", () => {
it("should do something", async () => { it("should load strategy and delegate to passport", async () => {
const oidcConf = await config.saveOIDCConfig()
const passportSpy = jest.spyOn(auth.passport, "authenticate")
await request.get(`/api/admin/auth/oidc/callback`) await request.get(`/api/admin/auth/oidc/callback`)
expect(passportSpy).toBeCalledWith(mockStrategyReturn, { expect(passportSpy).toBeCalledWith(mockStrategyReturn, {
successRedirect: "/", failureRedirect: "/error" successRedirect: "/", failureRedirect: "/error"
}, expect.anything()) }, expect.anything())
expect(passportSpy.mock.calls.length).toBe(1); expect(passportSpy.mock.calls.length).toBe(1);
}) })
}) })