@api-client/core 0.16.1 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/test.ts +0 -4
- package/build/src/index.d.ts +72 -72
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +3 -3
- package/build/src/index.js.map +1 -1
- package/build/src/modeling/GraphUtils.d.ts.map +1 -1
- package/build/src/modeling/GraphUtils.js +16 -4
- package/build/src/modeling/GraphUtils.js.map +1 -1
- package/build/src/modeling/Semantics.d.ts +52 -0
- package/build/src/modeling/Semantics.d.ts.map +1 -1
- package/build/src/modeling/Semantics.js +206 -97
- package/build/src/modeling/Semantics.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/data/models/example-generator-api.json +12 -12
- package/package.json +1 -1
- package/src/modeling/GraphUtils.ts +15 -4
- package/src/modeling/Semantics.ts +226 -101
- package/tests/unit/modeling/api_model.spec.ts +25 -6
- package/tests/unit/modeling/data_domain.spec.ts +47 -47
- package/tests/unit/modeling/data_domain_associations.spec.ts +41 -30
- package/tests/unit/modeling/data_domain_change_observers.spec.ts +30 -6
- package/tests/unit/modeling/data_domain_entities.spec.ts +62 -62
- package/tests/unit/modeling/data_domain_foreign.spec.ts +59 -59
- package/tests/unit/modeling/data_domain_models.spec.ts +80 -82
- package/tests/unit/modeling/data_domain_namespaces.spec.ts +76 -76
- package/tests/unit/modeling/data_domain_property.spec.ts +29 -29
- package/tests/unit/modeling/data_domain_serialization.spec.ts +9 -9
- package/tests/unit/modeling/domain_asociation_targets.spec.ts +26 -26
- package/tests/unit/modeling/semantics.spec.ts +73 -1
|
@@ -12,7 +12,7 @@ test.group('DataDomain.registerForeignDomain()', () => {
|
|
|
12
12
|
assert.equal(dataDomain.dependencies.get(foreignDomain.key), foreignDomain)
|
|
13
13
|
assert.equal(dataDomain.dependencyList.length, 1)
|
|
14
14
|
assert.deepEqual(dataDomain.dependencyList[0], { key: foreignDomain.key, version: '1.0.0' })
|
|
15
|
-
})
|
|
15
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@register'])
|
|
16
16
|
|
|
17
17
|
test('throws an error when registering a domain with the same key', ({ assert }) => {
|
|
18
18
|
const dataDomain = new DataDomain()
|
|
@@ -23,7 +23,7 @@ test.group('DataDomain.registerForeignDomain()', () => {
|
|
|
23
23
|
() => dataDomain.registerForeignDomain(foreignDomain1),
|
|
24
24
|
`Foreign domain with key ${foreignDomain1.key} already registered`
|
|
25
25
|
)
|
|
26
|
-
})
|
|
26
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@register'])
|
|
27
27
|
|
|
28
28
|
test('throws an error when registering a domain without a version', ({ assert }) => {
|
|
29
29
|
const dataDomain = new DataDomain()
|
|
@@ -32,7 +32,7 @@ test.group('DataDomain.registerForeignDomain()', () => {
|
|
|
32
32
|
() => dataDomain.registerForeignDomain(foreignDomain),
|
|
33
33
|
`Foreign domain ${foreignDomain.key} does not have a version set`
|
|
34
34
|
)
|
|
35
|
-
})
|
|
35
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@register'])
|
|
36
36
|
|
|
37
37
|
test('copies nodes from the foreign domain to the local graph', ({ assert }) => {
|
|
38
38
|
const dataDomain = new DataDomain()
|
|
@@ -49,7 +49,7 @@ test.group('DataDomain.registerForeignDomain()', () => {
|
|
|
49
49
|
assert.deepEqual(dataDomain.graph.node(`${foreignDomain.key}:${model.key}`), model)
|
|
50
50
|
assert.deepEqual(dataDomain.graph.node(`${foreignDomain.key}:${entity.key}`), entity)
|
|
51
51
|
assert.deepEqual(dataDomain.graph.node(`${foreignDomain.key}:${property.key}`), property)
|
|
52
|
-
})
|
|
52
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@register'])
|
|
53
53
|
|
|
54
54
|
test('copies edges from the foreign domain to the local graph', ({ assert }) => {
|
|
55
55
|
const dataDomain = new DataDomain()
|
|
@@ -67,7 +67,7 @@ test.group('DataDomain.registerForeignDomain()', () => {
|
|
|
67
67
|
dataDomain.graph.edge(`${foreignDomain.key}:${entity.key}`, `${foreignDomain.key}:${property.key}`),
|
|
68
68
|
{ type: 'property', domain: foreignDomain.key, foreign: true }
|
|
69
69
|
)
|
|
70
|
-
})
|
|
70
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@register'])
|
|
71
71
|
|
|
72
72
|
test('copies parent-child relationships from the foreign domain to the local graph', ({ assert }) => {
|
|
73
73
|
const dataDomain = new DataDomain()
|
|
@@ -83,7 +83,7 @@ test.group('DataDomain.registerForeignDomain()', () => {
|
|
|
83
83
|
dataDomain.graph.hasEdge(`${foreignDomain.key}:${childEntity.key}`, `${foreignDomain.key}:${entity.key}`)
|
|
84
84
|
)
|
|
85
85
|
assert.isTrue(dataDomain.graph.hasParent(`${foreignDomain.key}:${entity.key}`, `${foreignDomain.key}:${model.key}`))
|
|
86
|
-
})
|
|
86
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@register'])
|
|
87
87
|
|
|
88
88
|
test('copies multiple parent-child relationships from the foreign domain to the local graph', ({ assert }) => {
|
|
89
89
|
const dataDomain = new DataDomain()
|
|
@@ -110,7 +110,7 @@ test.group('DataDomain.registerForeignDomain()', () => {
|
|
|
110
110
|
dataDomain.graph.hasParent(`${foreignDomain.key}:${entity2.key}`, `${foreignDomain.key}:${model.key}`)
|
|
111
111
|
)
|
|
112
112
|
// assert.isTrue(dataDomain.graph.hasParent(`${foreignDomain.key}:${model.key}`))
|
|
113
|
-
})
|
|
113
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@register'])
|
|
114
114
|
|
|
115
115
|
test('copies association edges from the foreign domain to the local graph', ({ assert }) => {
|
|
116
116
|
const dataDomain = new DataDomain()
|
|
@@ -128,7 +128,7 @@ test.group('DataDomain.registerForeignDomain()', () => {
|
|
|
128
128
|
assert.isTrue(
|
|
129
129
|
dataDomain.graph.hasEdge(`${foreignDomain.key}:${association.key}`, `${foreignDomain.key}:${entity2.key}`)
|
|
130
130
|
)
|
|
131
|
-
})
|
|
131
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@register'])
|
|
132
132
|
|
|
133
133
|
test('copies foreign domain entities to the root of the graph', ({ assert }) => {
|
|
134
134
|
const dataDomain = new DataDomain()
|
|
@@ -140,7 +140,7 @@ test.group('DataDomain.registerForeignDomain()', () => {
|
|
|
140
140
|
|
|
141
141
|
assert.isTrue(dataDomain.graph.hasNode(`${foreignDomain.key}:${entity.key}`))
|
|
142
142
|
assert.isTrue(dataDomain.graph.hasParent(`${foreignDomain.key}:${entity.key}`, `${foreignDomain.key}:${model.key}`))
|
|
143
|
-
})
|
|
143
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@register'])
|
|
144
144
|
})
|
|
145
145
|
|
|
146
146
|
test.group('DataDomain.findNamespace()', () => {
|
|
@@ -152,7 +152,7 @@ test.group('DataDomain.findNamespace()', () => {
|
|
|
152
152
|
domain.registerForeignDomain(fd)
|
|
153
153
|
const result = domain.findNamespace('test-namespace', fd.key)
|
|
154
154
|
assert.deepEqual(result, ns)
|
|
155
|
-
})
|
|
155
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@namespace'])
|
|
156
156
|
|
|
157
157
|
test('returns undefined when namespace not found', ({ assert }) => {
|
|
158
158
|
const domain = new DataDomain()
|
|
@@ -161,7 +161,7 @@ test.group('DataDomain.findNamespace()', () => {
|
|
|
161
161
|
domain.registerForeignDomain(fd)
|
|
162
162
|
const result = domain.findNamespace('other-namespace', fd.key)
|
|
163
163
|
assert.isUndefined(result)
|
|
164
|
-
})
|
|
164
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@namespace'])
|
|
165
165
|
|
|
166
166
|
test("throws when namespace's namespace not found", ({ assert }) => {
|
|
167
167
|
const domain = new DataDomain()
|
|
@@ -169,7 +169,7 @@ test.group('DataDomain.findNamespace()', () => {
|
|
|
169
169
|
assert.throws(() => {
|
|
170
170
|
domain.findNamespace('test-namespace', 'non-existent-domain')
|
|
171
171
|
}, `Foreign domain non-existent-domain not found`)
|
|
172
|
-
})
|
|
172
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@namespace'])
|
|
173
173
|
})
|
|
174
174
|
|
|
175
175
|
test.group('DataDomain.findModel()', () => {
|
|
@@ -182,7 +182,7 @@ test.group('DataDomain.findModel()', () => {
|
|
|
182
182
|
domain.registerForeignDomain(fd)
|
|
183
183
|
const result = domain.findModel('test-model', fd.key)
|
|
184
184
|
assert.deepEqual(result, model)
|
|
185
|
-
})
|
|
185
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@model'])
|
|
186
186
|
|
|
187
187
|
test('returns undefined when model not found', ({ assert }) => {
|
|
188
188
|
const domain = new DataDomain()
|
|
@@ -191,7 +191,7 @@ test.group('DataDomain.findModel()', () => {
|
|
|
191
191
|
domain.registerForeignDomain(fd)
|
|
192
192
|
const result = domain.findModel('other-model', fd.key)
|
|
193
193
|
assert.isUndefined(result)
|
|
194
|
-
})
|
|
194
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@model'])
|
|
195
195
|
|
|
196
196
|
test("throws when model's namespace not found", ({ assert }) => {
|
|
197
197
|
const domain = new DataDomain()
|
|
@@ -199,7 +199,7 @@ test.group('DataDomain.findModel()', () => {
|
|
|
199
199
|
assert.throws(() => {
|
|
200
200
|
domain.findModel('test-model', 'non-existent-domain')
|
|
201
201
|
}, `Foreign domain non-existent-domain not found`)
|
|
202
|
-
})
|
|
202
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@model'])
|
|
203
203
|
})
|
|
204
204
|
|
|
205
205
|
test.group('DataDomain.findEntity()', () => {
|
|
@@ -212,7 +212,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
212
212
|
dataDomain.registerForeignDomain(foreignDomain)
|
|
213
213
|
const foundEntity = dataDomain.findEntity('test-entity', foreignDomain.key)
|
|
214
214
|
assert.deepEqual(foundEntity, entity)
|
|
215
|
-
})
|
|
215
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
216
216
|
|
|
217
217
|
test('throws when the foreign domain does not exist', ({ assert }) => {
|
|
218
218
|
const dataDomain = new DataDomain()
|
|
@@ -220,7 +220,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
220
220
|
() => dataDomain.findEntity('test-entity', 'non-existent-domain'),
|
|
221
221
|
`Foreign domain non-existent-domain not found`
|
|
222
222
|
)
|
|
223
|
-
})
|
|
223
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
224
224
|
|
|
225
225
|
test('returns undefined if the entity does not exist in the foreign domain', ({ assert }) => {
|
|
226
226
|
const dataDomain = new DataDomain()
|
|
@@ -229,7 +229,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
229
229
|
dataDomain.registerForeignDomain(foreignDomain)
|
|
230
230
|
const foundEntity = dataDomain.findEntity('non-existent-entity', foreignDomain.key)
|
|
231
231
|
assert.isUndefined(foundEntity)
|
|
232
|
-
})
|
|
232
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
233
233
|
|
|
234
234
|
test('returns undefined if the key is not an entity', ({ assert }) => {
|
|
235
235
|
const dataDomain = new DataDomain()
|
|
@@ -239,7 +239,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
239
239
|
dataDomain.registerForeignDomain(foreignDomain)
|
|
240
240
|
const foundEntity = dataDomain.findEntity(model.key, foreignDomain.key)
|
|
241
241
|
assert.isUndefined(foundEntity)
|
|
242
|
-
})
|
|
242
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
243
243
|
|
|
244
244
|
test('returns undefined if key is undefined', ({ assert }) => {
|
|
245
245
|
const dataDomain = new DataDomain()
|
|
@@ -249,7 +249,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
249
249
|
// @ts-expect-error For testing purposes
|
|
250
250
|
const foundEntity = dataDomain.findEntity(undefined, foreignDomain.key)
|
|
251
251
|
assert.isUndefined(foundEntity)
|
|
252
|
-
})
|
|
252
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
253
253
|
|
|
254
254
|
test('returns undefined if key is null', ({ assert }) => {
|
|
255
255
|
const dataDomain = new DataDomain()
|
|
@@ -259,7 +259,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
259
259
|
// @ts-expect-error For testing purposes
|
|
260
260
|
const foundEntity = dataDomain.findEntity(null, foreignDomain.key)
|
|
261
261
|
assert.isUndefined(foundEntity)
|
|
262
|
-
})
|
|
262
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
263
263
|
|
|
264
264
|
test('returns undefined if key is an empty string', ({ assert }) => {
|
|
265
265
|
const dataDomain = new DataDomain()
|
|
@@ -268,7 +268,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
268
268
|
dataDomain.registerForeignDomain(foreignDomain)
|
|
269
269
|
const foundEntity = dataDomain.findEntity('', foreignDomain.key)
|
|
270
270
|
assert.isUndefined(foundEntity)
|
|
271
|
-
})
|
|
271
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
272
272
|
|
|
273
273
|
test('returns undefined if key is a number', ({ assert }) => {
|
|
274
274
|
const dataDomain = new DataDomain()
|
|
@@ -278,7 +278,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
278
278
|
// @ts-expect-error For testing purposes
|
|
279
279
|
const foundEntity = dataDomain.findEntity(123, foreignDomain.key)
|
|
280
280
|
assert.isUndefined(foundEntity)
|
|
281
|
-
})
|
|
281
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
282
282
|
|
|
283
283
|
test('returns undefined if key is a boolean', ({ assert }) => {
|
|
284
284
|
const dataDomain = new DataDomain()
|
|
@@ -288,7 +288,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
288
288
|
// @ts-expect-error For testing purposes
|
|
289
289
|
const foundEntity = dataDomain.findEntity(true, foreignDomain.key)
|
|
290
290
|
assert.isUndefined(foundEntity)
|
|
291
|
-
})
|
|
291
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
292
292
|
|
|
293
293
|
test('returns undefined if key is an object', ({ assert }) => {
|
|
294
294
|
const dataDomain = new DataDomain()
|
|
@@ -298,7 +298,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
298
298
|
// @ts-expect-error For testing purposes
|
|
299
299
|
const foundEntity = dataDomain.findEntity({}, foreignDomain.key)
|
|
300
300
|
assert.isUndefined(foundEntity)
|
|
301
|
-
})
|
|
301
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
302
302
|
|
|
303
303
|
test('returns undefined if key is an array', ({ assert }) => {
|
|
304
304
|
const dataDomain = new DataDomain()
|
|
@@ -308,7 +308,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
308
308
|
// @ts-expect-error For testing purposes
|
|
309
309
|
const foundEntity = dataDomain.findEntity([], foreignDomain.key)
|
|
310
310
|
assert.isUndefined(foundEntity)
|
|
311
|
-
})
|
|
311
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
312
312
|
|
|
313
313
|
test('returns undefined if key is a function', ({ assert }) => {
|
|
314
314
|
const dataDomain = new DataDomain()
|
|
@@ -318,7 +318,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
318
318
|
// @ts-expect-error For testing purposes
|
|
319
319
|
const foundEntity = dataDomain.findEntity(() => {}, foreignDomain.key)
|
|
320
320
|
assert.isUndefined(foundEntity)
|
|
321
|
-
})
|
|
321
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
322
322
|
|
|
323
323
|
test('returns undefined if domainKey is undefined', ({ assert }) => {
|
|
324
324
|
const dataDomain = new DataDomain()
|
|
@@ -329,7 +329,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
329
329
|
dataDomain.registerForeignDomain(foreignDomain)
|
|
330
330
|
const foundEntity = dataDomain.findEntity(entity.key, undefined)
|
|
331
331
|
assert.isUndefined(foundEntity)
|
|
332
|
-
})
|
|
332
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
333
333
|
|
|
334
334
|
test('returns undefined if domainKey is null', ({ assert }) => {
|
|
335
335
|
const dataDomain = new DataDomain()
|
|
@@ -341,7 +341,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
341
341
|
// @ts-expect-error For testing purposes
|
|
342
342
|
const foundEntity = dataDomain.findEntity(entity.key, null)
|
|
343
343
|
assert.isUndefined(foundEntity)
|
|
344
|
-
})
|
|
344
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
345
345
|
|
|
346
346
|
test('returns undefined if domainKey is an empty string', ({ assert }) => {
|
|
347
347
|
const dataDomain = new DataDomain()
|
|
@@ -352,7 +352,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
352
352
|
dataDomain.registerForeignDomain(foreignDomain)
|
|
353
353
|
const foundEntity = dataDomain.findEntity(entity.key, '')
|
|
354
354
|
assert.isUndefined(foundEntity)
|
|
355
|
-
})
|
|
355
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
356
356
|
|
|
357
357
|
test('throws when domainKey is a number', ({ assert }) => {
|
|
358
358
|
const dataDomain = new DataDomain()
|
|
@@ -366,7 +366,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
366
366
|
() => dataDomain.findEntity(entity.key, 123),
|
|
367
367
|
`Invalid namespace key. Expected a string, got number`
|
|
368
368
|
)
|
|
369
|
-
})
|
|
369
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
370
370
|
|
|
371
371
|
test('throws when domainKey is a boolean', ({ assert }) => {
|
|
372
372
|
const dataDomain = new DataDomain()
|
|
@@ -380,7 +380,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
380
380
|
() => dataDomain.findEntity(entity.key, true),
|
|
381
381
|
`Invalid namespace key. Expected a string, got boolean`
|
|
382
382
|
)
|
|
383
|
-
})
|
|
383
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
384
384
|
|
|
385
385
|
test('throws when domainKey is an object', ({ assert }) => {
|
|
386
386
|
const dataDomain = new DataDomain()
|
|
@@ -394,7 +394,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
394
394
|
() => dataDomain.findEntity(entity.key, {}),
|
|
395
395
|
`Invalid namespace key. Expected a string, got object`
|
|
396
396
|
)
|
|
397
|
-
})
|
|
397
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
398
398
|
|
|
399
399
|
test('throws when domainKey is an array', ({ assert }) => {
|
|
400
400
|
const dataDomain = new DataDomain()
|
|
@@ -408,7 +408,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
408
408
|
() => dataDomain.findEntity(entity.key, []),
|
|
409
409
|
`Invalid namespace key. Expected a string, got object`
|
|
410
410
|
)
|
|
411
|
-
})
|
|
411
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
412
412
|
|
|
413
413
|
test('throws when domainKey is a function', ({ assert }) => {
|
|
414
414
|
const dataDomain = new DataDomain()
|
|
@@ -422,7 +422,7 @@ test.group('DataDomain.findEntity()', () => {
|
|
|
422
422
|
() => dataDomain.findEntity(entity.key, () => {}),
|
|
423
423
|
`Invalid namespace key. Expected a string, got function`
|
|
424
424
|
)
|
|
425
|
-
})
|
|
425
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@entity'])
|
|
426
426
|
})
|
|
427
427
|
|
|
428
428
|
test.group('DataDomain.listForeignNamespaces()', () => {
|
|
@@ -440,7 +440,7 @@ test.group('DataDomain.listForeignNamespaces()', () => {
|
|
|
440
440
|
assert.lengthOf(namespaces, 2)
|
|
441
441
|
assert.deepInclude(namespaces, ns1Foreign)
|
|
442
442
|
assert.deepInclude(namespaces, ns2Foreign)
|
|
443
|
-
})
|
|
443
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@namespace'])
|
|
444
444
|
|
|
445
445
|
test('returns an empty generator if the foreign domain has no namespaces', ({ assert }) => {
|
|
446
446
|
const localDomain = new DataDomain()
|
|
@@ -450,7 +450,7 @@ test.group('DataDomain.listForeignNamespaces()', () => {
|
|
|
450
450
|
|
|
451
451
|
const namespaces = [...localDomain.listForeignNamespaces(foreignDomain.key)]
|
|
452
452
|
assert.lengthOf(namespaces, 0)
|
|
453
|
-
})
|
|
453
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@namespace'])
|
|
454
454
|
|
|
455
455
|
test('returns an empty generator if foreign namespaces are not in the local graph', ({ assert }) => {
|
|
456
456
|
const localDomain = new DataDomain()
|
|
@@ -464,7 +464,7 @@ test.group('DataDomain.listForeignNamespaces()', () => {
|
|
|
464
464
|
|
|
465
465
|
const namespacesAfterRemoval = [...localDomain.listForeignNamespaces(foreignDomain.key)]
|
|
466
466
|
assert.lengthOf(namespacesAfterRemoval, 0)
|
|
467
|
-
})
|
|
467
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@namespace'])
|
|
468
468
|
|
|
469
469
|
test('throws an error if the foreign domain key is not registered', ({ assert }) => {
|
|
470
470
|
const localDomain = new DataDomain()
|
|
@@ -472,7 +472,7 @@ test.group('DataDomain.listForeignNamespaces()', () => {
|
|
|
472
472
|
() => [...localDomain.listForeignNamespaces('nonExistentKey')],
|
|
473
473
|
'Foreign domain nonExistentKey not found'
|
|
474
474
|
)
|
|
475
|
-
})
|
|
475
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@namespace'])
|
|
476
476
|
})
|
|
477
477
|
|
|
478
478
|
test.group('DataDomain.listForeignModels()', () => {
|
|
@@ -494,7 +494,7 @@ test.group('DataDomain.listForeignModels()', () => {
|
|
|
494
494
|
assert.lengthOf(models, 2)
|
|
495
495
|
assert.deepInclude(models, model1Foreign)
|
|
496
496
|
assert.deepInclude(models, model2Foreign)
|
|
497
|
-
})
|
|
497
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@model'])
|
|
498
498
|
|
|
499
499
|
test('returns an empty generator if the foreign domain has no models', ({ assert }) => {
|
|
500
500
|
const localDomain = new DataDomain()
|
|
@@ -504,7 +504,7 @@ test.group('DataDomain.listForeignModels()', () => {
|
|
|
504
504
|
|
|
505
505
|
const models = [...localDomain.listForeignModels(foreignDomain.key)]
|
|
506
506
|
assert.lengthOf(models, 0)
|
|
507
|
-
})
|
|
507
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@model'])
|
|
508
508
|
|
|
509
509
|
test('returns an empty generator if foreign models are not in the local graph', ({ assert }) => {
|
|
510
510
|
const localDomain = new DataDomain()
|
|
@@ -518,12 +518,12 @@ test.group('DataDomain.listForeignModels()', () => {
|
|
|
518
518
|
|
|
519
519
|
const modelsAfterRemoval = [...localDomain.listForeignModels(foreignDomain.key)]
|
|
520
520
|
assert.lengthOf(modelsAfterRemoval, 0)
|
|
521
|
-
})
|
|
521
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@model'])
|
|
522
522
|
|
|
523
523
|
test('throws an error if the foreign domain key is not registered', ({ assert }) => {
|
|
524
524
|
const localDomain = new DataDomain()
|
|
525
525
|
assert.throws(() => [...localDomain.listForeignModels('nonExistentKey')], 'Foreign domain nonExistentKey not found')
|
|
526
|
-
})
|
|
526
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@model'])
|
|
527
527
|
})
|
|
528
528
|
|
|
529
529
|
test.group('DataDomain.listForeignEntities()', () => {
|
|
@@ -546,7 +546,7 @@ test.group('DataDomain.listForeignEntities()', () => {
|
|
|
546
546
|
assert.lengthOf(entities, 2)
|
|
547
547
|
assert.deepInclude(entities, entity1Foreign)
|
|
548
548
|
assert.deepInclude(entities, entity2Foreign)
|
|
549
|
-
})
|
|
549
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@entity'])
|
|
550
550
|
|
|
551
551
|
test('returns an empty generator if the foreign domain has no entities', ({ assert }) => {
|
|
552
552
|
const localDomain = new DataDomain()
|
|
@@ -556,7 +556,7 @@ test.group('DataDomain.listForeignEntities()', () => {
|
|
|
556
556
|
|
|
557
557
|
const entities = [...localDomain.listForeignEntities(foreignDomain.key)]
|
|
558
558
|
assert.lengthOf(entities, 0)
|
|
559
|
-
})
|
|
559
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@entity'])
|
|
560
560
|
|
|
561
561
|
test('returns an empty generator if foreign entities are not in the local graph', ({ assert }) => {
|
|
562
562
|
const localDomain = new DataDomain()
|
|
@@ -571,7 +571,7 @@ test.group('DataDomain.listForeignEntities()', () => {
|
|
|
571
571
|
|
|
572
572
|
const entitiesAfterRemoval = [...localDomain.listForeignEntities(foreignDomain.key)]
|
|
573
573
|
assert.lengthOf(entitiesAfterRemoval, 0)
|
|
574
|
-
})
|
|
574
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@entity'])
|
|
575
575
|
|
|
576
576
|
test('throws an error if the foreign domain key is not registered', ({ assert }) => {
|
|
577
577
|
const localDomain = new DataDomain()
|
|
@@ -579,7 +579,7 @@ test.group('DataDomain.listForeignEntities()', () => {
|
|
|
579
579
|
() => [...localDomain.listForeignEntities('nonExistentKey')],
|
|
580
580
|
'Foreign domain nonExistentKey not found'
|
|
581
581
|
)
|
|
582
|
-
})
|
|
582
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@entity'])
|
|
583
583
|
|
|
584
584
|
test('lists entities from a foreign domain even if local domain has entities', ({ assert }) => {
|
|
585
585
|
const localDomain = new DataDomain()
|
|
@@ -596,7 +596,7 @@ test.group('DataDomain.listForeignEntities()', () => {
|
|
|
596
596
|
assert.lengthOf(entities, 1)
|
|
597
597
|
assert.deepInclude(entities, entityForeign)
|
|
598
598
|
assert.notDeepInclude(entities, localDomain.findEntity('entityL') as DomainEntity)
|
|
599
|
-
})
|
|
599
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@list', '@entity'])
|
|
600
600
|
})
|
|
601
601
|
|
|
602
602
|
test.group('DataDomain.findAssociation()', () => {
|
|
@@ -611,7 +611,7 @@ test.group('DataDomain.findAssociation()', () => {
|
|
|
611
611
|
domain.registerForeignDomain(fd)
|
|
612
612
|
const result = domain.findAssociation(a1.key, fd.key)
|
|
613
613
|
assert.deepEqual(result, a1)
|
|
614
|
-
})
|
|
614
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@association'])
|
|
615
615
|
|
|
616
616
|
test('returns undefined when association not found', ({ assert }) => {
|
|
617
617
|
const domain = new DataDomain()
|
|
@@ -620,7 +620,7 @@ test.group('DataDomain.findAssociation()', () => {
|
|
|
620
620
|
domain.registerForeignDomain(fd)
|
|
621
621
|
const result = domain.findAssociation('other-association', fd.key)
|
|
622
622
|
assert.isUndefined(result)
|
|
623
|
-
})
|
|
623
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@association'])
|
|
624
624
|
|
|
625
625
|
test("throws when association's namespace not found", ({ assert }) => {
|
|
626
626
|
const domain = new DataDomain()
|
|
@@ -628,7 +628,7 @@ test.group('DataDomain.findAssociation()', () => {
|
|
|
628
628
|
assert.throws(() => {
|
|
629
629
|
domain.findAssociation('test-association', 'non-existent-domain')
|
|
630
630
|
}, `Foreign domain non-existent-domain not found`)
|
|
631
|
-
})
|
|
631
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@association'])
|
|
632
632
|
})
|
|
633
633
|
|
|
634
634
|
test.group('DataDomain.findProperty()', () => {
|
|
@@ -642,7 +642,7 @@ test.group('DataDomain.findProperty()', () => {
|
|
|
642
642
|
domain.registerForeignDomain(fd)
|
|
643
643
|
const result = domain.findProperty(p1.key, fd.key)
|
|
644
644
|
assert.deepEqual(result, p1)
|
|
645
|
-
})
|
|
645
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@property'])
|
|
646
646
|
|
|
647
647
|
test('returns undefined when property not found', ({ assert }) => {
|
|
648
648
|
const domain = new DataDomain()
|
|
@@ -651,7 +651,7 @@ test.group('DataDomain.findProperty()', () => {
|
|
|
651
651
|
domain.registerForeignDomain(fd)
|
|
652
652
|
const result = domain.findProperty('other-property', fd.key)
|
|
653
653
|
assert.isUndefined(result)
|
|
654
|
-
})
|
|
654
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@property'])
|
|
655
655
|
|
|
656
656
|
test("throws when property's namespace not found", ({ assert }) => {
|
|
657
657
|
const domain = new DataDomain()
|
|
@@ -659,7 +659,7 @@ test.group('DataDomain.findProperty()', () => {
|
|
|
659
659
|
assert.throws(() => {
|
|
660
660
|
domain.findProperty('test-property', 'non-existent-domain')
|
|
661
661
|
}, `Foreign domain non-existent-domain not found`)
|
|
662
|
-
})
|
|
662
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@find', '@property'])
|
|
663
663
|
})
|
|
664
664
|
|
|
665
665
|
test.group('DataDomain foreign elements namespace property', () => {
|
|
@@ -674,7 +674,7 @@ test.group('DataDomain foreign elements namespace property', () => {
|
|
|
674
674
|
assert.ok(retrievedNs, 'Foreign namespace should be found in local domain')
|
|
675
675
|
assert.equal(retrievedNs!.namespace, 'foreignKey', 'Namespace property should point to foreign domain key')
|
|
676
676
|
assert.equal(retrievedNs!.domain.key, 'foreignKey', 'Domain property should point to local domain key')
|
|
677
|
-
})
|
|
677
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@namespace_property', '@check'])
|
|
678
678
|
|
|
679
679
|
test('DomainModel retains its original namespace key after foreign registration', ({ assert }) => {
|
|
680
680
|
const localDomain = new DataDomain({ key: 'localKey' })
|
|
@@ -688,7 +688,7 @@ test.group('DataDomain foreign elements namespace property', () => {
|
|
|
688
688
|
assert.ok(retrievedModel, 'Foreign model should be found in local domain')
|
|
689
689
|
assert.equal(retrievedModel!.namespace, 'foreignKey', 'Namespace property should point to foreign domain key')
|
|
690
690
|
assert.equal(retrievedModel!.domain.key, 'foreignKey', 'Domain property should point to local domain key')
|
|
691
|
-
})
|
|
691
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@namespace_property', '@check'])
|
|
692
692
|
|
|
693
693
|
test('DomainEntity retains its original namespace key after foreign registration', ({ assert }) => {
|
|
694
694
|
const localDomain = new DataDomain({ key: 'localKey' })
|
|
@@ -703,7 +703,7 @@ test.group('DataDomain foreign elements namespace property', () => {
|
|
|
703
703
|
assert.ok(retrievedEntity, 'Foreign entity should be found in local domain')
|
|
704
704
|
assert.equal(retrievedEntity!.namespace, 'foreignKey', 'Namespace property should point to foreign domain key')
|
|
705
705
|
assert.equal(retrievedEntity!.domain.key, 'foreignKey', 'Domain property should point to local domain key')
|
|
706
|
-
})
|
|
706
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@namespace_property', '@check'])
|
|
707
707
|
|
|
708
708
|
test('DomainProperty retains its original namespace key after foreign registration', ({ assert }) => {
|
|
709
709
|
const localDomain = new DataDomain({ key: 'localKey' })
|
|
@@ -719,7 +719,7 @@ test.group('DataDomain foreign elements namespace property', () => {
|
|
|
719
719
|
assert.ok(retrievedProperty, 'Foreign property should be found in local domain')
|
|
720
720
|
assert.equal(retrievedProperty!.namespace, 'foreignKey', 'Namespace property should point to foreign domain key')
|
|
721
721
|
assert.equal(retrievedProperty!.domain.key, 'foreignKey', 'Domain property should point to local domain key')
|
|
722
|
-
})
|
|
722
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@namespace_property', '@check'])
|
|
723
723
|
|
|
724
724
|
test('DomainElement.namespace is the key of the domain it was created in', ({ assert }) => {
|
|
725
725
|
const domain = new DataDomain({ key: 'originalDomainKey' })
|
|
@@ -728,5 +728,5 @@ test.group('DataDomain foreign elements namespace property', () => {
|
|
|
728
728
|
|
|
729
729
|
assert.equal(model.namespace, 'originalDomainKey')
|
|
730
730
|
assert.equal(entity.namespace, 'originalDomainKey')
|
|
731
|
-
})
|
|
731
|
+
}).tags(['@modeling', '@datadomain', '@foreign', '@namespace_property', '@check'])
|
|
732
732
|
})
|