Fix tests
This commit is contained in:
parent
18a431df12
commit
cc042e2093
|
@ -1,5 +1,6 @@
|
|||
import {
|
||||
OAuth2Config,
|
||||
OAuth2CredentialsMethod,
|
||||
PASSWORD_REPLACEMENT,
|
||||
UpsertOAuth2ConfigRequest,
|
||||
VirtualDocumentType,
|
||||
|
@ -17,6 +18,7 @@ describe("/oauth2", () => {
|
|||
url: generator.url(),
|
||||
clientId: generator.guid(),
|
||||
clientSecret: generator.hash(),
|
||||
method: generator.pickone(Object.values(OAuth2CredentialsMethod)),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,6 +56,7 @@ describe("/oauth2", () => {
|
|||
url: c.url,
|
||||
clientId: c.clientId,
|
||||
clientSecret: PASSWORD_REPLACEMENT,
|
||||
method: c.method,
|
||||
}))
|
||||
),
|
||||
})
|
||||
|
@ -74,6 +77,7 @@ describe("/oauth2", () => {
|
|||
url: oauth2Config.url,
|
||||
clientId: oauth2Config.clientId,
|
||||
clientSecret: PASSWORD_REPLACEMENT,
|
||||
method: oauth2Config.method,
|
||||
},
|
||||
],
|
||||
})
|
||||
|
@ -93,6 +97,7 @@ describe("/oauth2", () => {
|
|||
url: oauth2Config.url,
|
||||
clientId: oauth2Config.clientId,
|
||||
clientSecret: PASSWORD_REPLACEMENT,
|
||||
method: oauth2Config.method,
|
||||
},
|
||||
{
|
||||
id: expectOAuth2ConfigId,
|
||||
|
@ -100,6 +105,7 @@ describe("/oauth2", () => {
|
|||
url: oauth2Config2.url,
|
||||
clientId: oauth2Config2.clientId,
|
||||
clientSecret: PASSWORD_REPLACEMENT,
|
||||
method: oauth2Config2.method,
|
||||
},
|
||||
])
|
||||
expect(response.configs[0].id).not.toEqual(response.configs[1].id)
|
||||
|
@ -125,6 +131,7 @@ describe("/oauth2", () => {
|
|||
url: oauth2Config.url,
|
||||
clientId: oauth2Config.clientId,
|
||||
clientSecret: PASSWORD_REPLACEMENT,
|
||||
method: oauth2Config.method,
|
||||
},
|
||||
])
|
||||
})
|
||||
|
@ -161,6 +168,7 @@ describe("/oauth2", () => {
|
|||
url: configData.url,
|
||||
clientId: configData.clientId,
|
||||
clientSecret: PASSWORD_REPLACEMENT,
|
||||
method: configData.method,
|
||||
},
|
||||
])
|
||||
)
|
||||
|
|
|
@ -6,6 +6,7 @@ import { generateToken } from "../utils"
|
|||
import path from "path"
|
||||
import { KEYCLOAK_IMAGE } from "../../../../integrations/tests/utils/images"
|
||||
import { startContainer } from "../../../../integrations/tests/utils"
|
||||
import { OAuth2CredentialsMethod } from "@budibase/types"
|
||||
|
||||
const config = new TestConfiguration()
|
||||
|
||||
|
@ -41,70 +42,77 @@ describe("oauth2 utils", () => {
|
|||
keycloakUrl = `http://127.0.0.1:${port}`
|
||||
})
|
||||
|
||||
describe("generateToken", () => {
|
||||
it("successfully generates tokens", async () => {
|
||||
const response = await config.doInContext(config.appId, async () => {
|
||||
const oauthConfig = await sdk.oauth2.create({
|
||||
name: generator.guid(),
|
||||
url: `${keycloakUrl}/realms/myrealm/protocol/openid-connect/token`,
|
||||
clientId: "my-client",
|
||||
clientSecret: "my-secret",
|
||||
describe.each(Object.values(OAuth2CredentialsMethod))(
|
||||
"generateToken (in %s)",
|
||||
method => {
|
||||
it("successfully generates tokens", async () => {
|
||||
const response = await config.doInContext(config.appId, async () => {
|
||||
const oauthConfig = await sdk.oauth2.create({
|
||||
name: generator.guid(),
|
||||
url: `${keycloakUrl}/realms/myrealm/protocol/openid-connect/token`,
|
||||
clientId: "my-client",
|
||||
clientSecret: "my-secret",
|
||||
method,
|
||||
})
|
||||
|
||||
const response = await generateToken(oauthConfig.id)
|
||||
return response
|
||||
})
|
||||
|
||||
const response = await generateToken(oauthConfig.id)
|
||||
return response
|
||||
expect(response).toEqual(expect.stringMatching(/^Bearer .+/))
|
||||
})
|
||||
|
||||
expect(response).toEqual(expect.stringMatching(/^Bearer .+/))
|
||||
})
|
||||
it("handles wrong urls", async () => {
|
||||
await expect(
|
||||
config.doInContext(config.appId, async () => {
|
||||
const oauthConfig = await sdk.oauth2.create({
|
||||
name: generator.guid(),
|
||||
url: `${keycloakUrl}/realms/wrong/protocol/openid-connect/token`,
|
||||
clientId: "my-client",
|
||||
clientSecret: "my-secret",
|
||||
method,
|
||||
})
|
||||
|
||||
it("handles wrong urls", async () => {
|
||||
await expect(
|
||||
config.doInContext(config.appId, async () => {
|
||||
const oauthConfig = await sdk.oauth2.create({
|
||||
name: generator.guid(),
|
||||
url: `${keycloakUrl}/realms/wrong/protocol/openid-connect/token`,
|
||||
clientId: "my-client",
|
||||
clientSecret: "my-secret",
|
||||
await generateToken(oauthConfig.id)
|
||||
})
|
||||
).rejects.toThrow("Error fetching oauth2 token: Not Found")
|
||||
})
|
||||
|
||||
await generateToken(oauthConfig.id)
|
||||
})
|
||||
).rejects.toThrow("Error fetching oauth2 token: Not Found")
|
||||
})
|
||||
it("handles wrong client ids", async () => {
|
||||
await expect(
|
||||
config.doInContext(config.appId, async () => {
|
||||
const oauthConfig = await sdk.oauth2.create({
|
||||
name: generator.guid(),
|
||||
url: `${keycloakUrl}/realms/myrealm/protocol/openid-connect/token`,
|
||||
clientId: "wrong-client-id",
|
||||
clientSecret: "my-secret",
|
||||
method,
|
||||
})
|
||||
|
||||
it("handles wrong client ids", async () => {
|
||||
await expect(
|
||||
config.doInContext(config.appId, async () => {
|
||||
const oauthConfig = await sdk.oauth2.create({
|
||||
name: generator.guid(),
|
||||
url: `${keycloakUrl}/realms/myrealm/protocol/openid-connect/token`,
|
||||
clientId: "wrong-client-id",
|
||||
clientSecret: "my-secret",
|
||||
await generateToken(oauthConfig.id)
|
||||
})
|
||||
).rejects.toThrow(
|
||||
"Error fetching oauth2 token: Invalid client or Invalid client credentials"
|
||||
)
|
||||
})
|
||||
|
||||
await generateToken(oauthConfig.id)
|
||||
})
|
||||
).rejects.toThrow(
|
||||
"Error fetching oauth2 token: Invalid client or Invalid client credentials"
|
||||
)
|
||||
})
|
||||
it("handles wrong secrets", async () => {
|
||||
await expect(
|
||||
config.doInContext(config.appId, async () => {
|
||||
const oauthConfig = await sdk.oauth2.create({
|
||||
name: generator.guid(),
|
||||
url: `${keycloakUrl}/realms/myrealm/protocol/openid-connect/token`,
|
||||
clientId: "my-client",
|
||||
clientSecret: "wrong-secret",
|
||||
method,
|
||||
})
|
||||
|
||||
it("handles wrong secrets", async () => {
|
||||
await expect(
|
||||
config.doInContext(config.appId, async () => {
|
||||
const oauthConfig = await sdk.oauth2.create({
|
||||
name: generator.guid(),
|
||||
url: `${keycloakUrl}/realms/myrealm/protocol/openid-connect/token`,
|
||||
clientId: "my-client",
|
||||
clientSecret: "wrong-secret",
|
||||
await generateToken(oauthConfig.id)
|
||||
})
|
||||
|
||||
await generateToken(oauthConfig.id)
|
||||
})
|
||||
).rejects.toThrow(
|
||||
"Error fetching oauth2 token: Invalid client or Invalid client credentials"
|
||||
)
|
||||
})
|
||||
})
|
||||
).rejects.toThrow(
|
||||
"Error fetching oauth2 token: Invalid client or Invalid client credentials"
|
||||
)
|
||||
})
|
||||
}
|
||||
)
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue