Add tests for modified selectors
This commit is contained in:
133
test/core/plugins/auth/selectors.js
Normal file
133
test/core/plugins/auth/selectors.js
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
/* eslint-env mocha */
|
||||||
|
import expect from "expect"
|
||||||
|
import { fromJS } from "immutable"
|
||||||
|
import { definitionsToAuthorize, definitionsForRequirements } from "corePlugins/auth/selectors"
|
||||||
|
|
||||||
|
describe.only("auth plugin - selectors", () => {
|
||||||
|
describe("definitionsToAuthorize", () => {
|
||||||
|
it("should return securityDefinitions as a List", () => {
|
||||||
|
const securityDefinitions = {
|
||||||
|
"petstore_auth": {
|
||||||
|
"type": "oauth2",
|
||||||
|
"authorizationUrl": "http://petstore.swagger.io/oauth/dialog",
|
||||||
|
"flow": "implicit",
|
||||||
|
"scopes": {
|
||||||
|
"write:pets": "modify pets in your account",
|
||||||
|
"read:pets": "read your pets"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"api_key": {
|
||||||
|
"type": "apiKey",
|
||||||
|
"name": "api_key",
|
||||||
|
"in": "header"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const system = {
|
||||||
|
specSelectors: {
|
||||||
|
securityDefinitions() {
|
||||||
|
return fromJS(securityDefinitions)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = definitionsToAuthorize({})(system)
|
||||||
|
|
||||||
|
expect(res.toJS()).toEqual([
|
||||||
|
{
|
||||||
|
"petstore_auth": securityDefinitions["petstore_auth"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"api_key": securityDefinitions["api_key"]
|
||||||
|
},
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should fail gracefully with bad data", () => {
|
||||||
|
const securityDefinitions = null
|
||||||
|
|
||||||
|
const system = {
|
||||||
|
specSelectors: {
|
||||||
|
securityDefinitions() {
|
||||||
|
return fromJS(securityDefinitions)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const res = definitionsToAuthorize({})(system)
|
||||||
|
|
||||||
|
expect(res.toJS()).toEqual([])
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe("definitionsForRequirements", () => {
|
||||||
|
it("should return applicable securityDefinitions as a List", () => {
|
||||||
|
const securityDefinitions = {
|
||||||
|
"petstore_auth": {
|
||||||
|
"type": "oauth2",
|
||||||
|
"authorizationUrl": "http://petstore.swagger.io/oauth/dialog",
|
||||||
|
"flow": "implicit",
|
||||||
|
"scopes": {
|
||||||
|
"write:pets": "modify pets in your account",
|
||||||
|
"read:pets": "read your pets"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"api_key": {
|
||||||
|
"type": "apiKey",
|
||||||
|
"name": "api_key",
|
||||||
|
"in": "header"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const system = {
|
||||||
|
authSelectors: {
|
||||||
|
definitionsToAuthorize() {
|
||||||
|
return fromJS([
|
||||||
|
{
|
||||||
|
"petstore_auth": securityDefinitions["petstore_auth"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"api_key": securityDefinitions["api_key"]
|
||||||
|
},
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const securities = fromJS([
|
||||||
|
{
|
||||||
|
"petstore_auth": [
|
||||||
|
"write:pets",
|
||||||
|
"read:pets"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
|
const res = definitionsForRequirements({}, securities)(system)
|
||||||
|
|
||||||
|
expect(res.toJS()).toEqual([
|
||||||
|
{
|
||||||
|
"petstore_auth": securityDefinitions["petstore_auth"]
|
||||||
|
}
|
||||||
|
])
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should fail gracefully with bad data", () => {
|
||||||
|
const securityDefinitions = null
|
||||||
|
|
||||||
|
const system = {
|
||||||
|
authSelectors: {
|
||||||
|
definitionsToAuthorize() {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const securities = null
|
||||||
|
|
||||||
|
const res = definitionsForRequirements({}, securities)(system)
|
||||||
|
|
||||||
|
expect(res.toJS()).toEqual([])
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user