Skip to content

Commit a6852c9

Browse files
authored
Merge pull request #416 from strongloop/fix-ci
fix Postgres random CI failure
2 parents 55a9bcc + c4a2735 commit a6852c9

File tree

1 file changed

+37
-146
lines changed

1 file changed

+37
-146
lines changed

test/postgresql.autoupdate.test.js

Lines changed: 37 additions & 146 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,6 @@ describe('autoupdate', function() {
296296
keys: ['firstname'],
297297
order: ['ASC']},
298298
});
299-
300-
// console.log(err, result);
301299
done(err, result);
302300
});
303301
});
@@ -419,77 +417,7 @@ describe('autoupdate', function() {
419417
},
420418
};
421419

422-
const customer3_schema = {
423-
'name': 'CustomerTest3',
424-
'options': {
425-
'idInjection': false,
426-
'postgresql': {
427-
'schema': 'myapp_test',
428-
'table': 'customer_test3',
429-
},
430-
},
431-
'properties': {
432-
'id': {
433-
'type': 'String',
434-
'length': 20,
435-
'id': 1,
436-
},
437-
'name': {
438-
'type': 'String',
439-
'required': false,
440-
'length': 40,
441-
},
442-
'email': {
443-
'type': 'String',
444-
'required': true,
445-
'length': 40,
446-
},
447-
'age': {
448-
'type': 'Number',
449-
'required': false,
450-
},
451-
},
452-
};
453-
454420
const orderTest_schema_v1 = {
455-
'name': 'OrderTest',
456-
'options': {
457-
'idInjection': false,
458-
'postgresql': {
459-
'schema': 'myapp_test',
460-
'table': 'order_test',
461-
},
462-
'foreignKeys': {
463-
'fk_ordertest_customerId': {
464-
'name': 'fk_ordertest_customerId',
465-
'entity': 'CustomerTest3',
466-
'entityKey': 'id',
467-
'foreignKey': 'customerId',
468-
},
469-
},
470-
},
471-
'properties': {
472-
'id': {
473-
'type': 'String',
474-
'length': 20,
475-
'id': 1,
476-
},
477-
'customerId': {
478-
'type': 'String',
479-
'length': 20,
480-
'postgresql': {
481-
'columnName': 'customerId',
482-
},
483-
},
484-
'description': {
485-
'type': 'String',
486-
'required': false,
487-
'length': 40,
488-
},
489-
},
490-
};
491-
492-
const orderTest_schema_v2 = {
493421
'name': 'OrderTest',
494422
'options': {
495423
'idInjection': false,
@@ -512,10 +440,6 @@ describe('autoupdate', function() {
512440
'length': 20,
513441
'id': 1,
514442
},
515-
'subid': {
516-
'type': 'int',
517-
'id': 1,
518-
},
519443
'customerId': {
520444
'type': 'String',
521445
'length': 20,
@@ -528,17 +452,10 @@ describe('autoupdate', function() {
528452
'required': false,
529453
'length': 40,
530454
},
531-
'productId': {
532-
'type': 'String',
533-
'length': 20,
534-
'postgresql': {
535-
'columnName': 'productId',
536-
},
537-
},
538455
},
539456
};
540457

541-
const orderTest_schema_v3 = {
458+
const orderTest_schema_v2 = {
542459
'name': 'OrderTest',
543460
'options': {
544461
'idInjection': false,
@@ -547,12 +464,6 @@ describe('autoupdate', function() {
547464
'table': 'order_test',
548465
},
549466
'foreignKeys': {
550-
'fk_ordertest_customerId': {
551-
'name': 'fk_ordertest_customerId',
552-
'entity': 'CustomerTest2',
553-
'entityKey': 'id',
554-
'foreignKey': 'customerId',
555-
},
556467
'fk_ordertest_productId': {
557468
'name': 'fk_ordertest_productId',
558469
'entity': 'Product',
@@ -589,7 +500,7 @@ describe('autoupdate', function() {
589500
},
590501
};
591502

592-
const orderTest_schema_v4 = {
503+
const orderTest_schema_v3 = {
593504
'name': 'OrderTest',
594505
'options': {
595506
'idInjection': false,
@@ -630,9 +541,7 @@ describe('autoupdate', function() {
630541
},
631542
};
632543

633-
ds.createModel(product_schema.name, product_schema.properties, product_schema.options);
634544
ds.createModel(customer2_schema.name, customer2_schema.properties, customer2_schema.options);
635-
ds.createModel(customer3_schema.name, customer3_schema.properties, customer3_schema.options);
636545

637546
// Table create order is important. Referenced tables must exist before creating a reference.
638547
// do initial update/creation of referenced tables
@@ -642,7 +551,11 @@ describe('autoupdate', function() {
642551
return done(err);
643552
}
644553

554+
// do initial update/creation of of referenced tables for the next step
555+
// model OrderTest has a fk refers to model CustomerTest2
556+
ds.createModel(product_schema.name, product_schema.properties, product_schema.options);
645557
// do initial update/creation of table with fk
558+
// model OrderTest has a fk refers to model CustomerTest2
646559
ds.createModel(orderTest_schema_v1.name, orderTest_schema_v1.properties, orderTest_schema_v1.options);
647560
ds.autoupdate(function(err) {
648561
if (err) {
@@ -662,70 +575,48 @@ describe('autoupdate', function() {
662575
assert(foreignKeys);
663576
assert.equal(foreignKeys.length, 1);
664577
assert.equal(foreignKeys[0].pkColumnName, 'id');
665-
assert.equal(foreignKeys[0].pkTableName, 'customer_test3');
578+
assert.equal(foreignKeys[0].pkTableName, 'customer_test2');
666579
assert.equal(foreignKeys[0].fkColumnName, 'customerId');
667580
assert.equal(foreignKeys[0].fkName, 'fk_ordertest_customerId');
668581

669-
// update and add another fk
670-
ds.createModel(orderTest_schema_v2.name, orderTest_schema_v2.properties, orderTest_schema_v2.options);
582+
// update the fk of model OrderTest from customerId to productId
583+
// productId refers to model Product
584+
ds.createModel(orderTest_schema_v2.name, orderTest_schema_v2.properties,
585+
orderTest_schema_v2.options);
671586
ds.autoupdate(function(err) {
672587
if (err) {
673588
err.message += ' (while updating OrderTest schema v2)';
674589
return done(err);
675590
}
676-
ds.discoverModelProperties('order_test', function(err, props) {
591+
// get the foreign keys for order_test
592+
ds.connector.discoverForeignKeys('order_test', {}, function(err, foreignKeys) {
677593
if (err) return done(err);
678-
// validate that we have the correct number of properties
679-
assert.equal(props.length, 4);
680-
681-
// get the foreign keys for order_test
682-
ds.connector.discoverForeignKeys('order_test', {}, function(err, foreignKeysUpdated) {
683-
if (err) return done(err);
684-
// validate that the foreign keys exist and point to the new column
685-
assert(foreignKeysUpdated);
686-
assert.equal(foreignKeysUpdated.length, 1);
687-
assert.equal(foreignKeysUpdated[0].pkColumnName, 'id');
688-
assert.equal(foreignKeysUpdated[0].pkTableName, 'customer_test2');
689-
assert.equal(foreignKeysUpdated[0].fkColumnName, 'customerId');
690-
assert.equal(foreignKeysUpdated[0].fkName, 'fk_ordertest_customerId');
691-
692-
// create multiple fks on object
693-
ds.createModel(orderTest_schema_v3.name, orderTest_schema_v3.properties,
694-
orderTest_schema_v3.options);
695-
ds.autoupdate(function(err) {
696-
if (err) {
697-
err.message += ' (while updating OrderTest schema v3)';
698-
return done(err);
699-
}
594+
assert(foreignKeys);
595+
assert.equal(foreignKeys.length, 1);
596+
assert.equal(foreignKeys[0].pkTableName, 'product_test');
597+
assert.equal(foreignKeys[0].fkColumnName, 'productId');
598+
assert.equal(foreignKeys[0].fkName, 'fk_ordertest_productId');
599+
600+
// remove fk from model OrderTest
601+
ds.createModel(orderTest_schema_v3.name, orderTest_schema_v3.properties,
602+
orderTest_schema_v3.options);
603+
ds.autoupdate(function(err) {
604+
if (err) {
605+
err.message += ' (while updating OrderTest schema v3)';
606+
return done(err);
607+
}
608+
ds.discoverModelProperties('order_test', function(err, props) {
609+
if (err) return done(err);
610+
611+
// validate that we have the correct number of properties
612+
assert.equal(props.length, 4);
613+
700614
// get the foreign keys for order_test
701-
ds.connector.discoverForeignKeys('order_test', {}, function(err, foreignKeysMulti) {
615+
ds.connector.discoverForeignKeys('order_test', {}, function(err, foreignKeysEmpty) {
702616
if (err) return done(err);
703-
assert(foreignKeysMulti);
704-
assert.equal(foreignKeysMulti.length, 2);
705-
706-
// remove fk
707-
ds.createModel(orderTest_schema_v4.name, orderTest_schema_v4.properties,
708-
orderTest_schema_v4.options);
709-
ds.autoupdate(function(err) {
710-
if (err) {
711-
err.message += ' (while updating OrderTest schema v4)';
712-
return done(err);
713-
}
714-
ds.discoverModelProperties('order_test', function(err, props) {
715-
if (err) return done(err);
716-
717-
// validate that we have the correct number of properties
718-
assert.equal(props.length, 4);
719-
720-
// get the foreign keys for order_test
721-
ds.connector.discoverForeignKeys('order_test', {}, function(err, foreignKeysEmpty) {
722-
if (err) return done(err);
723-
assert(foreignKeysEmpty);
724-
assert.equal(foreignKeysEmpty.length, 0);
725-
done();
726-
});
727-
});
728-
});
617+
assert(foreignKeysEmpty);
618+
assert.equal(foreignKeysEmpty.length, 0);
619+
done();
729620
});
730621
});
731622
});

0 commit comments

Comments
 (0)