@api-client/core 0.19.24 → 0.19.26
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/build/src/index.d.ts +3 -1
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +3 -1
- package/build/src/index.js.map +1 -1
- package/build/src/mocking/ModelingMock.d.ts +2 -0
- package/build/src/mocking/ModelingMock.d.ts.map +1 -1
- package/build/src/mocking/ModelingMock.js +2 -0
- package/build/src/mocking/ModelingMock.js.map +1 -1
- package/build/src/mocking/lib/Deployment.d.ts +16 -0
- package/build/src/mocking/lib/Deployment.d.ts.map +1 -0
- package/build/src/mocking/lib/Deployment.js +76 -0
- package/build/src/mocking/lib/Deployment.js.map +1 -0
- package/build/src/modeling/Bindings.d.ts +4 -0
- package/build/src/modeling/Bindings.d.ts.map +1 -1
- package/build/src/modeling/Bindings.js.map +1 -1
- package/build/src/modeling/DataFormat.d.ts +1 -1
- package/build/src/modeling/DataFormat.d.ts.map +1 -1
- package/build/src/modeling/DataFormat.js +2 -0
- package/build/src/modeling/DataFormat.js.map +1 -1
- package/build/src/modeling/DomainAssociation.d.ts +7 -0
- package/build/src/modeling/DomainAssociation.d.ts.map +1 -1
- package/build/src/modeling/DomainAssociation.js +10 -0
- package/build/src/modeling/DomainAssociation.js.map +1 -1
- package/build/src/modeling/DomainEntity.d.ts +9 -1
- package/build/src/modeling/DomainEntity.d.ts.map +1 -1
- package/build/src/modeling/DomainEntity.js +26 -1
- package/build/src/modeling/DomainEntity.js.map +1 -1
- package/build/src/modeling/ExposedEntity.d.ts +12 -1
- package/build/src/modeling/ExposedEntity.d.ts.map +1 -1
- package/build/src/modeling/ExposedEntity.js +24 -1
- package/build/src/modeling/ExposedEntity.js.map +1 -1
- package/build/src/modeling/RuntimeApiModel.d.ts +52 -0
- package/build/src/modeling/RuntimeApiModel.d.ts.map +1 -0
- package/build/src/modeling/RuntimeApiModel.js +85 -0
- package/build/src/modeling/RuntimeApiModel.js.map +1 -0
- package/build/src/modeling/actions/index.d.ts +10 -0
- package/build/src/modeling/actions/index.d.ts.map +1 -1
- package/build/src/modeling/actions/index.js +30 -0
- package/build/src/modeling/actions/index.js.map +1 -1
- package/build/src/modeling/index.d.ts.map +1 -1
- package/build/src/modeling/index.js +1 -0
- package/build/src/modeling/index.js.map +1 -1
- package/build/src/modeling/types.d.ts +25 -1
- package/build/src/modeling/types.d.ts.map +1 -1
- package/build/src/modeling/types.js.map +1 -1
- package/build/src/models/kinds.d.ts +1 -0
- package/build/src/models/kinds.d.ts.map +1 -1
- package/build/src/models/kinds.js +1 -0
- package/build/src/models/kinds.js.map +1 -1
- package/build/src/models/store/Deployment.d.ts +53 -16
- package/build/src/models/store/Deployment.d.ts.map +1 -1
- package/build/src/models/store/Deployment.js +92 -34
- package/build/src/models/store/Deployment.js.map +1 -1
- package/build/src/sdk/DataCatalogSdk.d.ts.map +1 -1
- package/build/src/sdk/DataCatalogSdk.js +22 -179
- package/build/src/sdk/DataCatalogSdk.js.map +1 -1
- package/build/src/sdk/DeploymentsSdk.d.ts +48 -0
- package/build/src/sdk/DeploymentsSdk.d.ts.map +1 -0
- package/build/src/sdk/DeploymentsSdk.js +94 -0
- package/build/src/sdk/DeploymentsSdk.js.map +1 -0
- package/build/src/sdk/RouteBuilder.d.ts +2 -0
- package/build/src/sdk/RouteBuilder.d.ts.map +1 -1
- package/build/src/sdk/RouteBuilder.js +6 -0
- package/build/src/sdk/RouteBuilder.js.map +1 -1
- package/build/src/sdk/Sdk.d.ts +2 -0
- package/build/src/sdk/Sdk.d.ts.map +1 -1
- package/build/src/sdk/Sdk.js +2 -0
- package/build/src/sdk/Sdk.js.map +1 -1
- package/build/src/sdk/SdkBase.d.ts +19 -1
- package/build/src/sdk/SdkBase.d.ts.map +1 -1
- package/build/src/sdk/SdkBase.js +31 -1
- package/build/src/sdk/SdkBase.js.map +1 -1
- package/build/src/sdk/SdkMock.d.ts +9 -0
- package/build/src/sdk/SdkMock.d.ts.map +1 -1
- package/build/src/sdk/SdkMock.js +73 -0
- package/build/src/sdk/SdkMock.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/src/matchit.d.ts +19 -0
- package/src/mocking/ModelingMock.ts +2 -0
- package/src/mocking/lib/Deployment.ts +88 -0
- package/src/modeling/Bindings.ts +4 -0
- package/src/modeling/DataFormat.ts +4 -0
- package/src/modeling/DomainAssociation.ts +11 -0
- package/src/modeling/DomainEntity.ts +30 -1
- package/src/modeling/ExposedEntity.ts +26 -1
- package/src/modeling/RuntimeApiModel.ts +137 -0
- package/src/modeling/types.ts +26 -1
- package/src/models/kinds.ts +1 -0
- package/src/models/store/Deployment.ts +122 -45
- package/src/sdk/DataCatalogSdk.ts +22 -176
- package/src/sdk/DeploymentsSdk.ts +123 -0
- package/src/sdk/RouteBuilder.ts +8 -0
- package/src/sdk/Sdk.ts +3 -0
- package/src/sdk/SdkBase.ts +35 -3
- package/src/sdk/SdkMock.ts +103 -0
- package/tests/unit/modeling/RuntimeApiModel.spec.ts +122 -0
- package/tests/unit/modeling/actions/index.spec.ts +113 -0
- package/tests/unit/modeling/domain_asociation.spec.ts +28 -0
- package/tests/unit/modeling/domain_entity_parents.spec.ts +49 -0
- package/tests/unit/modeling/exposed_entity_actions.spec.ts +47 -0
- package/tests/unit/models/store/Deployment.spec.ts +108 -44
|
@@ -1,58 +1,62 @@
|
|
|
1
1
|
import { test } from '@japa/runner'
|
|
2
|
-
import { Deployment, DeploymentStatus } from '../../../../src/models/store/Deployment.js'
|
|
2
|
+
import { Deployment, DeploymentEnvironment, DeploymentStatus } from '../../../../src/models/store/Deployment.js'
|
|
3
3
|
import type { DeploymentSchema } from '../../../../src/models/store/Deployment.js'
|
|
4
4
|
|
|
5
5
|
test.group('Deployment model', () => {
|
|
6
6
|
test('createSchema() returns default values', ({ assert }) => {
|
|
7
7
|
const result = Deployment.createSchema()
|
|
8
|
-
assert.isString(result.
|
|
8
|
+
assert.isString(result.key)
|
|
9
9
|
assert.equal(result.orgId, '')
|
|
10
10
|
assert.equal(result.apiId, '')
|
|
11
|
-
assert.equal(result.
|
|
12
|
-
assert.equal(result.
|
|
11
|
+
assert.equal(result.orgSlug, '')
|
|
12
|
+
assert.equal(result.apiSlug, '')
|
|
13
|
+
assert.equal(result.env, DeploymentEnvironment.DEV)
|
|
14
|
+
assert.isUndefined(result.version)
|
|
15
|
+
assert.equal(result.modelVersion, '0.0.0')
|
|
13
16
|
assert.equal(result.status, DeploymentStatus.Pending)
|
|
14
|
-
assert.isUndefined(result.stagingPath)
|
|
15
|
-
assert.isUndefined(result.mongoModelId)
|
|
16
17
|
assert.isNumber(result.createdAt)
|
|
17
18
|
assert.isNumber(result.updatedAt)
|
|
18
19
|
})
|
|
19
20
|
|
|
20
21
|
test('createSchema(init) assigns values', ({ assert }) => {
|
|
21
22
|
const init: Partial<DeploymentSchema> = {
|
|
22
|
-
|
|
23
|
+
key: 'test-id',
|
|
23
24
|
orgId: 'org-1',
|
|
24
25
|
apiId: 'api-1',
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
orgSlug: 'org-slug',
|
|
27
|
+
apiSlug: 'api-slug',
|
|
28
|
+
env: DeploymentEnvironment.PROD,
|
|
29
|
+
version: 'v1',
|
|
30
|
+
modelVersion: '1.0.0',
|
|
27
31
|
status: DeploymentStatus.Active,
|
|
28
|
-
stagingPath: '/stage',
|
|
29
|
-
mongoModelId: 'mongo-1',
|
|
30
32
|
createdAt: 12345,
|
|
31
33
|
updatedAt: 67890,
|
|
32
34
|
}
|
|
33
35
|
const result = Deployment.createSchema(init)
|
|
34
|
-
assert.equal(result.
|
|
36
|
+
assert.equal(result.key, 'test-id')
|
|
35
37
|
assert.equal(result.orgId, 'org-1')
|
|
36
38
|
assert.equal(result.apiId, 'api-1')
|
|
37
|
-
assert.equal(result.
|
|
38
|
-
assert.equal(result.
|
|
39
|
+
assert.equal(result.orgSlug, 'org-slug')
|
|
40
|
+
assert.equal(result.apiSlug, 'api-slug')
|
|
41
|
+
assert.equal(result.env, DeploymentEnvironment.PROD)
|
|
42
|
+
assert.equal(result.version, 'v1')
|
|
43
|
+
assert.equal(result.modelVersion, '1.0.0')
|
|
39
44
|
assert.equal(result.status, DeploymentStatus.Active)
|
|
40
|
-
assert.equal(result.stagingPath, '/stage')
|
|
41
|
-
assert.equal(result.mongoModelId, 'mongo-1')
|
|
42
45
|
assert.equal(result.createdAt, 12345)
|
|
43
46
|
assert.equal(result.updatedAt, 67890)
|
|
44
47
|
})
|
|
45
48
|
|
|
46
49
|
test('constructor() initializes with default values', ({ assert }) => {
|
|
47
50
|
const deployment = new Deployment()
|
|
48
|
-
assert.isString(deployment.
|
|
51
|
+
assert.isString(deployment.key)
|
|
49
52
|
assert.equal(deployment.orgId, '')
|
|
50
53
|
assert.equal(deployment.apiId, '')
|
|
51
|
-
assert.equal(deployment.
|
|
52
|
-
assert.equal(deployment.
|
|
54
|
+
assert.equal(deployment.orgSlug, '')
|
|
55
|
+
assert.equal(deployment.apiSlug, '')
|
|
56
|
+
assert.equal(deployment.env, DeploymentEnvironment.DEV)
|
|
57
|
+
assert.isUndefined(deployment.version)
|
|
58
|
+
assert.equal(deployment.modelVersion, '0.0.0')
|
|
53
59
|
assert.equal(deployment.status, DeploymentStatus.Pending)
|
|
54
|
-
assert.isUndefined(deployment.stagingPath)
|
|
55
|
-
assert.isUndefined(deployment.mongoModelId)
|
|
56
60
|
assert.isNumber(deployment.createdAt)
|
|
57
61
|
assert.isNumber(deployment.updatedAt)
|
|
58
62
|
})
|
|
@@ -61,38 +65,39 @@ test.group('Deployment model', () => {
|
|
|
61
65
|
const init: Partial<DeploymentSchema> = {
|
|
62
66
|
orgId: 'org-1',
|
|
63
67
|
apiId: 'api-1',
|
|
64
|
-
stagingPath: '/stage',
|
|
65
68
|
}
|
|
66
69
|
const deployment = new Deployment(init)
|
|
67
70
|
assert.equal(deployment.orgId, 'org-1')
|
|
68
71
|
assert.equal(deployment.apiId, 'api-1')
|
|
69
|
-
assert.equal(deployment.stagingPath, '/stage')
|
|
70
72
|
})
|
|
71
73
|
|
|
72
74
|
test('toJSON() returns the schema representation', ({ assert }) => {
|
|
73
75
|
const init: Partial<DeploymentSchema> = {
|
|
74
|
-
|
|
76
|
+
key: 'test-id',
|
|
75
77
|
orgId: 'org-1',
|
|
76
78
|
apiId: 'api-1',
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
orgSlug: 'org-slug',
|
|
80
|
+
apiSlug: 'api-slug',
|
|
81
|
+
env: DeploymentEnvironment.PROD,
|
|
82
|
+
version: 'v1',
|
|
83
|
+
modelVersion: '1.0.0',
|
|
79
84
|
status: DeploymentStatus.Active,
|
|
80
|
-
stagingPath: '/stage',
|
|
81
|
-
mongoModelId: 'mongo-1',
|
|
82
85
|
createdAt: 12345,
|
|
83
86
|
updatedAt: 67890,
|
|
84
87
|
}
|
|
85
88
|
const deployment = new Deployment(init)
|
|
86
89
|
const result = deployment.toJSON()
|
|
87
90
|
assert.deepEqual(result, {
|
|
88
|
-
|
|
91
|
+
kind: 'Core#Deployment',
|
|
92
|
+
key: 'test-id',
|
|
89
93
|
orgId: 'org-1',
|
|
90
94
|
apiId: 'api-1',
|
|
91
|
-
|
|
92
|
-
|
|
95
|
+
orgSlug: 'org-slug',
|
|
96
|
+
apiSlug: 'api-slug',
|
|
97
|
+
env: DeploymentEnvironment.PROD,
|
|
98
|
+
version: 'v1',
|
|
99
|
+
modelVersion: '1.0.0',
|
|
93
100
|
status: DeploymentStatus.Active,
|
|
94
|
-
stagingPath: '/stage',
|
|
95
|
-
mongoModelId: 'mongo-1',
|
|
96
101
|
createdAt: 12345,
|
|
97
102
|
updatedAt: 67890,
|
|
98
103
|
})
|
|
@@ -102,21 +107,64 @@ test.group('Deployment model', () => {
|
|
|
102
107
|
const deployment = new Deployment({
|
|
103
108
|
orgId: '',
|
|
104
109
|
apiId: '',
|
|
110
|
+
orgSlug: '',
|
|
111
|
+
apiSlug: '',
|
|
112
|
+
env: '' as any, // Force empty env
|
|
105
113
|
})
|
|
106
|
-
deployment.
|
|
107
|
-
deployment.
|
|
114
|
+
deployment.version = ''
|
|
115
|
+
deployment.modelVersion = ''
|
|
108
116
|
const errors = deployment.validate()
|
|
109
|
-
|
|
117
|
+
// It should now return errors for orgId, apiId, orgSlug, apiSlug, env, modelVersion
|
|
118
|
+
// Note: Since env is empty, the version-prod logic won't hit the first branch, but might hit the second branch
|
|
119
|
+
// if version is present. Since version='', neither branch hits.
|
|
120
|
+
assert.lengthOf(errors, 6)
|
|
110
121
|
assert.deepEqual(errors[0], { field: 'orgId', message: 'Org ID must not be empty', rule: 'notEmpty' })
|
|
111
122
|
assert.deepEqual(errors[1], { field: 'apiId', message: 'API ID must not be empty', rule: 'notEmpty' })
|
|
112
|
-
assert.deepEqual(errors[2], {
|
|
113
|
-
|
|
114
|
-
|
|
123
|
+
assert.deepEqual(errors[2], { field: 'orgSlug', message: 'Org slug must not be empty', rule: 'notEmpty' })
|
|
124
|
+
assert.deepEqual(errors[3], { field: 'apiSlug', message: 'API slug must not be empty', rule: 'notEmpty' })
|
|
125
|
+
assert.deepEqual(errors[4], { field: 'env', message: 'Environment tag must not be empty', rule: 'notEmpty' })
|
|
126
|
+
assert.deepEqual(errors[5], {
|
|
127
|
+
field: 'modelVersion',
|
|
128
|
+
message: 'API model version must not be empty',
|
|
115
129
|
rule: 'notEmpty',
|
|
116
130
|
})
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
131
|
+
})
|
|
132
|
+
|
|
133
|
+
test('validate() returns error if version is empty for PROD environment', ({ assert }) => {
|
|
134
|
+
const deployment = new Deployment({
|
|
135
|
+
orgId: 'org-1',
|
|
136
|
+
apiId: 'api-1',
|
|
137
|
+
orgSlug: 'org-slug',
|
|
138
|
+
apiSlug: 'api-slug',
|
|
139
|
+
env: DeploymentEnvironment.PROD,
|
|
140
|
+
modelVersion: '1.0.0',
|
|
141
|
+
})
|
|
142
|
+
// Version is undefined by default, or we can explicitly set it to empty string
|
|
143
|
+
deployment.version = ''
|
|
144
|
+
const errors = deployment.validate()
|
|
145
|
+
assert.lengthOf(errors, 1)
|
|
146
|
+
assert.deepEqual(errors[0], {
|
|
147
|
+
field: 'version',
|
|
148
|
+
message: 'Version must not be empty for production environment',
|
|
149
|
+
rule: 'notEmpty',
|
|
150
|
+
})
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
test('validate() returns error if version is present for non-PROD environment', ({ assert }) => {
|
|
154
|
+
const deployment = new Deployment({
|
|
155
|
+
orgId: 'org-1',
|
|
156
|
+
apiId: 'api-1',
|
|
157
|
+
orgSlug: 'org-slug',
|
|
158
|
+
apiSlug: 'api-slug',
|
|
159
|
+
env: DeploymentEnvironment.DEV,
|
|
160
|
+
version: 'v1',
|
|
161
|
+
modelVersion: '1.0.0',
|
|
162
|
+
})
|
|
163
|
+
const errors = deployment.validate()
|
|
164
|
+
assert.lengthOf(errors, 1)
|
|
165
|
+
assert.deepEqual(errors[0], {
|
|
166
|
+
field: 'version',
|
|
167
|
+
message: 'Version must not be present for non-production environment',
|
|
120
168
|
rule: 'notEmpty',
|
|
121
169
|
})
|
|
122
170
|
})
|
|
@@ -125,8 +173,24 @@ test.group('Deployment model', () => {
|
|
|
125
173
|
const deployment = new Deployment({
|
|
126
174
|
orgId: 'org-1',
|
|
127
175
|
apiId: 'api-1',
|
|
128
|
-
|
|
129
|
-
|
|
176
|
+
version: 'v1',
|
|
177
|
+
modelVersion: '1.0.0',
|
|
178
|
+
orgSlug: 'org-slug',
|
|
179
|
+
apiSlug: 'api-slug',
|
|
180
|
+
env: DeploymentEnvironment.PROD,
|
|
181
|
+
})
|
|
182
|
+
const errors = deployment.validate()
|
|
183
|
+
assert.lengthOf(errors, 0)
|
|
184
|
+
})
|
|
185
|
+
|
|
186
|
+
test('validate() returns no errors for valid non-PROD model', ({ assert }) => {
|
|
187
|
+
const deployment = new Deployment({
|
|
188
|
+
orgId: 'org-1',
|
|
189
|
+
apiId: 'api-1',
|
|
190
|
+
modelVersion: '1.0.0',
|
|
191
|
+
orgSlug: 'org-slug',
|
|
192
|
+
apiSlug: 'api-slug',
|
|
193
|
+
env: DeploymentEnvironment.DEV,
|
|
130
194
|
})
|
|
131
195
|
const errors = deployment.validate()
|
|
132
196
|
assert.lengthOf(errors, 0)
|