|
1 | 1 | import assert from "node:assert/strict"; |
2 | 2 | import { suite, test } from "node:test"; |
3 | | -import { Job, Person } from "../build/entities/index.js"; |
| 3 | +import { Job, Person, Task } from "../build/entities/index.js"; |
4 | 4 |
|
5 | 5 | suite("Job Entity", () => { |
6 | 6 | test("Job entity has correct model configuration", () => { |
@@ -53,6 +53,86 @@ suite("Job Entity", () => { |
53 | 53 | }); |
54 | 54 | }); |
55 | 55 |
|
| 56 | +suite("Task Entity - Default Values", () => { |
| 57 | + test("Task entity has correct model configuration", () => { |
| 58 | + assert.deepEqual(Task.model, { |
| 59 | + entity: "task", |
| 60 | + service: "org", |
| 61 | + version: "1", |
| 62 | + }); |
| 63 | + }); |
| 64 | + |
| 65 | + suite("String default values", () => { |
| 66 | + test("optional description has string default", () => { |
| 67 | + assert.deepEqual(Task.attributes.description, { |
| 68 | + type: "string", |
| 69 | + required: false, |
| 70 | + default: "No description provided", |
| 71 | + }); |
| 72 | + }); |
| 73 | + }); |
| 74 | + |
| 75 | + suite("Enum default values", () => { |
| 76 | + test("priority has enum default value", () => { |
| 77 | + assert.deepEqual(Task.attributes.priority, { |
| 78 | + type: ["LOW", "MEDIUM", "HIGH"], |
| 79 | + required: true, |
| 80 | + default: "MEDIUM", |
| 81 | + }); |
| 82 | + }); |
| 83 | + }); |
| 84 | + |
| 85 | + suite("Number default values", () => { |
| 86 | + test("count has number default value", () => { |
| 87 | + assert.deepEqual(Task.attributes.count, { |
| 88 | + type: "number", |
| 89 | + required: true, |
| 90 | + default: 0, |
| 91 | + }); |
| 92 | + }); |
| 93 | + }); |
| 94 | + |
| 95 | + suite("Boolean default values", () => { |
| 96 | + test("active has boolean default value", () => { |
| 97 | + assert.deepEqual(Task.attributes.active, { |
| 98 | + type: "boolean", |
| 99 | + required: true, |
| 100 | + default: true, |
| 101 | + }); |
| 102 | + }); |
| 103 | + }); |
| 104 | + |
| 105 | + suite("Nested model default values", () => { |
| 106 | + test("settings is a list type", () => { |
| 107 | + assert.equal(Task.attributes.settings.type, "list"); |
| 108 | + assert.equal(Task.attributes.settings.items.type, "map"); |
| 109 | + }); |
| 110 | + |
| 111 | + test("settings item value property has string default", () => { |
| 112 | + assert.deepEqual(Task.attributes.settings.items.properties.value, { |
| 113 | + type: "string", |
| 114 | + required: true, |
| 115 | + default: "default", |
| 116 | + }); |
| 117 | + }); |
| 118 | + |
| 119 | + test("settings item enabled property has boolean default", () => { |
| 120 | + assert.deepEqual(Task.attributes.settings.items.properties.enabled, { |
| 121 | + type: "boolean", |
| 122 | + required: true, |
| 123 | + default: true, |
| 124 | + }); |
| 125 | + }); |
| 126 | + |
| 127 | + test("settings item key property has no default", () => { |
| 128 | + assert.deepEqual(Task.attributes.settings.items.properties.key, { |
| 129 | + type: "string", |
| 130 | + required: true, |
| 131 | + }); |
| 132 | + }); |
| 133 | + }); |
| 134 | +}); |
| 135 | + |
56 | 136 | suite("Person Entity", () => { |
57 | 137 | test("Person entity has correct model configuration", () => { |
58 | 138 | assert.deepEqual(Person.model, { |
@@ -195,13 +275,10 @@ suite("Person Entity", () => { |
195 | 275 | }); |
196 | 276 |
|
197 | 277 | test("contact item has description property", () => { |
198 | | - assert.deepEqual( |
199 | | - Person.attributes.contact.items.properties.description, |
200 | | - { |
201 | | - type: "string", |
202 | | - required: true, |
203 | | - }, |
204 | | - ); |
| 278 | + assert.deepEqual(Person.attributes.contact.items.properties.description, { |
| 279 | + type: "string", |
| 280 | + required: true, |
| 281 | + }); |
205 | 282 | }); |
206 | 283 | }); |
207 | 284 |
|
@@ -239,13 +316,10 @@ suite("Person Entity", () => { |
239 | 316 | }); |
240 | 317 |
|
241 | 318 | test("additionalInfo item has name property as string", () => { |
242 | | - assert.deepEqual( |
243 | | - Person.attributes.additionalInfo.items.properties.name, |
244 | | - { |
245 | | - type: "string", |
246 | | - required: true, |
247 | | - }, |
248 | | - ); |
| 319 | + assert.deepEqual(Person.attributes.additionalInfo.items.properties.name, { |
| 320 | + type: "string", |
| 321 | + required: true, |
| 322 | + }); |
249 | 323 | }); |
250 | 324 |
|
251 | 325 | test("additionalInfo item value property uses CustomAttributeType for union", () => { |
|
0 commit comments