fix: resolved model data invalidation (via #4858)

This commit is contained in:
kyle
2018-09-07 14:13:43 -07:00
committed by GitHub
parent f1224e5196
commit eb6c43405f
3 changed files with 40 additions and 1 deletions

View File

@@ -59,7 +59,7 @@ export default class Models extends Component {
const rawSchema = specSelectors.specJson().getIn(fullPath, Im.Map())
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,
// but it works for now.
this.props.specActions.requestResolvedSubtree([...this.getSchemaBasePath(), name])

View File

@@ -0,0 +1,13 @@
swagger: "2.0"
paths:
/:
get:
description: wow
definitions:
MyModel:
type: object
properties:
a:
type: string

View 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")
})
})