From 3f00dddab19d866ea8698eb50eddad84ce227448 Mon Sep 17 00:00:00 2001
From: Anjan Kaur <ankaur@anjansmacbook.corp.adobe.com>
Date: Mon, 25 Mar 2019 20:24:48 +0530
Subject: [PATCH] Fixing failing tests and examples

---
 examples/docs/README.md                       |  1 +
 examples/docs/nestedobj.schema.md             | 93 +++++++++++++++++++
 .../generated-schemas/nestedobj.schema.json   | 29 ++++++
 examples/schemas/nestedobj.schema.json        |  4 +-
 spec/examples/README.md                       |  1 +
 spec/examples/nestedobj.schema.md             | 93 +++++++++++++++++++
 spec/lib/integrationTest.spec.js              |  2 +-
 templates/md/nested-property.ejs              |  3 +-
 8 files changed, 222 insertions(+), 4 deletions(-)
 create mode 100644 examples/docs/nestedobj.schema.md
 create mode 100644 examples/generated-schemas/nestedobj.schema.json
 create mode 100644 spec/examples/nestedobj.schema.md

diff --git a/examples/docs/README.md b/examples/docs/README.md
index 0502d30..7a6a424 100644
--- a/examples/docs/README.md
+++ b/examples/docs/README.md
@@ -20,6 +20,7 @@
 * [Extensible](./extensible.schema.md) – `https://example.com/schemas/extensible` (Unknown)
 * [Identifiable](./identifiable.schema.md) – `https://example.com/schemas/identifiable` (Unknown)
 * [Join Types](./join.schema.md) – `https://example.com/schemas/join` (Unknown)
+* [Nested Object](./nestedobj.schema.md) – `https://example.com/schemas/nestedobject` (Unknown)
 * [Pattern Properties](./pattern.schema.md) – `https://example.com/schemas/pattern` (Unknown)
 * [Simple](./simple.schema.md) – `https://example.com/schemas/simple` (Unknown)
 * [Simple Types](./simpletypes.schema.md) – `https://example.com/schemas/simpletypes` (Unknown)
diff --git a/examples/docs/nestedobj.schema.md b/examples/docs/nestedobj.schema.md
new file mode 100644
index 0000000..f3459ef
--- /dev/null
+++ b/examples/docs/nestedobj.schema.md
@@ -0,0 +1,93 @@
+---
+template: reference
+foo: bar
+---
+
+# Nested Object Schema
+
+```
+https://example.com/schemas/nestedobject
+```
+
+
+| [Abstract](../abstract.md) | Extensible | [Status](../status.md) | Identifiable | Custom Properties | Additional Properties | Defined In |
+|----------------------------|------------|------------------------|--------------|-------------------|-----------------------|------------|
+| Can be instantiated | No | Experimental | No | Forbidden | Forbidden | [nestedobj.schema.json](nestedobj.schema.json) |
+
+# Nested Object Properties
+
+| Property | Type | Required | Nullable | Defined by |
+|----------|------|----------|----------|------------|
+| [settings](#settings) | `object` | Optional  | No | Nested Object (this schema) |
+
+## settings
+
+settings
+
+`settings`
+
+* is optional
+* type: `object`
+* defined in this schema
+
+### settings Type
+
+
+`object` with following properties:
+
+
+| Property | Type | Required |
+|----------|------|----------|
+| `collaborators`| object | Optional |
+
+
+
+#### collaborators
+
+collaborators
+
+`collaborators`
+
+* is optional
+* type: `object`
+
+##### collaborators Type
+
+
+`object` with following properties:
+
+
+| Property | Type | Required |
+|----------|------|----------|
+| `id`| string | Optional |
+
+
+
+#### id
+
+
+`id`
+
+* is optional
+* type: `string`
+
+##### id Type
+
+
+`string`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/generated-schemas/nestedobj.schema.json b/examples/generated-schemas/nestedobj.schema.json
new file mode 100644
index 0000000..62f814d
--- /dev/null
+++ b/examples/generated-schemas/nestedobj.schema.json
@@ -0,0 +1,29 @@
+{
+    "$id": "https://example.com/schemas/nestedobject",
+    "$schema": "http://json-schema.org/draft-07/schema",
+    "title": "Nested Object",
+    "type": "object",
+    "properties": {
+        "settings": {
+            "description": "settings",
+            "type": "object",
+            "properties": {
+                "collaborators": {
+                    "description": "collaborators",
+                    "type": "object",
+                    "patternProperties": {
+                        ".*": {
+                            "type": "string"
+                        }
+                    },
+                    "properties": {
+                        "id": {
+                            "type": "string"
+                        }
+                    }
+                }
+            }
+        }
+    },
+    "additionalProperties": false
+}
\ No newline at end of file
diff --git a/examples/schemas/nestedobj.schema.json b/examples/schemas/nestedobj.schema.json
index fffda3b..f068d4e 100644
--- a/examples/schemas/nestedobj.schema.json
+++ b/examples/schemas/nestedobj.schema.json
@@ -1,7 +1,7 @@
 {
-    "$id": "test.json",
+    "$id": "https://example.com/schemas/nestedobject",
     "$schema": "http://json-schema.org/draft-07/schema",
-    "title": "test",
+    "title": "Nested Object",
     "type": "object",
     "properties": {
         "settings": {
diff --git a/spec/examples/README.md b/spec/examples/README.md
index 0502d30..7a6a424 100644
--- a/spec/examples/README.md
+++ b/spec/examples/README.md
@@ -20,6 +20,7 @@
 * [Extensible](./extensible.schema.md) – `https://example.com/schemas/extensible` (Unknown)
 * [Identifiable](./identifiable.schema.md) – `https://example.com/schemas/identifiable` (Unknown)
 * [Join Types](./join.schema.md) – `https://example.com/schemas/join` (Unknown)
+* [Nested Object](./nestedobj.schema.md) – `https://example.com/schemas/nestedobject` (Unknown)
 * [Pattern Properties](./pattern.schema.md) – `https://example.com/schemas/pattern` (Unknown)
 * [Simple](./simple.schema.md) – `https://example.com/schemas/simple` (Unknown)
 * [Simple Types](./simpletypes.schema.md) – `https://example.com/schemas/simpletypes` (Unknown)
diff --git a/spec/examples/nestedobj.schema.md b/spec/examples/nestedobj.schema.md
new file mode 100644
index 0000000..f3459ef
--- /dev/null
+++ b/spec/examples/nestedobj.schema.md
@@ -0,0 +1,93 @@
+---
+template: reference
+foo: bar
+---
+
+# Nested Object Schema
+
+```
+https://example.com/schemas/nestedobject
+```
+
+
+| [Abstract](../abstract.md) | Extensible | [Status](../status.md) | Identifiable | Custom Properties | Additional Properties | Defined In |
+|----------------------------|------------|------------------------|--------------|-------------------|-----------------------|------------|
+| Can be instantiated | No | Experimental | No | Forbidden | Forbidden | [nestedobj.schema.json](nestedobj.schema.json) |
+
+# Nested Object Properties
+
+| Property | Type | Required | Nullable | Defined by |
+|----------|------|----------|----------|------------|
+| [settings](#settings) | `object` | Optional  | No | Nested Object (this schema) |
+
+## settings
+
+settings
+
+`settings`
+
+* is optional
+* type: `object`
+* defined in this schema
+
+### settings Type
+
+
+`object` with following properties:
+
+
+| Property | Type | Required |
+|----------|------|----------|
+| `collaborators`| object | Optional |
+
+
+
+#### collaborators
+
+collaborators
+
+`collaborators`
+
+* is optional
+* type: `object`
+
+##### collaborators Type
+
+
+`object` with following properties:
+
+
+| Property | Type | Required |
+|----------|------|----------|
+| `id`| string | Optional |
+
+
+
+#### id
+
+
+`id`
+
+* is optional
+* type: `string`
+
+##### id Type
+
+
+`string`
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spec/lib/integrationTest.spec.js b/spec/lib/integrationTest.spec.js
index 061d7de..8ed4797 100644
--- a/spec/lib/integrationTest.spec.js
+++ b/spec/lib/integrationTest.spec.js
@@ -55,7 +55,7 @@ describe('Compare results', () => {
     ls.on('close', code => {
       expect(code).toEqual(0);
       const files = readdirSync('./spec/examples').filter(item => !(/(^|\/)\.[^\/\.]/g).test(item));
-      expect(files.length).toEqual(21);
+      expect(files.length).toEqual(22);
 
       files.forEach(file => {
         if (statSync('./spec/examples/' + file).isFile()) {
diff --git a/templates/md/nested-property.ejs b/templates/md/nested-property.ejs
index 2bd24d2..5f1b6cb 100644
--- a/templates/md/nested-property.ejs
+++ b/templates/md/nested-property.ejs
@@ -8,8 +8,9 @@
 #### <%=name %>
 <% if (schema.title) { %>##### <%= schema.title %><% } %>
 
-
+<% if (schema.description) { %>
 <%- (""+schema.description).replace(/\n/g, '\n\n') %>
+<% } %>
 
 
 `<%=name %>`
-- 
GitLab