@arrai-innovations/reactive-helpers 1.2.3 → 2.0.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.
@@ -1,5 +1,5 @@
1
1
  import flushPromises from "flush-promises";
2
- import { nextTick } from "vue";
2
+ import { nextTick, reactive, ref } from "vue";
3
3
  import { assignReactiveObject } from "../../../utils";
4
4
  import { expectErrorToBeNull } from "../expectHelpers";
5
5
  import { inspect } from "util";
@@ -96,21 +96,25 @@ describe("use/objectInstance.js", function () {
96
96
  const fields = ["id", "__str__", "name"];
97
97
  describe("retrieve", function () {
98
98
  it("success", async function () {
99
+ const id = ref(1);
100
+ const retrieveArgs = reactive({ fields });
99
101
  const objectInstance = useObjectInstance({
100
102
  crudArgs: { stream: "test_stream" },
103
+ id,
104
+ retrieveArgs,
101
105
  });
102
- objectInstance.state.objectInstanceCrud.retrieve = jest.fn();
106
+ objectInstance.state.crud.retrieve = jest.fn();
103
107
  let crudRetrieveResolve;
104
108
  const crudRetrievePromise = new Promise((resolve) => {
105
109
  crudRetrieveResolve = resolve;
106
110
  });
107
- objectInstance.state.objectInstanceCrud.retrieve.mockReturnValueOnce(crudRetrievePromise);
111
+ objectInstance.state.crud.retrieve.mockReturnValueOnce(crudRetrievePromise);
108
112
 
109
113
  expectErrorToBeNull(objectInstance.state.error);
110
114
  expect(objectInstance.state.errored).toBe(false);
111
115
  expect(objectInstance.state.loading).toBeUndefined();
112
116
  expect({ ...objectInstance.state.object }).toEqual({});
113
- const oiRetrieveResolve = objectInstance.retrieve({ id: 1, fields });
117
+ const oiRetrieveResolve = objectInstance.retrieve();
114
118
  expectErrorToBeNull(objectInstance.state.error);
115
119
  expect(objectInstance.state.errored).toBe(false);
116
120
  expect(objectInstance.state.loading).toBe(true);
@@ -122,31 +126,34 @@ describe("use/objectInstance.js", function () {
122
126
  expect(objectInstance.state.errored).toBe(false);
123
127
  expect(objectInstance.state.loading).toBe(false);
124
128
  expect({ ...objectInstance.state.object }).toEqual(crudRetrieveResolved);
125
- expect(objectInstance.state.objectInstanceCrud.retrieve).toHaveBeenCalledWith({
129
+ expect(objectInstance.state.crud.retrieve).toHaveBeenCalledWith({
126
130
  crudArgs: { stream: "test_stream" },
127
131
  id: 1,
128
132
  retrieveArgs: { fields: ["id", "__str__", "name"] },
129
133
  });
130
- expect(objectInstance.state.objectInstanceCrud.retrieve).toHaveBeenCalledTimes(1);
134
+ expect(objectInstance.state.crud.retrieve).toHaveBeenCalledTimes(1);
131
135
  await nextTick();
132
136
  await expect(oiRetrieveResolve).resolves.toBe(true);
133
137
  });
134
- it("success (defaultRetrieveArgs)", async function () {
138
+ it("success (retrieveArgs)", async function () {
139
+ const id = ref(1);
140
+ const retrieveArgs = reactive({ fields });
135
141
  const objectInstance = useObjectInstance({
136
142
  crudArgs: { stream: "test_stream" },
137
- retrieveArgs: { fields },
143
+ id,
144
+ retrieveArgs,
138
145
  });
139
- objectInstance.state.objectInstanceCrud.retrieve = jest.fn();
146
+ objectInstance.state.crud.retrieve = jest.fn();
140
147
  let crudRetrieveResolve;
141
148
  const crudRetrievePromise = new Promise((resolve) => {
142
149
  crudRetrieveResolve = resolve;
143
150
  });
144
- objectInstance.state.objectInstanceCrud.retrieve.mockReturnValueOnce(crudRetrievePromise);
151
+ objectInstance.state.crud.retrieve.mockReturnValueOnce(crudRetrievePromise);
145
152
  expectErrorToBeNull(objectInstance.state.error);
146
153
  expect(objectInstance.state.errored).toBe(false);
147
154
  expect(objectInstance.state.loading).toBeUndefined();
148
155
  expect({ ...objectInstance.state.object }).toEqual({});
149
- const oiRetrieveResolve = objectInstance.retrieve({ id: 1 });
156
+ const oiRetrieveResolve = objectInstance.retrieve();
150
157
  expectErrorToBeNull(objectInstance.state.error);
151
158
  expect(objectInstance.state.errored).toBe(false);
152
159
  expect(objectInstance.state.loading).toBe(true);
@@ -157,30 +164,34 @@ describe("use/objectInstance.js", function () {
157
164
  expect(objectInstance.state.errored).toBe(false);
158
165
  expect(objectInstance.state.loading).toBe(false);
159
166
  expect({ ...objectInstance.state.object }).toEqual(crudRetrieveResolved);
160
- expect(objectInstance.state.objectInstanceCrud.retrieve).toHaveBeenCalledWith({
167
+ expect(objectInstance.state.crud.retrieve).toHaveBeenCalledWith({
161
168
  crudArgs: { stream: "test_stream" },
162
169
  id: 1,
163
170
  retrieveArgs: { fields: ["id", "__str__", "name"] },
164
171
  });
165
- expect(objectInstance.state.objectInstanceCrud.retrieve).toHaveBeenCalledTimes(1);
172
+ expect(objectInstance.state.crud.retrieve).toHaveBeenCalledTimes(1);
166
173
  const returnValue = await oiRetrieveResolve;
167
174
  expect(returnValue).toBe(true);
168
175
  });
169
176
  it("errored", async function () {
177
+ const id = ref(1);
178
+ const retrieveArgs = reactive({ fields });
170
179
  const objectInstance = useObjectInstance({
171
180
  crudArgs: { stream: "test_stream" },
181
+ id,
182
+ retrieveArgs,
172
183
  });
173
- objectInstance.state.objectInstanceCrud.retrieve = jest.fn();
184
+ objectInstance.state.crud.retrieve = jest.fn();
174
185
  let crudRetrieveReject;
175
186
  const crudRetrievePromise = new Promise((resolve, reject) => {
176
187
  crudRetrieveReject = reject;
177
188
  });
178
- objectInstance.state.objectInstanceCrud.retrieve.mockReturnValueOnce(crudRetrievePromise);
189
+ objectInstance.state.crud.retrieve.mockReturnValueOnce(crudRetrievePromise);
179
190
  expectErrorToBeNull(objectInstance.state.error);
180
191
  expect(objectInstance.state.errored).toBe(false);
181
192
  expect(objectInstance.state.loading).toBeUndefined();
182
193
  expect({ ...objectInstance.state.object }).toEqual({});
183
- const oiRetrieveResolve = objectInstance.retrieve({ id: 1, fields });
194
+ const oiRetrieveResolve = objectInstance.retrieve();
184
195
  expectErrorToBeNull(objectInstance.state.error);
185
196
  expect(objectInstance.state.errored).toBe(false);
186
197
  expect(objectInstance.state.loading).toBe(true);
@@ -191,33 +202,37 @@ describe("use/objectInstance.js", function () {
191
202
  expect(objectInstance.state.errored).toBe(true);
192
203
  expect(objectInstance.state.loading).toBe(false);
193
204
  expect({ ...objectInstance.state.object }).toEqual({});
194
- expect(objectInstance.state.objectInstanceCrud.retrieve).toHaveBeenCalledWith({
205
+ expect(objectInstance.state.crud.retrieve).toHaveBeenCalledWith({
195
206
  crudArgs: { stream: "test_stream" },
196
207
  id: 1,
197
208
  retrieveArgs: { fields: ["id", "__str__", "name"] },
198
209
  });
199
- expect(objectInstance.state.objectInstanceCrud.retrieve).toHaveBeenCalledTimes(1);
210
+ expect(objectInstance.state.crud.retrieve).toHaveBeenCalledTimes(1);
200
211
  const returnValue = await oiRetrieveResolve;
201
212
  expect(returnValue).toBe(false);
202
213
  });
203
214
  it("already loading", async function () {
215
+ const id = ref(1);
216
+ const retrieveArgs = reactive({ fields });
204
217
  const objectInstance = useObjectInstance({
205
218
  crudArgs: { stream: "test_stream" },
219
+ id,
220
+ retrieveArgs,
206
221
  });
207
- objectInstance.state.objectInstanceCrud.retrieve = jest.fn();
208
- objectInstance.state.objectInstanceCrud.retrieve.mockImplementation(() => new Promise(() => {}));
222
+ objectInstance.state.crud.retrieve = jest.fn();
223
+ objectInstance.state.crud.retrieve.mockImplementation(() => new Promise(() => {}));
209
224
  expectErrorToBeNull(objectInstance.state.error);
210
225
  expect(objectInstance.state.errored).toBe(false);
211
226
  expect(objectInstance.state.loading).toBeUndefined();
212
227
  expect({ ...objectInstance.state.object }).toEqual({});
213
- objectInstance.retrieve({ id: 1, fields });
214
- await expect(() => objectInstance.retrieve({ id: 1, fields })).rejects.toThrow(ObjectError);
215
- expect(objectInstance.state.objectInstanceCrud.retrieve).toHaveBeenCalledWith({
228
+ objectInstance.retrieve();
229
+ await expect(() => objectInstance.retrieve()).rejects.toThrow(ObjectError);
230
+ expect(objectInstance.state.crud.retrieve).toHaveBeenCalledWith({
216
231
  crudArgs: { stream: "test_stream" },
217
232
  id: 1,
218
233
  retrieveArgs: { fields: ["id", "__str__", "name"] },
219
234
  });
220
- expect(objectInstance.state.objectInstanceCrud.retrieve).toHaveBeenCalledTimes(1);
235
+ expect(objectInstance.state.crud.retrieve).toHaveBeenCalledTimes(1);
221
236
  expectErrorToBeNull(objectInstance.state.error);
222
237
  expect(objectInstance.state.errored).toBe(false);
223
238
  expect(objectInstance.state.loading).toBe(true);
@@ -226,15 +241,19 @@ describe("use/objectInstance.js", function () {
226
241
  });
227
242
  describe("create", function () {
228
243
  it("success", async function () {
244
+ const id = ref(1);
245
+ const retrieveArgs = reactive({ fields });
229
246
  const objectInstance = useObjectInstance({
230
247
  crudArgs: { stream: "test_stream" },
248
+ id,
249
+ retrieveArgs,
231
250
  });
232
- objectInstance.state.objectInstanceCrud.create = jest.fn();
251
+ objectInstance.state.crud.create = jest.fn();
233
252
  let crudCreateResolve;
234
253
  const crudCreatePromise = new Promise((resolve) => {
235
254
  crudCreateResolve = resolve;
236
255
  });
237
- objectInstance.state.objectInstanceCrud.create.mockReturnValueOnce(crudCreatePromise);
256
+ objectInstance.state.crud.create.mockReturnValueOnce(crudCreatePromise);
238
257
  expectErrorToBeNull(objectInstance.state.error);
239
258
  expect(objectInstance.state.errored).toBe(false);
240
259
  expect(objectInstance.state.loading).toBeUndefined();
@@ -256,7 +275,7 @@ describe("use/objectInstance.js", function () {
256
275
  expect(objectInstance.state.errored).toBe(false);
257
276
  expect(objectInstance.state.loading).toBe(false);
258
277
  expect({ ...objectInstance.state.object }).toEqual(crudCreateResolved);
259
- expect(objectInstance.state.objectInstanceCrud.create).toHaveBeenCalledWith({
278
+ expect(objectInstance.state.crud.create).toHaveBeenCalledWith({
260
279
  crudArgs: {
261
280
  stream: "test_stream",
262
281
  },
@@ -265,21 +284,24 @@ describe("use/objectInstance.js", function () {
265
284
  },
266
285
  retrieveArgs: { fields: ["id", "__str__", "name"] },
267
286
  });
268
- expect(objectInstance.state.objectInstanceCrud.create).toHaveBeenCalledTimes(1);
287
+ expect(objectInstance.state.crud.create).toHaveBeenCalledTimes(1);
269
288
  await nextTick();
270
289
  await expect(oiCreateResolve).resolves.toBe(true);
271
290
  });
272
- it("success (defaultRetrieveArgs)", async function () {
291
+ it("success (retrieveArgs)", async function () {
292
+ const id = ref(undefined);
293
+ const retrieveArgs = reactive({ fields });
273
294
  const objectInstance = useObjectInstance({
274
295
  crudArgs: { stream: "test_stream" },
275
- retrieveArgs: { fields },
296
+ id,
297
+ retrieveArgs,
276
298
  });
277
- objectInstance.state.objectInstanceCrud.create = jest.fn();
299
+ objectInstance.state.crud.create = jest.fn();
278
300
  let crudCreateResolve;
279
301
  const crudCreatePromise = new Promise((resolve) => {
280
302
  crudCreateResolve = resolve;
281
303
  });
282
- objectInstance.state.objectInstanceCrud.create.mockReturnValueOnce(crudCreatePromise);
304
+ objectInstance.state.crud.create.mockReturnValueOnce(crudCreatePromise);
283
305
  expectErrorToBeNull(objectInstance.state.error);
284
306
  expect(objectInstance.state.errored).toBe(false);
285
307
  expect(objectInstance.state.loading).toBeUndefined();
@@ -299,7 +321,7 @@ describe("use/objectInstance.js", function () {
299
321
  expect(objectInstance.state.errored).toBe(false);
300
322
  expect(objectInstance.state.loading).toBe(false);
301
323
  expect({ ...objectInstance.state.object }).toEqual(crudCreateResolved);
302
- expect(objectInstance.state.objectInstanceCrud.create).toHaveBeenCalledWith({
324
+ expect(objectInstance.state.crud.create).toHaveBeenCalledWith({
303
325
  crudArgs: {
304
326
  stream: "test_stream",
305
327
  },
@@ -308,20 +330,24 @@ describe("use/objectInstance.js", function () {
308
330
  },
309
331
  retrieveArgs: { fields: ["id", "__str__", "name"] },
310
332
  });
311
- expect(objectInstance.state.objectInstanceCrud.create).toHaveBeenCalledTimes(1);
333
+ expect(objectInstance.state.crud.create).toHaveBeenCalledTimes(1);
312
334
  const returnValue = await oiCreateResolve;
313
335
  expect(returnValue).toBe(true);
314
336
  });
315
337
  it("errored", async function () {
338
+ const id = ref(undefined);
339
+ const retrieveArgs = reactive({ fields });
316
340
  const objectInstance = useObjectInstance({
317
341
  crudArgs: { stream: "test_stream" },
342
+ id,
343
+ retrieveArgs,
318
344
  });
319
- objectInstance.state.objectInstanceCrud.create = jest.fn();
345
+ objectInstance.state.crud.create = jest.fn();
320
346
  let crudCreateReject;
321
347
  const crudCreatePromise = new Promise((resolve, reject) => {
322
348
  crudCreateReject = reject;
323
349
  });
324
- objectInstance.state.objectInstanceCrud.create.mockReturnValueOnce(crudCreatePromise);
350
+ objectInstance.state.crud.create.mockReturnValueOnce(crudCreatePromise);
325
351
  expectErrorToBeNull(objectInstance.state.error);
326
352
  expect(objectInstance.state.errored).toBe(false);
327
353
  expect(objectInstance.state.loading).toBeUndefined();
@@ -342,7 +368,7 @@ describe("use/objectInstance.js", function () {
342
368
  expect(objectInstance.state.errored).toBe(true);
343
369
  expect(objectInstance.state.loading).toBe(false);
344
370
  expect({ ...objectInstance.state.object }).toEqual({});
345
- expect(objectInstance.state.objectInstanceCrud.create).toHaveBeenCalledWith({
371
+ expect(objectInstance.state.crud.create).toHaveBeenCalledWith({
346
372
  crudArgs: {
347
373
  stream: "test_stream",
348
374
  },
@@ -351,17 +377,21 @@ describe("use/objectInstance.js", function () {
351
377
  },
352
378
  retrieveArgs: { fields: ["id", "__str__", "name"] },
353
379
  });
354
- expect(objectInstance.state.objectInstanceCrud.create).toHaveBeenCalledTimes(1);
380
+ expect(objectInstance.state.crud.create).toHaveBeenCalledTimes(1);
355
381
  const returnValue = await oiCreateResolve;
356
382
  expect(returnValue).toBe(false);
357
383
  });
358
384
  it("already loading", async function () {
385
+ const id = ref(1);
386
+ const retrieveArgs = reactive({ fields });
359
387
  const objectInstance = useObjectInstance({
360
388
  crudArgs: { stream: "test_stream" },
389
+ id,
390
+ retrieveArgs,
361
391
  });
362
- objectInstance.state.objectInstanceCrud.create = jest.fn();
392
+ objectInstance.state.crud.create = jest.fn();
363
393
  const crudCreatePromise = new Promise(() => {});
364
- objectInstance.state.objectInstanceCrud.create.mockReturnValueOnce(crudCreatePromise);
394
+ objectInstance.state.crud.create.mockReturnValueOnce(crudCreatePromise);
365
395
  expectErrorToBeNull(objectInstance.state.error);
366
396
  expect(objectInstance.state.errored).toBe(false);
367
397
  expect(objectInstance.state.loading).toBeUndefined();
@@ -370,17 +400,15 @@ describe("use/objectInstance.js", function () {
370
400
  object: {
371
401
  name: "qwer",
372
402
  },
373
- fields,
374
403
  });
375
404
  await expect(() =>
376
405
  objectInstance.create({
377
406
  object: {
378
407
  name: "qwer",
379
408
  },
380
- fields,
381
409
  })
382
410
  ).rejects.toThrow(ObjectError);
383
- expect(objectInstance.state.objectInstanceCrud.create).toHaveBeenCalledWith({
411
+ expect(objectInstance.state.crud.create).toHaveBeenCalledWith({
384
412
  crudArgs: {
385
413
  stream: "test_stream",
386
414
  },
@@ -389,7 +417,7 @@ describe("use/objectInstance.js", function () {
389
417
  },
390
418
  retrieveArgs: { fields: ["id", "__str__", "name"] },
391
419
  });
392
- expect(objectInstance.state.objectInstanceCrud.create).toHaveBeenCalledTimes(1);
420
+ expect(objectInstance.state.crud.create).toHaveBeenCalledTimes(1);
393
421
  expectErrorToBeNull(objectInstance.state.error);
394
422
  expect(objectInstance.state.errored).toBe(false);
395
423
  expect(objectInstance.state.loading).toBe(true);
@@ -398,15 +426,19 @@ describe("use/objectInstance.js", function () {
398
426
  });
399
427
  describe("update", function () {
400
428
  it("success", async function () {
429
+ const id = ref(1);
430
+ const retrieveArgs = reactive({ fields });
401
431
  const objectInstance = useObjectInstance({
402
432
  crudArgs: { stream: "test_stream" },
433
+ id,
434
+ retrieveArgs,
403
435
  });
404
436
  let crudUpdateResolve;
405
437
  const crudUpdatePromise = new Promise((resolve) => {
406
438
  crudUpdateResolve = resolve;
407
439
  });
408
- objectInstance.state.objectInstanceCrud.update = jest.fn();
409
- objectInstance.state.objectInstanceCrud.update.mockReturnValueOnce(crudUpdatePromise);
440
+ objectInstance.state.crud.update = jest.fn();
441
+ objectInstance.state.crud.update.mockReturnValueOnce(crudUpdatePromise);
410
442
  expectErrorToBeNull(objectInstance.state.error);
411
443
  expect(objectInstance.state.errored).toBe(false);
412
444
  expect(objectInstance.state.loading).toBeUndefined();
@@ -416,7 +448,6 @@ describe("use/objectInstance.js", function () {
416
448
  id: 1,
417
449
  name: "zxcv!",
418
450
  },
419
- fields,
420
451
  });
421
452
  expectErrorToBeNull(objectInstance.state.error);
422
453
  expect(objectInstance.state.errored).toBe(false);
@@ -431,7 +462,7 @@ describe("use/objectInstance.js", function () {
431
462
  expect({ ...objectInstance.state.object }).toEqual(crudUpdateResolved);
432
463
  await nextTick();
433
464
  await expect(oiUpdatePromise).resolves.toBe(true);
434
- expect(objectInstance.state.objectInstanceCrud.update).toHaveBeenCalledWith({
465
+ expect(objectInstance.state.crud.update).toHaveBeenCalledWith({
435
466
  crudArgs: {
436
467
  stream: "test_stream",
437
468
  },
@@ -441,19 +472,22 @@ describe("use/objectInstance.js", function () {
441
472
  },
442
473
  retrieveArgs: { fields: ["id", "__str__", "name"] },
443
474
  });
444
- expect(objectInstance.state.objectInstanceCrud.update).toHaveBeenCalledTimes(1);
475
+ expect(objectInstance.state.crud.update).toHaveBeenCalledTimes(1);
445
476
  });
446
- it("success (defaultRetrieveArgs)", async function () {
477
+ it("success (retrieveArgs)", async function () {
478
+ const id = ref(1);
479
+ const retrieveArgs = reactive({ fields });
447
480
  const objectInstance = useObjectInstance({
448
481
  crudArgs: { stream: "test_stream" },
449
- retrieveArgs: { fields },
482
+ id,
483
+ retrieveArgs,
450
484
  });
451
485
  let crudUpdateResolve;
452
486
  const crudUpdatePromise = new Promise((resolve) => {
453
487
  crudUpdateResolve = resolve;
454
488
  });
455
- objectInstance.state.objectInstanceCrud.update = jest.fn();
456
- objectInstance.state.objectInstanceCrud.update.mockReturnValueOnce(crudUpdatePromise);
489
+ objectInstance.state.crud.update = jest.fn();
490
+ objectInstance.state.crud.update.mockReturnValueOnce(crudUpdatePromise);
457
491
  expectErrorToBeNull(objectInstance.state.error);
458
492
  expect(objectInstance.state.errored).toBe(false);
459
493
  expect(objectInstance.state.loading).toBeUndefined();
@@ -475,7 +509,7 @@ describe("use/objectInstance.js", function () {
475
509
  expect(objectInstance.state.loading).toBe(false);
476
510
  expect({ ...objectInstance.state.object }).toEqual(crudUpdateResolved);
477
511
  await expect(oiUpdatePromise).resolves.toBe(true);
478
- expect(objectInstance.state.objectInstanceCrud.update).toHaveBeenCalledWith({
512
+ expect(objectInstance.state.crud.update).toHaveBeenCalledWith({
479
513
  crudArgs: {
480
514
  stream: "test_stream",
481
515
  },
@@ -485,18 +519,22 @@ describe("use/objectInstance.js", function () {
485
519
  },
486
520
  retrieveArgs: { fields: ["id", "__str__", "name"] },
487
521
  });
488
- expect(objectInstance.state.objectInstanceCrud.update).toHaveBeenCalledTimes(1);
522
+ expect(objectInstance.state.crud.update).toHaveBeenCalledTimes(1);
489
523
  });
490
524
  it("errored", async function () {
525
+ const id = ref(1);
526
+ const retrieveArgs = reactive({ fields });
491
527
  const objectInstance = useObjectInstance({
492
528
  crudArgs: { stream: "test_stream" },
529
+ id,
530
+ retrieveArgs,
493
531
  });
494
532
  let crudUpdateReject;
495
533
  const crudUpdatePromise = new Promise((resolve, reject) => {
496
534
  crudUpdateReject = reject;
497
535
  });
498
- objectInstance.state.objectInstanceCrud.update = jest.fn();
499
- objectInstance.state.objectInstanceCrud.update.mockReturnValueOnce(crudUpdatePromise);
536
+ objectInstance.state.crud.update = jest.fn();
537
+ objectInstance.state.crud.update.mockReturnValueOnce(crudUpdatePromise);
500
538
  expectErrorToBeNull(objectInstance.state.error);
501
539
  expect(objectInstance.state.errored).toBe(false);
502
540
  expect(objectInstance.state.loading).toBeUndefined();
@@ -506,7 +544,6 @@ describe("use/objectInstance.js", function () {
506
544
  id: 1,
507
545
  name: "zxcv!",
508
546
  },
509
- fields,
510
547
  });
511
548
  expectErrorToBeNull(objectInstance.state.error);
512
549
  expect(objectInstance.state.errored).toBe(false);
@@ -519,7 +556,7 @@ describe("use/objectInstance.js", function () {
519
556
  expect(objectInstance.state.loading).toBe(false);
520
557
  expect({ ...objectInstance.state.object }).toEqual({});
521
558
  await expect(oiUpdatePromise).resolves.toBe(false);
522
- expect(objectInstance.state.objectInstanceCrud.update).toHaveBeenCalledWith({
559
+ expect(objectInstance.state.crud.update).toHaveBeenCalledWith({
523
560
  crudArgs: {
524
561
  stream: "test_stream",
525
562
  },
@@ -529,15 +566,19 @@ describe("use/objectInstance.js", function () {
529
566
  },
530
567
  retrieveArgs: { fields: ["id", "__str__", "name"] },
531
568
  });
532
- expect(objectInstance.state.objectInstanceCrud.update).toHaveBeenCalledTimes(1);
569
+ expect(objectInstance.state.crud.update).toHaveBeenCalledTimes(1);
533
570
  });
534
571
  it("already loading", async function () {
572
+ const id = ref(1);
573
+ const retrieveArgs = reactive({ fields });
535
574
  const objectInstance = useObjectInstance({
536
575
  crudArgs: { stream: "test_stream" },
576
+ id,
577
+ retrieveArgs,
537
578
  });
538
579
  const crudUpdatePromise = new Promise(() => {});
539
- objectInstance.state.objectInstanceCrud.update = jest.fn();
540
- objectInstance.state.objectInstanceCrud.update.mockReturnValueOnce(crudUpdatePromise);
580
+ objectInstance.state.crud.update = jest.fn();
581
+ objectInstance.state.crud.update.mockReturnValueOnce(crudUpdatePromise);
541
582
  expectErrorToBeNull(objectInstance.state.error);
542
583
  expect(objectInstance.state.errored).toBe(false);
543
584
  expect(objectInstance.state.loading).toBeUndefined();
@@ -547,7 +588,6 @@ describe("use/objectInstance.js", function () {
547
588
  id: 1,
548
589
  name: "zxcv!",
549
590
  },
550
- fields,
551
591
  });
552
592
  await expect(() =>
553
593
  objectInstance.update({
@@ -555,14 +595,13 @@ describe("use/objectInstance.js", function () {
555
595
  id: 1,
556
596
  name: "zxcv!",
557
597
  },
558
- fields,
559
598
  })
560
599
  ).rejects.toThrow(ObjectError);
561
600
  expectErrorToBeNull(objectInstance.state.error);
562
601
  expect(objectInstance.state.errored).toBe(false);
563
602
  expect(objectInstance.state.loading).toBe(true);
564
603
  expect({ ...objectInstance.state.object }).toEqual({});
565
- expect(objectInstance.state.objectInstanceCrud.update).toHaveBeenCalledWith({
604
+ expect(objectInstance.state.crud.update).toHaveBeenCalledWith({
566
605
  crudArgs: {
567
606
  stream: "test_stream",
568
607
  },
@@ -572,31 +611,33 @@ describe("use/objectInstance.js", function () {
572
611
  },
573
612
  retrieveArgs: { fields: ["id", "__str__", "name"] },
574
613
  });
575
- expect(objectInstance.state.objectInstanceCrud.update).toHaveBeenCalledTimes(1);
614
+ expect(objectInstance.state.crud.update).toHaveBeenCalledTimes(1);
576
615
  });
577
616
  });
578
617
  describe("patch", function () {
579
618
  it("success", async function () {
619
+ const id = ref(1);
620
+ const retrieveArgs = reactive({ fields });
580
621
  const objectInstance = useObjectInstance({
581
622
  crudArgs: { stream: "test_stream" },
623
+ id,
624
+ retrieveArgs,
582
625
  });
583
626
  let crudPatchResolve;
584
627
  const crudPatchPromise = new Promise((resolve) => {
585
628
  crudPatchResolve = resolve;
586
629
  });
587
- objectInstance.state.objectInstanceCrud.patch = jest.fn();
588
- objectInstance.state.objectInstanceCrud.patch.mockReturnValueOnce(crudPatchPromise);
630
+ objectInstance.state.crud.patch = jest.fn();
631
+ objectInstance.state.crud.patch.mockReturnValueOnce(crudPatchPromise);
589
632
  expectErrorToBeNull(objectInstance.state.error);
590
633
  expect(objectInstance.state.errored).toBe(false);
591
634
  expect(objectInstance.state.loading).toBeUndefined();
592
635
  expect({ ...objectInstance.state.object }).toEqual({});
593
636
  const oiPatchPromise = objectInstance.patch({
594
- id: 1,
595
637
  partialObject: {
596
638
  id: 1,
597
639
  name: "zxcv!",
598
640
  },
599
- fields,
600
641
  });
601
642
  expectErrorToBeNull(objectInstance.state.error);
602
643
  expect(objectInstance.state.errored).toBe(false);
@@ -611,53 +652,7 @@ describe("use/objectInstance.js", function () {
611
652
  expect({ ...objectInstance.state.object }).toEqual(crudPatchResolved);
612
653
  await nextTick();
613
654
  await expect(oiPatchPromise).resolves.toBe(true);
614
- expect(objectInstance.state.objectInstanceCrud.patch).toHaveBeenCalledWith({
615
- crudArgs: {
616
- stream: "test_stream",
617
- },
618
- id: 1,
619
- partialObject: {
620
- id: 1,
621
- name: "zxcv!",
622
- },
623
- retrieveArgs: { fields: ["id", "__str__", "name"] },
624
- });
625
- expect(objectInstance.state.objectInstanceCrud.patch).toHaveBeenCalledTimes(1);
626
- });
627
- it("success (defaultRetrieveArgs)", async function () {
628
- const objectInstance = useObjectInstance({
629
- crudArgs: { stream: "test_stream" },
630
- retrieveArgs: { fields },
631
- });
632
- let crudPatchResolve;
633
- const crudPatchPromise = new Promise((resolve) => {
634
- crudPatchResolve = resolve;
635
- });
636
- objectInstance.state.objectInstanceCrud.patch = jest.fn();
637
- objectInstance.state.objectInstanceCrud.patch.mockReturnValueOnce(crudPatchPromise);
638
- expectErrorToBeNull(objectInstance.state.error);
639
- expect(objectInstance.state.errored).toBe(false);
640
- expect(objectInstance.state.loading).toBeUndefined();
641
- expect({ ...objectInstance.state.object }).toEqual({});
642
- const oiPatchPromise = objectInstance.patch({
643
- id: 1,
644
- partialObject: {
645
- id: 1,
646
- name: "zxcv!",
647
- },
648
- });
649
- expectErrorToBeNull(objectInstance.state.error);
650
- expect(objectInstance.state.errored).toBe(false);
651
- expect(objectInstance.state.loading).toBe(true);
652
- expect({ ...objectInstance.state.object }).toEqual({});
653
- crudPatchResolve(crudPatchResolved);
654
- await flushPromises();
655
- expectErrorToBeNull(objectInstance.state.error);
656
- expect(objectInstance.state.errored).toBe(false);
657
- expect(objectInstance.state.loading).toBe(false);
658
- expect({ ...objectInstance.state.object }).toEqual(crudPatchResolved);
659
- await expect(oiPatchPromise).resolves.toBe(true);
660
- expect(objectInstance.state.objectInstanceCrud.patch).toHaveBeenCalledWith({
655
+ expect(objectInstance.state.crud.patch).toHaveBeenCalledWith({
661
656
  crudArgs: {
662
657
  stream: "test_stream",
663
658
  },
@@ -668,29 +663,31 @@ describe("use/objectInstance.js", function () {
668
663
  },
669
664
  retrieveArgs: { fields: ["id", "__str__", "name"] },
670
665
  });
671
- expect(objectInstance.state.objectInstanceCrud.patch).toHaveBeenCalledTimes(1);
666
+ expect(objectInstance.state.crud.patch).toHaveBeenCalledTimes(1);
672
667
  });
673
668
  it("errored", async function () {
669
+ const id = ref(1);
670
+ const retrieveArgs = reactive({ fields });
674
671
  const objectInstance = useObjectInstance({
675
672
  crudArgs: { stream: "test_stream" },
673
+ id,
674
+ retrieveArgs,
676
675
  });
677
676
  let crudPatchReject;
678
677
  const crudPatchPromise = new Promise((resolve, reject) => {
679
678
  crudPatchReject = reject;
680
679
  });
681
- objectInstance.state.objectInstanceCrud.patch = jest.fn();
682
- objectInstance.state.objectInstanceCrud.patch.mockReturnValueOnce(crudPatchPromise);
680
+ objectInstance.state.crud.patch = jest.fn();
681
+ objectInstance.state.crud.patch.mockReturnValueOnce(crudPatchPromise);
683
682
  expectErrorToBeNull(objectInstance.state.error);
684
683
  expect(objectInstance.state.errored).toBe(false);
685
684
  expect(objectInstance.state.loading).toBeUndefined();
686
685
  expect({ ...objectInstance.state.object }).toEqual({});
687
686
  const oiPatchPromise = objectInstance.patch({
688
- id: 1,
689
687
  partialObject: {
690
688
  id: 1,
691
689
  name: "zxcv!",
692
690
  },
693
- fields,
694
691
  });
695
692
  expectErrorToBeNull(objectInstance.state.error);
696
693
  expect(objectInstance.state.errored).toBe(false);
@@ -703,7 +700,7 @@ describe("use/objectInstance.js", function () {
703
700
  expect(objectInstance.state.loading).toBe(false);
704
701
  expect({ ...objectInstance.state.object }).toEqual({});
705
702
  await expect(oiPatchPromise).resolves.toBe(false);
706
- expect(objectInstance.state.objectInstanceCrud.patch).toHaveBeenCalledWith({
703
+ expect(objectInstance.state.crud.patch).toHaveBeenCalledWith({
707
704
  crudArgs: {
708
705
  stream: "test_stream",
709
706
  },
@@ -714,34 +711,34 @@ describe("use/objectInstance.js", function () {
714
711
  },
715
712
  retrieveArgs: { fields: ["id", "__str__", "name"] },
716
713
  });
717
- expect(objectInstance.state.objectInstanceCrud.patch).toHaveBeenCalledTimes(1);
714
+ expect(objectInstance.state.crud.patch).toHaveBeenCalledTimes(1);
718
715
  });
719
716
  it("already loading", async function () {
717
+ const id = ref(1);
718
+ const retrieveArgs = reactive({ fields });
720
719
  const objectInstance = useObjectInstance({
721
720
  crudArgs: { stream: "test_stream" },
721
+ id,
722
+ retrieveArgs,
722
723
  });
723
724
  const crudPatchPromise = new Promise(() => {});
724
- objectInstance.state.objectInstanceCrud.patch = jest.fn();
725
- objectInstance.state.objectInstanceCrud.patch.mockReturnValueOnce(crudPatchPromise);
725
+ objectInstance.state.crud.patch = jest.fn();
726
+ objectInstance.state.crud.patch.mockReturnValueOnce(crudPatchPromise);
726
727
  objectInstance.patch({
727
- id: 1,
728
728
  partialObject: {
729
729
  id: 1,
730
730
  name: "zxcv!",
731
731
  },
732
- fields,
733
732
  });
734
733
  await expect(() =>
735
734
  objectInstance.patch({
736
- id: 1,
737
735
  partialObject: {
738
736
  id: 1,
739
737
  name: "zxcv!",
740
738
  },
741
- fields,
742
739
  })
743
740
  ).rejects.toThrow(ObjectError);
744
- expect(objectInstance.state.objectInstanceCrud.patch).toHaveBeenCalledWith({
741
+ expect(objectInstance.state.crud.patch).toHaveBeenCalledWith({
745
742
  crudArgs: {
746
743
  stream: "test_stream",
747
744
  },
@@ -752,21 +749,25 @@ describe("use/objectInstance.js", function () {
752
749
  },
753
750
  retrieveArgs: { fields: ["id", "__str__", "name"] },
754
751
  });
755
- expect(objectInstance.state.objectInstanceCrud.patch).toHaveBeenCalledTimes(1);
752
+ expect(objectInstance.state.crud.patch).toHaveBeenCalledTimes(1);
756
753
  });
757
754
  });
758
755
  describe("delete", function () {
759
756
  it("success", async function () {
757
+ const id = ref(1);
758
+ const retrieveArgs = reactive({ fields });
760
759
  const objectInstance = useObjectInstance({
761
760
  crudArgs: { stream: "test_stream" },
761
+ id,
762
+ retrieveArgs,
762
763
  });
763
764
  assignReactiveObject(objectInstance.state.object, crudRetrieveResolved);
764
765
  let deleteResolve;
765
766
  const deletePromise = new Promise((resolve) => {
766
767
  deleteResolve = resolve;
767
768
  });
768
- objectInstance.state.objectInstanceCrud.delete = jest.fn();
769
- objectInstance.state.objectInstanceCrud.delete.mockReturnValueOnce(deletePromise);
769
+ objectInstance.state.crud.delete = jest.fn();
770
+ objectInstance.state.crud.delete.mockReturnValueOnce(deletePromise);
770
771
 
771
772
  expectErrorToBeNull(objectInstance.state.error);
772
773
  expect(objectInstance.state.errored).toBe(false);
@@ -774,7 +775,7 @@ describe("use/objectInstance.js", function () {
774
775
  expect(objectInstance.state.deleted).toBe(false);
775
776
  expect({ ...objectInstance.state.object }).toEqual(crudRetrieveResolved);
776
777
 
777
- const returnsPromise = objectInstance.delete(1);
778
+ const returnsPromise = objectInstance.delete();
778
779
 
779
780
  expectErrorToBeNull(objectInstance.state.error);
780
781
  expect(objectInstance.state.errored).toBe(false);
@@ -794,23 +795,27 @@ describe("use/objectInstance.js", function () {
794
795
  await nextTick();
795
796
 
796
797
  await expect(returnsPromise).resolves.toBe(true);
797
- expect(objectInstance.state.objectInstanceCrud.delete).toHaveBeenCalledWith({
798
+ expect(objectInstance.state.crud.delete).toHaveBeenCalledWith({
798
799
  crudArgs: { stream: "test_stream" },
799
800
  id: 1,
800
801
  });
801
- expect(objectInstance.state.objectInstanceCrud.delete).toHaveBeenCalledTimes(1);
802
+ expect(objectInstance.state.crud.delete).toHaveBeenCalledTimes(1);
802
803
  });
803
804
  it("errored", async function () {
805
+ const id = ref(1);
806
+ const retrieveArgs = reactive({ fields });
804
807
  const objectInstance = useObjectInstance({
805
808
  crudArgs: { stream: "test_stream" },
809
+ id,
810
+ retrieveArgs,
806
811
  });
807
812
  assignReactiveObject(objectInstance.state.object, crudRetrieveResolved);
808
813
  let deleteReject;
809
814
  const deletePromise = new Promise((resolve, reject) => {
810
815
  deleteReject = reject;
811
816
  });
812
- objectInstance.state.objectInstanceCrud.delete = jest.fn();
813
- objectInstance.state.objectInstanceCrud.delete.mockReturnValueOnce(deletePromise);
817
+ objectInstance.state.crud.delete = jest.fn();
818
+ objectInstance.state.crud.delete.mockReturnValueOnce(deletePromise);
814
819
 
815
820
  expectErrorToBeNull(objectInstance.state.error);
816
821
  expect(objectInstance.state.errored).toBe(false);
@@ -818,7 +823,7 @@ describe("use/objectInstance.js", function () {
818
823
  expect(objectInstance.state.deleted).toBe(false);
819
824
  expect({ ...objectInstance.state.object }).toEqual(crudRetrieveResolved);
820
825
 
821
- const returnsPromise = objectInstance.delete(1);
826
+ const returnsPromise = objectInstance.delete();
822
827
 
823
828
  expectErrorToBeNull(objectInstance.state.error);
824
829
  expect(objectInstance.state.errored).toBe(false);
@@ -838,26 +843,30 @@ describe("use/objectInstance.js", function () {
838
843
  await nextTick();
839
844
 
840
845
  await expect(returnsPromise).resolves.toBe(false);
841
- expect(objectInstance.state.objectInstanceCrud.delete).toHaveBeenCalledWith({
846
+ expect(objectInstance.state.crud.delete).toHaveBeenCalledWith({
842
847
  crudArgs: { stream: "test_stream" },
843
848
  id: 1,
844
849
  });
845
- expect(objectInstance.state.objectInstanceCrud.delete).toHaveBeenCalledTimes(1);
850
+ expect(objectInstance.state.crud.delete).toHaveBeenCalledTimes(1);
846
851
  });
847
852
  it("already loading", async function () {
853
+ const id = ref(1);
854
+ const retrieveArgs = reactive({ fields });
848
855
  const objectInstance = useObjectInstance({
849
856
  crudArgs: { stream: "test_stream" },
857
+ id,
858
+ retrieveArgs,
850
859
  });
851
860
  const deletePromise = new Promise(() => {});
852
- objectInstance.state.objectInstanceCrud.delete = jest.fn();
853
- objectInstance.state.objectInstanceCrud.delete.mockReturnValueOnce(deletePromise);
861
+ objectInstance.state.crud.delete = jest.fn();
862
+ objectInstance.state.crud.delete.mockReturnValueOnce(deletePromise);
854
863
  objectInstance.delete(1);
855
- await expect(() => objectInstance.delete(1)).rejects.toThrow(ObjectError);
856
- expect(objectInstance.state.objectInstanceCrud.delete).toHaveBeenCalledWith({
864
+ await expect(() => objectInstance.delete()).rejects.toThrow(ObjectError);
865
+ expect(objectInstance.state.crud.delete).toHaveBeenCalledWith({
857
866
  crudArgs: { stream: "test_stream" },
858
867
  id: 1,
859
868
  });
860
- expect(objectInstance.state.objectInstanceCrud.delete).toHaveBeenCalledTimes(1);
869
+ expect(objectInstance.state.crud.delete).toHaveBeenCalledTimes(1);
861
870
  });
862
871
  });
863
872
  it("useObjectSubscriptions", async function () {