Part of this commit is also: - complete plugins consolidation - complete presets consolidation - build system consolidation Refs #9188
120 lines
2.7 KiB
JavaScript
120 lines
2.7 KiB
JavaScript
/**
|
|
* @prettier
|
|
*/
|
|
import { fromJS } from "immutable"
|
|
import { authorize, logout } from "core/plugins/auth/wrap-actions"
|
|
|
|
describe("Cookie based apiKey persistence in document.cookie", () => {
|
|
beforeEach(() => {
|
|
let cookieJar = ""
|
|
jest.spyOn(document, "cookie", "set").mockImplementation((cookie) => {
|
|
cookieJar += cookie
|
|
})
|
|
jest.spyOn(document, "cookie", "get").mockImplementation(() => cookieJar)
|
|
})
|
|
|
|
afterEach(() => {
|
|
jest.restoreAllMocks()
|
|
})
|
|
|
|
describe("given persistAuthorization=true", () => {
|
|
it("should persist cookie in document.cookie", () => {
|
|
const system = {
|
|
getConfigs: () => ({
|
|
persistAuthorization: true,
|
|
}),
|
|
}
|
|
const payload = {
|
|
api_key: {
|
|
schema: fromJS({
|
|
type: "apiKey",
|
|
name: "apiKeyCookie",
|
|
in: "cookie",
|
|
}),
|
|
value: "test",
|
|
},
|
|
}
|
|
|
|
authorize(jest.fn(), system)(payload)
|
|
|
|
expect(document.cookie).toEqual(
|
|
"apiKeyCookie=test; SameSite=None; Secure"
|
|
)
|
|
})
|
|
|
|
it("should delete cookie from document.cookie", () => {
|
|
const payload = fromJS({
|
|
api_key: {
|
|
schema: {
|
|
type: "apiKey",
|
|
name: "apiKeyCookie",
|
|
in: "cookie",
|
|
},
|
|
value: "test",
|
|
},
|
|
})
|
|
const system = {
|
|
getConfigs: () => ({
|
|
persistAuthorization: true,
|
|
}),
|
|
authSelectors: {
|
|
authorized: () => payload,
|
|
},
|
|
}
|
|
|
|
logout(jest.fn(), system)(["api_key"])
|
|
|
|
expect(document.cookie).toEqual("apiKeyCookie=; Max-Age=-99999999")
|
|
})
|
|
})
|
|
|
|
describe("given persistAuthorization=false", () => {
|
|
it("shouldn't persist cookie in document.cookie", () => {
|
|
const system = {
|
|
getConfigs: () => ({
|
|
persistAuthorization: false,
|
|
}),
|
|
}
|
|
const payload = {
|
|
api_key: {
|
|
schema: fromJS({
|
|
type: "apiKey",
|
|
name: "apiKeyCookie",
|
|
in: "cookie",
|
|
}),
|
|
value: "test",
|
|
},
|
|
}
|
|
|
|
authorize(jest.fn(), system)(payload)
|
|
|
|
expect(document.cookie).toEqual("")
|
|
})
|
|
|
|
it("should delete cookie from document.cookie", () => {
|
|
const payload = fromJS({
|
|
api_key: {
|
|
schema: {
|
|
type: "apiKey",
|
|
name: "apiKeyCookie",
|
|
in: "cookie",
|
|
},
|
|
value: "test",
|
|
},
|
|
})
|
|
const system = {
|
|
getConfigs: () => ({
|
|
persistAuthorization: false,
|
|
}),
|
|
authSelectors: {
|
|
authorized: () => payload,
|
|
},
|
|
}
|
|
|
|
logout(jest.fn(), system)(["api_key"])
|
|
|
|
expect(document.cookie).toEqual("")
|
|
})
|
|
})
|
|
})
|