pure-orm 1.3.1 → 2.2.0
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/.travis.yml +0 -6
- package/README.md +456 -185
- package/examples/order-more/bo/customer.js +18 -0
- package/examples/order-more/bo/customers.js +9 -0
- package/examples/order-more/bo/line-item.js +33 -0
- package/examples/order-more/bo/line-items.js +9 -0
- package/examples/order-more/bo/order.js +49 -0
- package/examples/order-more/bo/orders.js +9 -0
- package/examples/order-more/bo/parcel-event.js +19 -0
- package/examples/order-more/bo/parcel-events.js +9 -0
- package/examples/order-more/bo/parcel-line-item.js +24 -0
- package/examples/order-more/bo/parcel-line-items.js +9 -0
- package/examples/order-more/bo/parcel.js +18 -0
- package/examples/order-more/bo/parcels.js +9 -0
- package/examples/order-more/bo/physical-address.js +30 -0
- package/examples/order-more/bo/physical-addresses.js +12 -0
- package/examples/order-more/bo/refund.js +28 -0
- package/examples/order-more/bo/refunds.js +9 -0
- package/examples/order-more/bo/shipment-actual-product-variant.js +26 -0
- package/examples/order-more/bo/shipment-actual-product-variants.js +9 -0
- package/examples/order-more/bo/utm-medium.js +13 -0
- package/examples/order-more/bo/utm-source.js +13 -0
- package/examples/order-more/business-objects.js +12 -1
- package/package.json +1 -1
- package/src/bo/base-bo.js +51 -27
- package/src/bo/base-bo.spec.js +259 -0
- package/test-utils/eight/results.json +128 -0
- package/test-utils/eleven/results.json +818 -0
- package/test-utils/nine/bo/base.js +5 -0
- package/test-utils/nine/bo/feature-switch.js +18 -0
- package/test-utils/nine/bo/feature-switches.js +12 -0
- package/test-utils/nine/business-objects.js +7 -0
- package/test-utils/nine/results.json +12 -0
- package/test-utils/ten/results.json +899 -0
- package/test-utils/twelve/bo/base.js +5 -0
- package/test-utils/twelve/bo/member.js +16 -0
- package/test-utils/twelve/bo/members.js +9 -0
- package/test-utils/twelve/bo/prompt.js +20 -0
- package/test-utils/twelve/bo/prompts.js +9 -0
- package/test-utils/twelve/business-objects.js +8 -0
- package/test-utils/twelve/results.json +8 -0
package/src/bo/base-bo.spec.js
CHANGED
|
@@ -2,6 +2,9 @@ const Order = require('../../examples/order/bo/order');
|
|
|
2
2
|
const Article = require('../../examples/blog/bo/article');
|
|
3
3
|
const Articles = require('../../examples/blog/bo/articles');
|
|
4
4
|
const InventoryLevel = require('../../examples/order-more/bo/inventory-level');
|
|
5
|
+
const OrderFull = require('../../examples/order-more/bo/order');
|
|
6
|
+
const Shipment = require('../../examples/order-more/bo/shipment');
|
|
7
|
+
const FeatureSwitch = require('../../test-utils/nine/bo/feature-switch');
|
|
5
8
|
const one = require('../../test-utils/one/results.json');
|
|
6
9
|
const two = require('../../test-utils/two/results');
|
|
7
10
|
const three = require('../../test-utils/three/results');
|
|
@@ -11,6 +14,12 @@ const five = require('../../test-utils/five/results.json');
|
|
|
11
14
|
const Parcel = require('../../test-utils/six/bo/parcel');
|
|
12
15
|
const six = require('../../test-utils/six/results.json');
|
|
13
16
|
const seven = require('../../test-utils/seven/results.json');
|
|
17
|
+
const eight = require('../../test-utils/eight/results.json');
|
|
18
|
+
const nine = require('../../test-utils/nine/results.json');
|
|
19
|
+
const ten = require('../../test-utils/ten/results.json');
|
|
20
|
+
const eleven = require('../../test-utils/eleven/results.json');
|
|
21
|
+
const twelve = require('../../test-utils/twelve/results.json');
|
|
22
|
+
const Prompt = require('../../test-utils/twelve/bo/prompt');
|
|
14
23
|
|
|
15
24
|
test('Bo#parseFromDatabase where multiple rows reduce to one nested object (with all one-to-one or one-to-many tables)', () => {
|
|
16
25
|
const order = Order.createOneFromDatabase(one);
|
|
@@ -286,3 +295,253 @@ test('Bo#parseOneFromDatabase where a deeply nested models property was attachin
|
|
|
286
295
|
expect(inventoryLevel.actualProductVariant.productVariants.models[1].gender.id).toEqual(2);
|
|
287
296
|
expect(inventoryLevel.actualProductVariant.productVariants.models[1].size.id).toEqual(11);
|
|
288
297
|
});
|
|
298
|
+
|
|
299
|
+
// Problem:
|
|
300
|
+
// Shipment
|
|
301
|
+
// ShipmentActualProductVariant
|
|
302
|
+
// ActualProductVariant
|
|
303
|
+
// ProductVariant(1)
|
|
304
|
+
// Product
|
|
305
|
+
// ProductVariant(2)
|
|
306
|
+
// ShipmentActualProductVariant
|
|
307
|
+
// ActualProductVariant
|
|
308
|
+
// Instead of:
|
|
309
|
+
// Shipment
|
|
310
|
+
// ShipmentActualProductVariant
|
|
311
|
+
// ActualProductVariant
|
|
312
|
+
// ProductVariant(1)
|
|
313
|
+
// Product
|
|
314
|
+
// ShipmentActualProductVariant
|
|
315
|
+
// ActualProductVariant
|
|
316
|
+
// ProductVariant(2)
|
|
317
|
+
// Product
|
|
318
|
+
// Issue occcurs in nestClump
|
|
319
|
+
test('Bo#parseOneFromDatabase where a deeply nested models property was attaching to wrong parent 2', () => {
|
|
320
|
+
const shipments = Shipment.createFromDatabase(eight);
|
|
321
|
+
// The assertion that failed when the bug was present
|
|
322
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants).toBeDefined();
|
|
323
|
+
// IN ADDITION TO ABOVE ASSERTION and helpful test description of what is
|
|
324
|
+
// being tested, the below tests tease out some logic that was hitherto
|
|
325
|
+
// incorrect. This "some logic" should be defined and have separate tests
|
|
326
|
+
// and jazz, but my brain hurts so TLDR these below tests are important but
|
|
327
|
+
// (somewhat?) unrelated to the example/assertion above. "Are you serious?!"
|
|
328
|
+
expect(shipments.models.length).toEqual(2);
|
|
329
|
+
|
|
330
|
+
expect(shipments.models[0].id).toEqual(19);
|
|
331
|
+
expect(shipments.models[0].shipmentActualProductVariants.models.length).toEqual(2);
|
|
332
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].id).toEqual(25);
|
|
333
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.id).toEqual(65);
|
|
334
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models.length).toEqual(2);
|
|
335
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].id).toEqual(310);
|
|
336
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].product.id).toEqual(1);
|
|
337
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].size.id).toEqual(1);
|
|
338
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].color.id).toEqual(1);
|
|
339
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].gender.id).toEqual(1);
|
|
340
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].id).toEqual(309);
|
|
341
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].product.id).toEqual(2);
|
|
342
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].size.id).toEqual(4);
|
|
343
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].color.id).toEqual(1);
|
|
344
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].gender.id).toEqual(2);
|
|
345
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].id).toEqual(26);
|
|
346
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.id).toEqual(25);
|
|
347
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models.length).toEqual(2);
|
|
348
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[0].id).toEqual(194);
|
|
349
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[0].product.id).toEqual(1);
|
|
350
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[0].size.id).toEqual(2);
|
|
351
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[0].color.id).toEqual(1);
|
|
352
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[0].gender.id).toEqual(1);
|
|
353
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[1].id).toEqual(195);
|
|
354
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[1].product.id).toEqual(2);
|
|
355
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[1].size.id).toEqual(5);
|
|
356
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[1].color.id).toEqual(1);
|
|
357
|
+
expect(shipments.models[0].shipmentActualProductVariants.models[1].actualProductVariant.productVariants.models[1].gender.id).toEqual(2);
|
|
358
|
+
expect(shipments.models[1].id).toEqual(18);
|
|
359
|
+
expect(shipments.models[1].shipmentActualProductVariants.models.length).toEqual(1);
|
|
360
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].id).toEqual(1);
|
|
361
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.id).toEqual(25);
|
|
362
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models.length).toEqual(2);
|
|
363
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].id).toEqual(194);
|
|
364
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].product.id).toEqual(1);
|
|
365
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].size.id).toEqual(2);
|
|
366
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].color.id).toEqual(1);
|
|
367
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[0].gender.id).toEqual(1);
|
|
368
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].id).toEqual(195);
|
|
369
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].product.id).toEqual(2);
|
|
370
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].size.id).toEqual(5);
|
|
371
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].color.id).toEqual(1);
|
|
372
|
+
expect(shipments.models[1].shipmentActualProductVariants.models[0].actualProductVariant.productVariants.models[1].gender.id).toEqual(2);
|
|
373
|
+
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
// Issue occcurs in nestClump
|
|
377
|
+
// Problem is with only top level nodes
|
|
378
|
+
test('Bo#parseFromDatabase with just top level nodes', () => {
|
|
379
|
+
let featureSwitches;
|
|
380
|
+
try {
|
|
381
|
+
// This failed when the bug was present
|
|
382
|
+
featureSwitches = FeatureSwitch.createFromDatabase(nine);
|
|
383
|
+
} catch (e) {
|
|
384
|
+
expect(e).not.toBeDefined();
|
|
385
|
+
}
|
|
386
|
+
expect(featureSwitches).toBeDefined();
|
|
387
|
+
// Lots of other assertions that are unrelated and shouldn't be here except
|
|
388
|
+
// I'm insecure about the lack of tests so just going at it cause I can.
|
|
389
|
+
expect(featureSwitches.models.length).toEqual(2);
|
|
390
|
+
expect(featureSwitches.models[0].id).toEqual('google_one_tap_sign_in');
|
|
391
|
+
expect(featureSwitches.models[1].id).toEqual('website_live_chat');
|
|
392
|
+
});
|
|
393
|
+
|
|
394
|
+
// Issue occcurs in nestClump
|
|
395
|
+
// Problem is when oldest parent is an empty join record and is not included
|
|
396
|
+
// which results in the oldest parent search returning -1 and parent heirarchy
|
|
397
|
+
// is thus messed up.
|
|
398
|
+
test('Bo#parseFromDatabase 10', () => {
|
|
399
|
+
let orders;
|
|
400
|
+
try {
|
|
401
|
+
// This failed when the bug was present
|
|
402
|
+
orders = OrderFull.createFromDatabase(ten);
|
|
403
|
+
} catch (e) {
|
|
404
|
+
expect(e).not.toBeDefined();
|
|
405
|
+
}
|
|
406
|
+
expect(orders).toBeDefined();
|
|
407
|
+
// Lots of other assertions that are unrelated and shouldn't be here except
|
|
408
|
+
// I'm insecure about the lack of tests so just going at it cause I can.
|
|
409
|
+
expect(orders.models.length).toEqual(5);
|
|
410
|
+
|
|
411
|
+
expect(orders.models[0].id).toEqual(24591);
|
|
412
|
+
expect(orders.models[0].customer.id).toEqual(5390);
|
|
413
|
+
expect(orders.models[0].physicalAddress.id).toEqual(48982);
|
|
414
|
+
expect(orders.models[0].lineItems.models.length).toEqual(1);
|
|
415
|
+
expect(orders.models[0].lineItems.models[0].id).toEqual(29883);
|
|
416
|
+
expect(orders.models[0].lineItems.models[0].productVariant.id).toEqual(158);
|
|
417
|
+
expect(orders.models[0].lineItems.models[0].productVariant.product.id).toEqual(1);
|
|
418
|
+
expect(orders.models[0].lineItems.models[0].productVariant.size.id).toEqual(9);
|
|
419
|
+
expect(orders.models[0].lineItems.models[0].productVariant.color.id).toEqual(3);
|
|
420
|
+
expect(orders.models[0].lineItems.models[0].productVariant.gender.id).toEqual(1);
|
|
421
|
+
expect(orders.models[0].lineItems.models[0].productVariant.productVariantImages.models.length).toEqual(1);
|
|
422
|
+
expect(orders.models[0].lineItems.models[0].productVariant.productVariantImages.models[0].id).toEqual(17);
|
|
423
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models.length).toEqual(1);
|
|
424
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].id).toEqual(6100);
|
|
425
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.id).toEqual(5942);
|
|
426
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models.length).toEqual(14);
|
|
427
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[0].id).toEqual(193775);
|
|
428
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[1].id).toEqual(193774);
|
|
429
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[2].id).toEqual(193773);
|
|
430
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[3].id).toEqual(193425);
|
|
431
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[4].id).toEqual(193424);
|
|
432
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[5].id).toEqual(193423);
|
|
433
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[6].id).toEqual(192713);
|
|
434
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[7].id).toEqual(192712);
|
|
435
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[8].id).toEqual(192711);
|
|
436
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[9].id).toEqual(192709);
|
|
437
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[10].id).toEqual(192171);
|
|
438
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[11].id).toEqual(192170);
|
|
439
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[12].id).toEqual(192169);
|
|
440
|
+
expect(orders.models[0].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[13].id).toEqual(191790);
|
|
441
|
+
expect(orders.models[1].id).toEqual(24589);
|
|
442
|
+
expect(orders.models[1].customer.id).toEqual(5390);
|
|
443
|
+
expect(orders.models[1].physicalAddress.id).toEqual(48982);
|
|
444
|
+
expect(orders.models[1].lineItems.models.length).toEqual(1);
|
|
445
|
+
expect(orders.models[1].lineItems.models[0].id).toEqual(29880);
|
|
446
|
+
expect(orders.models[1].lineItems.models[0].productVariant.id).toEqual(158);
|
|
447
|
+
expect(orders.models[1].lineItems.models[0].productVariant.product.id).toEqual(1);
|
|
448
|
+
expect(orders.models[1].lineItems.models[0].productVariant.size.id).toEqual(9);
|
|
449
|
+
expect(orders.models[1].lineItems.models[0].productVariant.color.id).toEqual(3);
|
|
450
|
+
expect(orders.models[1].lineItems.models[0].productVariant.gender.id).toEqual(1);
|
|
451
|
+
expect(orders.models[1].lineItems.models[0].productVariant.productVariantImages.models.length).toEqual(1);
|
|
452
|
+
expect(orders.models[1].lineItems.models[0].productVariant.productVariantImages.models[0].id).toEqual(17);
|
|
453
|
+
expect(orders.models[2].id).toEqual(24587);
|
|
454
|
+
expect(orders.models[2].customer.id).toEqual(5390);
|
|
455
|
+
expect(orders.models[2].physicalAddress.id).toEqual(28145);
|
|
456
|
+
expect(orders.models[2].lineItems.models.length).toEqual(1);
|
|
457
|
+
expect(orders.models[2].lineItems.models[0].id).toEqual(29877);
|
|
458
|
+
expect(orders.models[2].lineItems.models[0].productVariant.id).toEqual(158);
|
|
459
|
+
expect(orders.models[2].lineItems.models[0].productVariant.product.id).toEqual(1);
|
|
460
|
+
expect(orders.models[2].lineItems.models[0].productVariant.size.id).toEqual(9);
|
|
461
|
+
expect(orders.models[2].lineItems.models[0].productVariant.color.id).toEqual(3);
|
|
462
|
+
expect(orders.models[2].lineItems.models[0].productVariant.gender.id).toEqual(1);
|
|
463
|
+
expect(orders.models[2].lineItems.models[0].productVariant.productVariantImages.models.length).toEqual(1);
|
|
464
|
+
expect(orders.models[2].lineItems.models[0].productVariant.productVariantImages.models[0].id).toEqual(17);
|
|
465
|
+
expect(orders.models[2].lineItems.models[0].parcelLineItems.models.length).toEqual(1);
|
|
466
|
+
expect(orders.models[2].lineItems.models[0].parcelLineItems.models[0].id).toEqual(6070);
|
|
467
|
+
expect(orders.models[2].lineItems.models[0].parcelLineItems.models[0].parcel.id).toEqual(5914);
|
|
468
|
+
expect(orders.models[2].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models.length).toEqual(1);
|
|
469
|
+
expect(orders.models[2].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[0].id).toEqual(189194);
|
|
470
|
+
expect(orders.models[3].id).toEqual(14219);
|
|
471
|
+
expect(orders.models[3].customer.id).toEqual(5390);
|
|
472
|
+
expect(orders.models[3].physicalAddress.id).toEqual(28145);
|
|
473
|
+
expect(orders.models[3].lineItems.models.length).toEqual(2);
|
|
474
|
+
expect(orders.models[3].lineItems.models[0].id).toEqual(17298);
|
|
475
|
+
expect(orders.models[3].lineItems.models[0].productVariant.id).toEqual(353);
|
|
476
|
+
expect(orders.models[3].lineItems.models[0].productVariant.product.id).toEqual(8);
|
|
477
|
+
expect(orders.models[3].lineItems.models[0].productVariant.size.id).toEqual(20);
|
|
478
|
+
expect(orders.models[3].lineItems.models[0].productVariant.color.id).toEqual(10);
|
|
479
|
+
expect(orders.models[3].lineItems.models[0].productVariant.gender.id).toEqual(3);
|
|
480
|
+
expect(orders.models[3].lineItems.models[0].productVariant.productVariantImages.models.length).toEqual(1);
|
|
481
|
+
expect(orders.models[3].lineItems.models[0].productVariant.productVariantImages.models[0].id).toEqual(789);
|
|
482
|
+
expect(orders.models[3].lineItems.models[0].parcelLineItems.models.length).toEqual(1);
|
|
483
|
+
expect(orders.models[3].lineItems.models[0].parcelLineItems.models[0].id).toEqual(3338);
|
|
484
|
+
expect(orders.models[3].lineItems.models[0].parcelLineItems.models[0].parcel.id).toEqual(3304);
|
|
485
|
+
expect(orders.models[3].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models.length).toEqual(3);
|
|
486
|
+
expect(orders.models[3].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[0].id).toEqual(87279);
|
|
487
|
+
expect(orders.models[3].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[1].id).toEqual(87278);
|
|
488
|
+
expect(orders.models[3].lineItems.models[0].parcelLineItems.models[0].parcel.parcelEvents.models[2].id).toEqual(84361);
|
|
489
|
+
expect(orders.models[3].lineItems.models[1].id).toEqual(17297);
|
|
490
|
+
expect(orders.models[3].lineItems.models[1].productVariant.id).toEqual(344);
|
|
491
|
+
expect(orders.models[3].lineItems.models[1].productVariant.product.id).toEqual(6);
|
|
492
|
+
expect(orders.models[3].lineItems.models[1].productVariant.size.id).toEqual(22);
|
|
493
|
+
expect(orders.models[3].lineItems.models[1].productVariant.color.id).toEqual(8);
|
|
494
|
+
expect(orders.models[3].lineItems.models[1].productVariant.gender.id).toEqual(3);
|
|
495
|
+
expect(orders.models[3].lineItems.models[1].productVariant.productVariantImages.models.length).toEqual(1);
|
|
496
|
+
expect(orders.models[3].lineItems.models[1].productVariant.productVariantImages.models[0].id).toEqual(780);
|
|
497
|
+
expect(orders.models[3].lineItems.models[1].parcelLineItems.models.length).toEqual(1);
|
|
498
|
+
expect(orders.models[3].lineItems.models[1].parcelLineItems.models[0].id).toEqual(2311);
|
|
499
|
+
expect(orders.models[3].lineItems.models[1].parcelLineItems.models[0].parcel.id).toEqual(2317);
|
|
500
|
+
expect(orders.models[3].lineItems.models[1].parcelLineItems.models[0].parcel.parcelEvents.models.length).toEqual(3);
|
|
501
|
+
expect(orders.models[3].lineItems.models[1].parcelLineItems.models[0].parcel.parcelEvents.models[0].id).toEqual(52627);
|
|
502
|
+
expect(orders.models[3].lineItems.models[1].parcelLineItems.models[0].parcel.parcelEvents.models[1].id).toEqual(52626);
|
|
503
|
+
expect(orders.models[3].lineItems.models[1].parcelLineItems.models[0].parcel.parcelEvents.models[2].id).toEqual(48326);
|
|
504
|
+
expect(orders.models[4].id).toEqual(13888);
|
|
505
|
+
expect(orders.models[4].customer.id).toEqual(5390);
|
|
506
|
+
expect(orders.models[4].physicalAddress.id).toEqual(7608);
|
|
507
|
+
expect(orders.models[4].lineItems.models.length).toEqual(1);
|
|
508
|
+
expect(orders.models[4].lineItems.models[0].id).toEqual(16900);
|
|
509
|
+
expect(orders.models[4].lineItems.models[0].productVariant.id).toEqual(363);
|
|
510
|
+
expect(orders.models[4].lineItems.models[0].productVariant.product.id).toEqual(5);
|
|
511
|
+
expect(orders.models[4].lineItems.models[0].productVariant.size.id).toEqual(8);
|
|
512
|
+
expect(orders.models[4].lineItems.models[0].productVariant.color.id).toEqual(12);
|
|
513
|
+
expect(orders.models[4].lineItems.models[0].productVariant.gender.id).toEqual(1);
|
|
514
|
+
expect(orders.models[4].lineItems.models[0].productVariant.productVariantImages.models.length).toEqual(1);
|
|
515
|
+
expect(orders.models[4].lineItems.models[0].productVariant.productVariantImages.models[0].id).toEqual(829);
|
|
516
|
+
});
|
|
517
|
+
|
|
518
|
+
// Issue occcurs in nestClump
|
|
519
|
+
// Problem from early returning not logging bo so parent hierarcy was missing it
|
|
520
|
+
test('Bo#parseFromDatabase 11', () => {
|
|
521
|
+
let orders;
|
|
522
|
+
try {
|
|
523
|
+
// This failed when the bug was present
|
|
524
|
+
orders = OrderFull.createFromDatabase(eleven);
|
|
525
|
+
} catch (e) {
|
|
526
|
+
expect(e).not.toBeDefined();
|
|
527
|
+
}
|
|
528
|
+
expect(orders).toBeDefined();
|
|
529
|
+
// Lots of other assertions that are unrelated and shouldn't be here except
|
|
530
|
+
// I'm insecure about the lack of tests so just going at it cause I can.
|
|
531
|
+
// TODO add more later
|
|
532
|
+
});
|
|
533
|
+
|
|
534
|
+
// Issue occcurs in nestClump
|
|
535
|
+
// Problem when a table references another model twice (two columns)
|
|
536
|
+
test('Bo#parseFromDatabase 12', () => {
|
|
537
|
+
let prompt;
|
|
538
|
+
try {
|
|
539
|
+
// This failed when the bug was present
|
|
540
|
+
prompt = Prompt.createFromDatabase(twelve);
|
|
541
|
+
} catch (e) {
|
|
542
|
+
expect(e).not.toBeDefined();
|
|
543
|
+
}
|
|
544
|
+
expect(prompt).toBeDefined();
|
|
545
|
+
// Ideally the below should work
|
|
546
|
+
// expect(prompt.fromMember.id).toEqual(1);
|
|
547
|
+
});
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"shipment#id": 19,
|
|
4
|
+
"shipment_actual_product_variant#id": 25,
|
|
5
|
+
"shipment_actual_product_variant#shipment_id": 19,
|
|
6
|
+
"shipment_actual_product_variant#actual_product_variant_id": 65,
|
|
7
|
+
"shipment_actual_product_variant#quantity": 20,
|
|
8
|
+
"actual_product_variant#id": 65,
|
|
9
|
+
"actual_product_variant#sku": "10010150",
|
|
10
|
+
"product_variant#id": 310,
|
|
11
|
+
"product_variant#product_id": 1,
|
|
12
|
+
"product_variant#actual_product_variant_id": 65,
|
|
13
|
+
"product_variant#color_id": 1,
|
|
14
|
+
"product_variant#gender_id": 1,
|
|
15
|
+
"product_variant#size_id": 1,
|
|
16
|
+
"product#id": 1,
|
|
17
|
+
"size#id": 1,
|
|
18
|
+
"size#value": "5",
|
|
19
|
+
"size#label": "5",
|
|
20
|
+
"color#id": 1,
|
|
21
|
+
"gender#id": 1
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"shipment#id": 19,
|
|
25
|
+
"shipment_actual_product_variant#id": 26,
|
|
26
|
+
"shipment_actual_product_variant#shipment_id": 19,
|
|
27
|
+
"shipment_actual_product_variant#actual_product_variant_id": 25,
|
|
28
|
+
"shipment_actual_product_variant#quantity": 10,
|
|
29
|
+
"actual_product_variant#id": 25,
|
|
30
|
+
"actual_product_variant#sku": "10010155",
|
|
31
|
+
"product_variant#id": 194,
|
|
32
|
+
"product_variant#product_id": 1,
|
|
33
|
+
"product_variant#actual_product_variant_id": 25,
|
|
34
|
+
"product_variant#color_id": 1,
|
|
35
|
+
"product_variant#gender_id": 1,
|
|
36
|
+
"product_variant#size_id": 2,
|
|
37
|
+
"product#id": 1,
|
|
38
|
+
"size#id": 2,
|
|
39
|
+
"size#value": "5.5",
|
|
40
|
+
"size#label": "5.5",
|
|
41
|
+
"color#id": 1,
|
|
42
|
+
"gender#id": 1
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"shipment#id": 19,
|
|
46
|
+
"shipment_actual_product_variant#id": 25,
|
|
47
|
+
"shipment_actual_product_variant#shipment_id": 19,
|
|
48
|
+
"shipment_actual_product_variant#actual_product_variant_id": 65,
|
|
49
|
+
"shipment_actual_product_variant#quantity": 20,
|
|
50
|
+
"actual_product_variant#id": 65,
|
|
51
|
+
"actual_product_variant#sku": "10010150",
|
|
52
|
+
"product_variant#id": 309,
|
|
53
|
+
"product_variant#product_id": 2,
|
|
54
|
+
"product_variant#actual_product_variant_id": 65,
|
|
55
|
+
"product_variant#color_id": 1,
|
|
56
|
+
"product_variant#gender_id": 2,
|
|
57
|
+
"product_variant#size_id": 4,
|
|
58
|
+
"product#id": 2,
|
|
59
|
+
"size#id": 4,
|
|
60
|
+
"size#value": "6.5",
|
|
61
|
+
"size#label": "6.5",
|
|
62
|
+
"color#id": 1,
|
|
63
|
+
"gender#id": 2
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"shipment#id": 19,
|
|
67
|
+
"shipment_actual_product_variant#id": 26,
|
|
68
|
+
"shipment_actual_product_variant#shipment_id": 19,
|
|
69
|
+
"shipment_actual_product_variant#actual_product_variant_id": 25,
|
|
70
|
+
"shipment_actual_product_variant#quantity": 10,
|
|
71
|
+
"actual_product_variant#id": 25,
|
|
72
|
+
"actual_product_variant#sku": "10010155",
|
|
73
|
+
"product_variant#id": 195,
|
|
74
|
+
"product_variant#product_id": 2,
|
|
75
|
+
"product_variant#actual_product_variant_id": 25,
|
|
76
|
+
"product_variant#color_id": 1,
|
|
77
|
+
"product_variant#gender_id": 2,
|
|
78
|
+
"product_variant#size_id": 5,
|
|
79
|
+
"product#id": 2,
|
|
80
|
+
"size#id": 5,
|
|
81
|
+
"size#value": "7",
|
|
82
|
+
"size#label": "7",
|
|
83
|
+
"color#id": 1,
|
|
84
|
+
"gender#id": 2
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"shipment#id": 18,
|
|
88
|
+
"shipment_actual_product_variant#id": 1,
|
|
89
|
+
"shipment_actual_product_variant#shipment_id": 18,
|
|
90
|
+
"shipment_actual_product_variant#actual_product_variant_id": 25,
|
|
91
|
+
"shipment_actual_product_variant#quantity": 10,
|
|
92
|
+
"actual_product_variant#id": 25,
|
|
93
|
+
"actual_product_variant#sku": "10010155",
|
|
94
|
+
"product_variant#id": 194,
|
|
95
|
+
"product_variant#product_id": 1,
|
|
96
|
+
"product_variant#actual_product_variant_id": 25,
|
|
97
|
+
"product_variant#color_id": 1,
|
|
98
|
+
"product_variant#gender_id": 1,
|
|
99
|
+
"product_variant#size_id": 2,
|
|
100
|
+
"product#id": 1,
|
|
101
|
+
"size#id": 2,
|
|
102
|
+
"size#value": "5.5",
|
|
103
|
+
"size#label": "5.5",
|
|
104
|
+
"color#id": 1,
|
|
105
|
+
"gender#id": 1
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"shipment#id": 18,
|
|
109
|
+
"shipment_actual_product_variant#id": 1,
|
|
110
|
+
"shipment_actual_product_variant#shipment_id": 18,
|
|
111
|
+
"shipment_actual_product_variant#actual_product_variant_id": 25,
|
|
112
|
+
"shipment_actual_product_variant#quantity": 10,
|
|
113
|
+
"actual_product_variant#id": 25,
|
|
114
|
+
"actual_product_variant#sku": "10010155",
|
|
115
|
+
"product_variant#id": 195,
|
|
116
|
+
"product_variant#product_id": 2,
|
|
117
|
+
"product_variant#actual_product_variant_id": 25,
|
|
118
|
+
"product_variant#color_id": 1,
|
|
119
|
+
"product_variant#gender_id": 2,
|
|
120
|
+
"product_variant#size_id": 5,
|
|
121
|
+
"product#id": 2,
|
|
122
|
+
"size#id": 5,
|
|
123
|
+
"size#value": "7",
|
|
124
|
+
"size#label": "7",
|
|
125
|
+
"color#id": 1,
|
|
126
|
+
"gender#id": 2
|
|
127
|
+
}
|
|
128
|
+
]
|