fix: resolved model data invalidation (via #4858)
This commit is contained in:
@@ -59,7 +59,7 @@ export default class Models extends Component {
|
|||||||
const rawSchema = specSelectors.specJson().getIn(fullPath, Im.Map())
|
const rawSchema = specSelectors.specJson().getIn(fullPath, Im.Map())
|
||||||
const displayName = schema.get("title") || rawSchema.get("title") || name
|
const displayName = schema.get("title") || rawSchema.get("title") || name
|
||||||
|
|
||||||
if(layoutSelectors.isShown(["models", name], false) && schema === undefined) {
|
if(layoutSelectors.isShown(["models", name], false) && (schema.size === 0 && rawSchema.size > 0)) {
|
||||||
// Firing an action in a container render is not great,
|
// Firing an action in a container render is not great,
|
||||||
// but it works for now.
|
// but it works for now.
|
||||||
this.props.specActions.requestResolvedSubtree([...this.getSchemaBasePath(), name])
|
this.props.specActions.requestResolvedSubtree([...this.getSchemaBasePath(), name])
|
||||||
|
|||||||
13
test/e2e-cypress/static/documents/bugs/editor-1868.yaml
Normal file
13
test/e2e-cypress/static/documents/bugs/editor-1868.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
swagger: "2.0"
|
||||||
|
|
||||||
|
paths:
|
||||||
|
/:
|
||||||
|
get:
|
||||||
|
description: wow
|
||||||
|
|
||||||
|
definitions:
|
||||||
|
MyModel:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
a:
|
||||||
|
type: string
|
||||||
26
test/e2e-cypress/tests/bugs/editor-1868.js
Normal file
26
test/e2e-cypress/tests/bugs/editor-1868.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import repeat from "lodash/repeat"
|
||||||
|
|
||||||
|
describe("Editor #1868: model changes break rendering", () => {
|
||||||
|
it("should render model content changes correctly", () => {
|
||||||
|
cy
|
||||||
|
.visit("/?url=/documents/bugs/editor-1868.yaml")
|
||||||
|
|
||||||
|
.get(".model-toggle.collapsed")
|
||||||
|
.click()
|
||||||
|
|
||||||
|
.get("#model-MyModel")
|
||||||
|
.contains("a")
|
||||||
|
|
||||||
|
.window()
|
||||||
|
.then(win => {
|
||||||
|
// Simulate Swagger Editor updating a model
|
||||||
|
const content = win.ui.specSelectors.specStr()
|
||||||
|
win.ui.specActions.updateSpec(content + `\n b:\n type: string`)
|
||||||
|
})
|
||||||
|
|
||||||
|
.get("#model-MyModel")
|
||||||
|
.contains("a")
|
||||||
|
.get("#model-MyModel")
|
||||||
|
.contains("b")
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user