@api-client/core 0.18.46 → 0.18.48

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.
Files changed (35) hide show
  1. package/build/src/mocking/ModelingMock.d.ts +4 -2
  2. package/build/src/mocking/ModelingMock.d.ts.map +1 -1
  3. package/build/src/mocking/ModelingMock.js +4 -2
  4. package/build/src/mocking/ModelingMock.js.map +1 -1
  5. package/build/src/mocking/lib/File.d.ts +1 -0
  6. package/build/src/mocking/lib/File.d.ts.map +1 -1
  7. package/build/src/mocking/lib/File.js +1 -0
  8. package/build/src/mocking/lib/File.js.map +1 -1
  9. package/build/src/mocking/lib/Permission.d.ts +35 -0
  10. package/build/src/mocking/lib/Permission.d.ts.map +1 -0
  11. package/build/src/mocking/lib/Permission.js +89 -0
  12. package/build/src/mocking/lib/Permission.js.map +1 -0
  13. package/build/src/sdk/FilesSdk.js +1 -1
  14. package/build/src/sdk/FilesSdk.js.map +1 -1
  15. package/build/src/sdk/Sdk.d.ts +10 -2
  16. package/build/src/sdk/Sdk.d.ts.map +1 -1
  17. package/build/src/sdk/Sdk.js +12 -4
  18. package/build/src/sdk/Sdk.js.map +1 -1
  19. package/build/src/sdk/SdkMock.d.ts +73 -0
  20. package/build/src/sdk/SdkMock.d.ts.map +1 -1
  21. package/build/src/sdk/SdkMock.js +40 -36
  22. package/build/src/sdk/SdkMock.js.map +1 -1
  23. package/build/src/sdk/SharedSdk.js +1 -1
  24. package/build/src/sdk/SharedSdk.js.map +1 -1
  25. package/build/tsconfig.tsbuildinfo +1 -1
  26. package/data/models/example-generator-api.json +15 -15
  27. package/package.json +2 -2
  28. package/src/mocking/ModelingMock.ts +4 -2
  29. package/src/mocking/lib/File.ts +1 -0
  30. package/src/mocking/lib/Permission.ts +100 -0
  31. package/src/sdk/FilesSdk.ts +1 -1
  32. package/src/sdk/Sdk.ts +12 -4
  33. package/src/sdk/SdkMock.ts +41 -36
  34. package/src/sdk/SharedSdk.ts +1 -1
  35. package/tests/unit/mocking/current/Permission.spec.ts +285 -0
@@ -0,0 +1,285 @@
1
+ import { test } from '@japa/runner'
2
+ import { Permission } from '../../../../src/mocking/lib/Permission.js'
3
+ import { Kind as PermissionKind } from '../../../../src/models/store/Permission.js'
4
+ import type { IPermission } from '../../../../src/models/store/Permission.js'
5
+
6
+ test.group('permission()', (group) => {
7
+ let permission: Permission
8
+
9
+ group.each.setup(() => {
10
+ permission = new Permission()
11
+ })
12
+
13
+ test('returns an object', ({ assert }) => {
14
+ const result = permission.permission()
15
+ assert.typeOf(result, 'object')
16
+ })
17
+
18
+ test('has the {property} property of a type {type}')
19
+ .with([
20
+ { property: 'kind', type: 'string' },
21
+ { property: 'key', type: 'string' },
22
+ { property: 'type', type: 'string' },
23
+ { property: 'granteeId', type: 'string' },
24
+ { property: 'itemId', type: 'string' },
25
+ { property: 'role', type: 'string' },
26
+ { property: 'addingUser', type: 'string' },
27
+ { property: 'depth', type: 'number' },
28
+ { property: 'sourceRule', type: 'string' },
29
+ ])
30
+ .run(({ assert }, { property, type }) => {
31
+ const result = permission.permission()
32
+ assert.typeOf(result[property as keyof IPermission], type)
33
+ })
34
+
35
+ test('has the correct kind', ({ assert }) => {
36
+ const result = permission.permission()
37
+ assert.equal(result.kind, PermissionKind)
38
+ })
39
+
40
+ test('type is one of the valid values', ({ assert }) => {
41
+ const result = permission.permission()
42
+ assert.include(['user', 'group', 'organization'], result.type)
43
+ })
44
+
45
+ test('role is one of the valid values', ({ assert }) => {
46
+ const result = permission.permission()
47
+ assert.include(['reader', 'commenter', 'writer', 'owner'], result.role)
48
+ })
49
+
50
+ test('sourceRule is one of the valid values', ({ assert }) => {
51
+ const result = permission.permission()
52
+ assert.include(['direct_user_grant', 'creator_default_owner', 'parent_owner_editor_rule'], result.sourceRule)
53
+ })
54
+
55
+ test('uses passed key', ({ assert }) => {
56
+ const result = permission.permission({ key: 'custom-key' })
57
+ assert.equal(result.key, 'custom-key')
58
+ })
59
+
60
+ test('uses passed type', ({ assert }) => {
61
+ const result = permission.permission({ type: 'group' })
62
+ assert.equal(result.type, 'group')
63
+ })
64
+
65
+ test('uses passed granteeId', ({ assert }) => {
66
+ const result = permission.permission({ granteeId: 'grantee-123' })
67
+ assert.equal(result.granteeId, 'grantee-123')
68
+ })
69
+
70
+ test('uses passed itemId', ({ assert }) => {
71
+ const result = permission.permission({ itemId: 'item-456' })
72
+ assert.equal(result.itemId, 'item-456')
73
+ })
74
+
75
+ test('uses passed role', ({ assert }) => {
76
+ const result = permission.permission({ role: 'writer' })
77
+ assert.equal(result.role, 'writer')
78
+ })
79
+
80
+ test('uses passed addingUser', ({ assert }) => {
81
+ const result = permission.permission({ addingUser: 'user-789' })
82
+ assert.equal(result.addingUser, 'user-789')
83
+ })
84
+
85
+ test('uses passed depth', ({ assert }) => {
86
+ const result = permission.permission({ depth: 2 })
87
+ assert.equal(result.depth, 2)
88
+ })
89
+
90
+ test('uses passed sourceRule', ({ assert }) => {
91
+ const result = permission.permission({ sourceRule: 'creator_default_owner' })
92
+ assert.equal(result.sourceRule, 'creator_default_owner')
93
+ })
94
+
95
+ test('generates displayName by default', ({ assert }) => {
96
+ const result = permission.permission()
97
+ assert.typeOf(result.displayName, 'string')
98
+ })
99
+
100
+ test('uses passed displayName', ({ assert }) => {
101
+ const result = permission.permission({ displayName: 'John Doe' })
102
+ assert.equal(result.displayName, 'John Doe')
103
+ })
104
+
105
+ test('can explicitly set displayName to undefined', ({ assert }) => {
106
+ const result = permission.permission({ displayName: undefined })
107
+ assert.isUndefined(result.displayName)
108
+ })
109
+
110
+ test('generates expirationTime for user type by default', ({ assert }) => {
111
+ const result = permission.permission({ type: 'user' })
112
+ assert.typeOf(result.expirationTime, 'number')
113
+ })
114
+
115
+ test('generates expirationTime for group type by default', ({ assert }) => {
116
+ const result = permission.permission({ type: 'group' })
117
+ assert.typeOf(result.expirationTime, 'number')
118
+ })
119
+
120
+ test('does not generate expirationTime for organization type', ({ assert }) => {
121
+ const result = permission.permission({ type: 'organization' })
122
+ assert.isUndefined(result.expirationTime)
123
+ })
124
+
125
+ test('uses passed expirationTime', ({ assert }) => {
126
+ const time = Date.now() + 86400000
127
+ const result = permission.permission({ expirationTime: time })
128
+ assert.equal(result.expirationTime, time)
129
+ })
130
+
131
+ test('can explicitly set expirationTime to undefined', ({ assert }) => {
132
+ const result = permission.permission({ type: 'user', expirationTime: undefined })
133
+ assert.isUndefined(result.expirationTime)
134
+ })
135
+ })
136
+
137
+ test.group('userPermission()', (group) => {
138
+ let permission: Permission
139
+
140
+ group.each.setup(() => {
141
+ permission = new Permission()
142
+ })
143
+
144
+ test('returns an object', ({ assert }) => {
145
+ const result = permission.userPermission()
146
+ assert.typeOf(result, 'object')
147
+ })
148
+
149
+ test('has type set to user', ({ assert }) => {
150
+ const result = permission.userPermission()
151
+ assert.equal(result.type, 'user')
152
+ })
153
+
154
+ test('has displayName', ({ assert }) => {
155
+ const result = permission.userPermission()
156
+ assert.typeOf(result.displayName, 'string')
157
+ })
158
+
159
+ test('has expirationTime', ({ assert }) => {
160
+ const result = permission.userPermission()
161
+ assert.typeOf(result.expirationTime, 'number')
162
+ })
163
+
164
+ test('uses passed init values', ({ assert }) => {
165
+ const result = permission.userPermission({ role: 'owner', itemId: 'item-123' })
166
+ assert.equal(result.type, 'user')
167
+ assert.equal(result.role, 'owner')
168
+ assert.equal(result.itemId, 'item-123')
169
+ })
170
+ })
171
+
172
+ test.group('groupPermission()', (group) => {
173
+ let permission: Permission
174
+
175
+ group.each.setup(() => {
176
+ permission = new Permission()
177
+ })
178
+
179
+ test('returns an object', ({ assert }) => {
180
+ const result = permission.groupPermission()
181
+ assert.typeOf(result, 'object')
182
+ })
183
+
184
+ test('has type set to group', ({ assert }) => {
185
+ const result = permission.groupPermission()
186
+ assert.equal(result.type, 'group')
187
+ })
188
+
189
+ test('has displayName', ({ assert }) => {
190
+ const result = permission.groupPermission()
191
+ assert.typeOf(result.displayName, 'string')
192
+ })
193
+
194
+ test('has expirationTime', ({ assert }) => {
195
+ const result = permission.groupPermission()
196
+ assert.typeOf(result.expirationTime, 'number')
197
+ })
198
+
199
+ test('uses passed init values', ({ assert }) => {
200
+ const result = permission.groupPermission({ role: 'commenter', granteeId: 'group-456' })
201
+ assert.equal(result.type, 'group')
202
+ assert.equal(result.role, 'commenter')
203
+ assert.equal(result.granteeId, 'group-456')
204
+ })
205
+ })
206
+
207
+ test.group('organizationPermission()', (group) => {
208
+ let permission: Permission
209
+
210
+ group.each.setup(() => {
211
+ permission = new Permission()
212
+ })
213
+
214
+ test('returns an object', ({ assert }) => {
215
+ const result = permission.organizationPermission()
216
+ assert.typeOf(result, 'object')
217
+ })
218
+
219
+ test('has type set to organization', ({ assert }) => {
220
+ const result = permission.organizationPermission()
221
+ assert.equal(result.type, 'organization')
222
+ })
223
+
224
+ test('has displayName', ({ assert }) => {
225
+ const result = permission.organizationPermission()
226
+ assert.typeOf(result.displayName, 'string')
227
+ })
228
+
229
+ test('does not have expirationTime', ({ assert }) => {
230
+ const result = permission.organizationPermission()
231
+ assert.isUndefined(result.expirationTime)
232
+ })
233
+
234
+ test('uses passed init values', ({ assert }) => {
235
+ const result = permission.organizationPermission({ role: 'reader', addingUser: 'admin-789' })
236
+ assert.equal(result.type, 'organization')
237
+ assert.equal(result.role, 'reader')
238
+ assert.equal(result.addingUser, 'admin-789')
239
+ })
240
+ })
241
+
242
+ test.group('permissions()', (group) => {
243
+ let permission: Permission
244
+
245
+ group.each.setup(() => {
246
+ permission = new Permission()
247
+ })
248
+
249
+ test('returns an array', ({ assert }) => {
250
+ const result = permission.permissions()
251
+ assert.isArray(result)
252
+ })
253
+
254
+ test('returns 25 items by default', ({ assert }) => {
255
+ const result = permission.permissions()
256
+ assert.lengthOf(result, 25)
257
+ })
258
+
259
+ test('returns specified number of items', ({ assert }) => {
260
+ const result = permission.permissions(10)
261
+ assert.lengthOf(result, 10)
262
+ })
263
+
264
+ test('all items have the correct kind', ({ assert }) => {
265
+ const result = permission.permissions(5)
266
+ result.forEach((item) => {
267
+ assert.equal(item.kind, PermissionKind)
268
+ })
269
+ })
270
+
271
+ test('uses passed init values for all items', ({ assert }) => {
272
+ const result = permission.permissions(5, { type: 'user', role: 'owner' })
273
+ result.forEach((item) => {
274
+ assert.equal(item.type, 'user')
275
+ assert.equal(item.role, 'owner')
276
+ })
277
+ })
278
+
279
+ test('generates unique keys', ({ assert }) => {
280
+ const result = permission.permissions(10)
281
+ const keys = result.map((item) => item.key)
282
+ const uniqueKeys = new Set(keys)
283
+ assert.equal(keys.length, uniqueKeys.size)
284
+ })
285
+ })