Browse Source

Add tests for modified selectors

bubble
Kyle Shockey 6 years ago
parent
commit
3536f2d518
1 changed files with 133 additions and 0 deletions
  1. +133
    -0
      test/core/plugins/auth/selectors.js

+ 133
- 0
test/core/plugins/auth/selectors.js View 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([])
})
})
})

Loading…
Cancel
Save