From 08282205aa1488ded66fd630ca8ea226fa658b06 Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Sun, 17 Sep 2017 09:45:33 -0600 Subject: [PATCH 1/6] Fix property key: value alignment in array-model --- src/core/components/array-model.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/components/array-model.jsx b/src/core/components/array-model.jsx index a9c36a2c..e4cde55c 100644 --- a/src/core/components/array-model.jsx +++ b/src/core/components/array-model.jsx @@ -41,7 +41,7 @@ export default class ArrayModel extends Component { { properties.size ? { properties.entrySeq().map( ( [ key, v ] ) => -
{ `${key}:`}{ String(v) }
) +
{ key }: { String(v) }
) }
: null } From b855c254067bf7d00b0f8259f77719712333126e Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Sun, 17 Sep 2017 09:48:03 -0600 Subject: [PATCH 2/6] Slightly increase size available for property names. Change units to `em` and add a margin to separate the property name from the property type. --- src/style/_models.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/style/_models.scss b/src/style/_models.scss index dd043f7f..c3a901d9 100644 --- a/src/style/_models.scss +++ b/src/style/_models.scss @@ -237,7 +237,8 @@ span .prop-name { display: inline-block; - width: 100px; + margin-right: 1em; + width: 8em; } .prop-type From f63f022e0c543d3e15849ea8190d9817203b05e0 Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Sun, 17 Sep 2017 09:48:26 -0600 Subject: [PATCH 3/6] Remove `.only` from utils test --- test/core/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/core/utils.js b/test/core/utils.js index b4be6c1b..42103cc1 100644 --- a/test/core/utils.js +++ b/test/core/utils.js @@ -583,7 +583,7 @@ describe("utils", function() { }) }) - describe.only("getAcceptControllingResponse", () => { + describe("getAcceptControllingResponse", () => { it("should return the first 2xx response with a media type", () => { const responses = fromJSOrdered({ "200": { From 44ece46cd3260b14f3ead7b8d5245a75e3b58d76 Mon Sep 17 00:00:00 2001 From: Owen Conti Date: Sun, 17 Sep 2017 09:49:13 -0600 Subject: [PATCH 4/6] Fixes #3633 Make sure PrimitiveModel uses the schema's title first and then falls back to the passed-in `name` property. Added enzyme test for functionality. --- src/core/components/primitive-model.jsx | 3 +- test/components/primitive-model.js | 49 +++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 test/components/primitive-model.js diff --git a/src/core/components/primitive-model.jsx b/src/core/components/primitive-model.jsx index 81773523..f1fba8a5 100644 --- a/src/core/components/primitive-model.jsx +++ b/src/core/components/primitive-model.jsx @@ -23,6 +23,7 @@ export default class Primitive extends Component { let format = schema.get("format") let xml = schema.get("xml") let enumArray = schema.get("enum") + let title = schema.get("title") || name let description = schema.get("description") let properties = schema.filter( ( v, key) => ["enum", "type", "format", "description", "$$ref"].indexOf(key) === -1 ) const Markdown = getComponent("Markdown") @@ -30,7 +31,7 @@ export default class Primitive extends Component { return - { name && { name } } + { name && { title } } { type } { format && (${format})} { diff --git a/test/components/primitive-model.js b/test/components/primitive-model.js new file mode 100644 index 00000000..9394bb8c --- /dev/null +++ b/test/components/primitive-model.js @@ -0,0 +1,49 @@ +/* eslint-env mocha */ +import React from "react" +import expect from "expect" +import { shallow } from "enzyme" +import { fromJS } from "immutable" +import PrimitiveModel from "components/primitive-model" + +describe("", function() { + describe("Model name", function() { + const dummyComponent = () => null + const components = { + Markdown: dummyComponent, + EnumModel: dummyComponent + } + const props = { + getComponent: c => components[c], + name: "Name from props", + depth: 1, + schema: fromJS({ + type: "string", + title: "Custom model title" + }) + } + + it("renders the schema's title", function() { + // When + const wrapper = shallow() + const modelTitleEl = wrapper.find("span.model-title") + expect(modelTitleEl.length).toEqual(1) + + // Then + expect( modelTitleEl.text() ).toEqual( "Custom model title" ) + }) + + it("falls back to the passed-in `name` prop for the title", function() { + // When + props.schema = fromJS({ + type: "string" + }) + const wrapper = shallow() + const modelTitleEl = wrapper.find("span.model-title") + expect(modelTitleEl.length).toEqual(1) + + // Then + expect( modelTitleEl.text() ).toEqual( "Name from props" ) + }) + + }) +} ) \ No newline at end of file From cb3e1ed78c202c79fbe0a1a7357f74e1a481be1e Mon Sep 17 00:00:00 2001 From: Kyle Date: Mon, 18 Sep 2017 13:36:07 -0700 Subject: [PATCH 5/6] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 794c4e31..5e5bc61d 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,10 @@ As a brand new version, written from the ground up, there are some known issues and unimplemented features. Check out the [Known Issues](#known-issues) section for more details. -This repo publishes to two different NPM packages: +This repository publishes to two different NPM packages: -* [swagger-ui](https://www.npmjs.com/package/swagger-ui) is intended for use as a node module. -* [swagger-ui-dist](https://www.npmjs.com/package/swagger-ui-dist) comes pre-bundled with all dependencies and can be incorporated directly in a webapp. +* [swagger-ui](https://www.npmjs.com/package/swagger-ui) is a traditional npm module intended for use in JavaScript web application projects that are capable of resolving dependencies (via Webpack, Browserify, etc). +* [swagger-ui-dist](https://www.npmjs.com/package/swagger-ui-dist) is a dependency-free module that includes everything you need to serve Swagger-UI in a server-side project, or a web project that can't resolve npm module dependencies. For the older version of swagger-ui, refer to the [*2.x branch*](https://github.com/swagger-api/swagger-ui/tree/2.x). From b43ac6da44ec084b12fe4af0ab144b7092a87de1 Mon Sep 17 00:00:00 2001 From: Kyle Date: Mon, 18 Sep 2017 13:38:11 -0700 Subject: [PATCH 6/6] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e5bc61d..5c167806 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ As a brand new version, written from the ground up, there are some known issues and unimplemented features. Check out the [Known Issues](#known-issues) section for more details. -This repository publishes to two different NPM packages: +This repository publishes to two different NPM modules: * [swagger-ui](https://www.npmjs.com/package/swagger-ui) is a traditional npm module intended for use in JavaScript web application projects that are capable of resolving dependencies (via Webpack, Browserify, etc). * [swagger-ui-dist](https://www.npmjs.com/package/swagger-ui-dist) is a dependency-free module that includes everything you need to serve Swagger-UI in a server-side project, or a web project that can't resolve npm module dependencies.