Browse Source

Merge pull request #3411 from owenconti/bug/3405-default-scheme-change

Fixes #3405 - Fixed selecting default scheme in schemes.jsx
bubble
shockey 7 years ago
committed by GitHub
parent
commit
0c28a50f53
2 changed files with 44 additions and 2 deletions
  1. +3
    -2
      src/core/components/schemes.jsx
  2. +41
    -0
      test/components/schemes.js

+ 3
- 2
src/core/components/schemes.jsx View File

@@ -19,8 +19,9 @@ export default class Schemes extends React.Component {
}

componentWillReceiveProps(nextProps) {
if ( this.props.operationScheme && !nextProps.schemes.has(this.props.operationScheme) ) {
//fire 'change' event if our selected scheme is no longer an option
if ( !this.props.operationScheme || !nextProps.schemes.has(this.props.operationScheme) ) {
// if we don't have a selected operationScheme or if our selected scheme is no longer an option,
// then fire 'change' event and select the first scheme in the list of options
this.setScheme(nextProps.schemes.first())
}
}


+ 41
- 0
test/components/schemes.js View File

@@ -0,0 +1,41 @@

/* eslint-env mocha */
import React from "react"
import expect, { createSpy } from "expect"
import { shallow } from "enzyme"
import { fromJS } from "immutable"
import Schemes from "components/schemes"

describe("<Schemes/>", function(){
it("calls props.specActions.setScheme() when no operationScheme is selected", function(){

// Given
let props = {
specActions: {
setScheme: createSpy()
},
schemes: fromJS([
"http",
"https"
]),
operationScheme: undefined,
path: "/test",
method: "get"
}
// When
let wrapper = shallow(<Schemes {...props}/>)

// Then operationScheme should default to first scheme in options list
expect(props.specActions.setScheme).toHaveBeenCalledWith("http", "/test" , "get")

// When the operationScheme is no longer in the list of options
props.schemes = fromJS([
"https"
])
wrapper.setProps(props)

// Then operationScheme should default to first scheme in options list
expect(props.specActions.setScheme).toHaveBeenCalledWith("https", "/test", "get")
})
})

Loading…
Cancel
Save