diff --git a/src/core/components/info.jsx b/src/core/components/info.jsx
index 2926bd77a1d..e9bb392af6e 100644
--- a/src/core/components/info.jsx
+++ b/src/core/components/info.jsx
@@ -66,7 +66,7 @@ class License extends React.Component {
let { license, getComponent, selectedServer, url: specUrl } = this.props
const Link = getComponent("Link")
- let name = license.get("name") || "License"
+ let name = license.get("name") || "License"
let url = buildUrl(license.get("url"), specUrl, {selectedServer})
return (
@@ -113,7 +113,12 @@ export default class Info extends React.Component {
let version = info.get("version")
let description = info.get("description")
let title = info.get("title")
- let termsOfServiceUrl = buildUrl(info.get("termsOfService"), specUrl, {selectedServer})
+ let termsOfServiceUrl
+ try {
+ termsOfServiceUrl = buildUrl(info.get("termsOfService"), specUrl, {selectedServer})
+ } catch (error) {
+ termsOfServiceUrl = info.get("termsOfService")
+ }
let contact = info.get("contact")
let license = info.get("license")
let rawExternalDocsUrl = externalDocs && externalDocs.get("url")
diff --git a/test/unit/components/info-wrapper.jsx b/test/unit/components/info-wrapper.jsx
index 256ee1d3041..8d9b0b8688a 100644
--- a/test/unit/components/info-wrapper.jsx
+++ b/test/unit/components/info-wrapper.jsx
@@ -15,6 +15,7 @@ describe("", function () {
basePath () {},
host () {},
externalDocs () {},
+ termsOfService () {},
},
oas3Selectors: {
selectedServer () {},
@@ -37,6 +38,38 @@ describe("", function () {
expect(renderedInfo.length).toEqual(1)
})
+ it("renders Info inside InfoContainer with inline termsOfService", function () {
+
+ // Given
+ let props = {...mockedProps}
+ props.specSelectors = {...mockedProps.specSelectors}
+ props.specSelectors.info = function () {return fromJS(["info1"])}
+ props.specSelectors.info.termsOfService = "foo bar baz"
+
+ // When
+ let wrapper = mount()
+
+ // Then
+ const renderedInfo = wrapper.find("span.mocked-info")
+ expect(renderedInfo.length).toEqual(1)
+ })
+
+ it("renders Info inside InfoContainer with termsOfService URL", function () {
+
+ // Given
+ let props = {...mockedProps}
+ props.specSelectors = {...mockedProps.specSelectors}
+ props.specSelectors.info = function () {return fromJS(["info1"])}
+ props.specSelectors.info.termsOfService = "https://foo.bar/baz"
+
+ // When
+ let wrapper = mount()
+
+ // Then
+ const renderedInfo = wrapper.find("span.mocked-info")
+ expect(renderedInfo.length).toEqual(1)
+ })
+
it("does not render Info inside InfoContainer if no info is provided", function () {
// Given