Skip to content

Commit 6d67c6d

Browse files
authored
Merge pull request #3676 from owenconti/bug/3633-primitive-titles
Fixes #3633 - PrimitiveModel titles
2 parents aa9e008 + 69799b0 commit 6d67c6d

File tree

5 files changed

+55
-4
lines changed

5 files changed

+55
-4
lines changed

src/core/components/array-model.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export default class ArrayModel extends Component {
4141
{
4242
properties.size ? <span>
4343
{ properties.entrySeq().map( ( [ key, v ] ) => <span key={`${key}-${v}`} style={propStyle}>
44-
<br />{ `${key}:`}{ String(v) }</span>)
44+
<br />{ key }: { String(v) }</span>)
4545
}<br /></span>
4646
: null
4747
}

src/core/components/primitive-model.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ export default class Primitive extends Component {
2323
let format = schema.get("format")
2424
let xml = schema.get("xml")
2525
let enumArray = schema.get("enum")
26+
let title = schema.get("title") || name
2627
let description = schema.get("description")
2728
let properties = schema.filter( ( v, key) => ["enum", "type", "format", "description", "$$ref"].indexOf(key) === -1 )
2829
const Markdown = getComponent("Markdown")
2930
const EnumModel = getComponent("EnumModel")
3031

3132
return <span className="model">
3233
<span className="prop">
33-
{ name && <span className={`${depth === 1 && "model-title"} prop-name`}>{ name }</span> }
34+
{ name && <span className={`${depth === 1 && "model-title"} prop-name`}>{ title }</span> }
3435
<span className="prop-type">{ type }</span>
3536
{ format && <span className="prop-format">(${format})</span>}
3637
{

src/style/_models.scss

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,8 @@ span
237237
.prop-name
238238
{
239239
display: inline-block;
240-
width: 100px;
240+
margin-right: 1em;
241+
width: 8em;
241242
}
242243

243244
.prop-type

test/components/primitive-model.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/* eslint-env mocha */
2+
import React from "react"
3+
import expect from "expect"
4+
import { shallow } from "enzyme"
5+
import { fromJS } from "immutable"
6+
import PrimitiveModel from "components/primitive-model"
7+
8+
describe("<PrimitiveModel/>", function() {
9+
describe("Model name", function() {
10+
const dummyComponent = () => null
11+
const components = {
12+
Markdown: dummyComponent,
13+
EnumModel: dummyComponent
14+
}
15+
const props = {
16+
getComponent: c => components[c],
17+
name: "Name from props",
18+
depth: 1,
19+
schema: fromJS({
20+
type: "string",
21+
title: "Custom model title"
22+
})
23+
}
24+
25+
it("renders the schema's title", function() {
26+
// When
27+
const wrapper = shallow(<PrimitiveModel {...props}/>)
28+
const modelTitleEl = wrapper.find("span.model-title")
29+
expect(modelTitleEl.length).toEqual(1)
30+
31+
// Then
32+
expect( modelTitleEl.text() ).toEqual( "Custom model title" )
33+
})
34+
35+
it("falls back to the passed-in `name` prop for the title", function() {
36+
// When
37+
props.schema = fromJS({
38+
type: "string"
39+
})
40+
const wrapper = shallow(<PrimitiveModel {...props}/>)
41+
const modelTitleEl = wrapper.find("span.model-title")
42+
expect(modelTitleEl.length).toEqual(1)
43+
44+
// Then
45+
expect( modelTitleEl.text() ).toEqual( "Name from props" )
46+
})
47+
48+
})
49+
} )

test/core/utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,7 @@ describe("utils", function() {
583583
})
584584
})
585585

586-
describe.only("getAcceptControllingResponse", () => {
586+
describe("getAcceptControllingResponse", () => {
587587
it("should return the first 2xx response with a media type", () => {
588588
const responses = fromJSOrdered({
589589
"200": {

0 commit comments

Comments
 (0)