fix: path-item $ref operation metadata storage (#4489)
This commit is contained in:
@@ -118,7 +118,11 @@ export default {
|
|||||||
let operationPath = ["paths", ...path]
|
let operationPath = ["paths", ...path]
|
||||||
let metaPath = ["meta", "paths", ...path]
|
let metaPath = ["meta", "paths", ...path]
|
||||||
|
|
||||||
if(!state.getIn(["json", ...operationPath]) && !state.getIn(["resolved", ...operationPath])) {
|
if(
|
||||||
|
!state.getIn(["json", ...operationPath])
|
||||||
|
&& !state.getIn(["resolved", ...operationPath])
|
||||||
|
&& !state.getIn(["resolvedSubtrees", ...operationPath])
|
||||||
|
) {
|
||||||
// do nothing if the operation does not exist
|
// do nothing if the operation does not exist
|
||||||
return state
|
return state
|
||||||
}
|
}
|
||||||
|
|||||||
31
test/e2e/scenarios/bugs/4485.js
Normal file
31
test/e2e/scenarios/bugs/4485.js
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
describe("bug #4485: operation metadata storage when referenced via path item $ref", function () {
|
||||||
|
let mainPage
|
||||||
|
beforeEach(function (client, done) {
|
||||||
|
mainPage = client
|
||||||
|
.url("localhost:3230")
|
||||||
|
.page.main()
|
||||||
|
|
||||||
|
client.waitForElementVisible(".download-url-input", 5000)
|
||||||
|
.pause(2000)
|
||||||
|
.clearValue(".download-url-input")
|
||||||
|
.setValue(".download-url-input", "http://localhost:3230/test-specs/bugs/4485/main.yaml")
|
||||||
|
.click("button.download-url-button")
|
||||||
|
.pause(1000)
|
||||||
|
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
afterEach(function (client, done) {
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
it("sets a consumes value for a body parameter correctly", function (client) {
|
||||||
|
client.waitForElementVisible(".opblock-tag-section", 10000)
|
||||||
|
.click(".opblock")
|
||||||
|
.waitForElementVisible(".opblock-body", 5000)
|
||||||
|
.click("button.btn.try-out__btn")
|
||||||
|
.click("select.content-type [value=\"application/xml\"]")
|
||||||
|
.pause(500)
|
||||||
|
.assert.value("select.content-type", "application/xml")
|
||||||
|
|
||||||
|
client.end()
|
||||||
|
})
|
||||||
|
})
|
||||||
15
test/e2e/specs/bugs/4485/book.yaml
Normal file
15
test/e2e/specs/bugs/4485/book.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
post:
|
||||||
|
description: Book
|
||||||
|
operationId: buy
|
||||||
|
summary: Buy a book
|
||||||
|
tags:
|
||||||
|
- Book
|
||||||
|
consumes:
|
||||||
|
- application/json
|
||||||
|
- application/xml
|
||||||
|
parameters:
|
||||||
|
- name: requestBody
|
||||||
|
in: body
|
||||||
|
description: Buy a Book
|
||||||
|
required: true
|
||||||
5
test/e2e/specs/bugs/4485/main.yaml
Normal file
5
test/e2e/specs/bugs/4485/main.yaml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
swagger: '2.0'
|
||||||
|
paths:
|
||||||
|
"/v1/book":
|
||||||
|
"$ref": "./book.yaml"
|
||||||
Reference in New Issue
Block a user