From dbe9e441d9fd99db8141a815f766c26719b2c053 Mon Sep 17 00:00:00 2001 From: u9r52sld Date: Thu, 12 Jul 2018 09:00:57 +0900 Subject: [PATCH 1/5] feat(handle_error_for_array): add error message when a value for array have not beean defined --- lib/sequelize.js | 9 +++++++-- test/integration/sequelize.test.js | 10 ++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/sequelize.js b/lib/sequelize.js index 39f81c2b29a5..fd11acab515c 100755 --- a/lib/sequelize.js +++ b/lib/sequelize.js @@ -1095,9 +1095,14 @@ class Sequelize { type = dialectTypes[type.key].extend(type); } - if (type instanceof DataTypes.ARRAY && dialectTypes[type.type.key]) { - type.type = dialectTypes[type.type.key].extend(type.type); + if (type instanceof DataTypes.ARRAY) { + if (!type.type) { + throw new Error('Values for ARRAY have not been defined.'); + } else if (dialectTypes[type.type.key]) { + type.type = dialectTypes[type.type.key].extend(type.type); + } } + return type; } diff --git a/test/integration/sequelize.test.js b/test/integration/sequelize.test.js index 9e98ebd132d1..28b0bdf62cf6 100755 --- a/test/integration/sequelize.test.js +++ b/test/integration/sequelize.test.js @@ -1205,6 +1205,16 @@ describe(Support.getTestDialectTeaser('Sequelize'), () => { }); }); + describe('define', () => { + it('raises an error if no values are defined', function() { + expect(() => { + this.sequelize.define('omnomnom', { + bla: { type: DataTypes.ARRAY } + }); + }).to.throw(Error, 'A value for ARRAY have not been defined.'); + }); + }); + describe('define', () => { [ { type: DataTypes.ENUM, values: ['scheduled', 'active', 'finished']}, From 528e9ffbd061ca09c3629634a6d2a9f8e2febc6e Mon Sep 17 00:00:00 2001 From: u9r52sld Date: Thu, 12 Jul 2018 09:32:07 +0900 Subject: [PATCH 2/5] feat(handle_error_for_array): modify message --- lib/sequelize.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sequelize.js b/lib/sequelize.js index fd11acab515c..5004cf4e502b 100755 --- a/lib/sequelize.js +++ b/lib/sequelize.js @@ -1097,7 +1097,7 @@ class Sequelize { if (type instanceof DataTypes.ARRAY) { if (!type.type) { - throw new Error('Values for ARRAY have not been defined.'); + throw new Error('A value for ARRAY have not been defined.'); } else if (dialectTypes[type.type.key]) { type.type = dialectTypes[type.type.key].extend(type.type); } From 0cfec7492368b31e7430bb9229eab91a55ec784b Mon Sep 17 00:00:00 2001 From: u9r52sld Date: Fri, 13 Jul 2018 08:55:07 +0900 Subject: [PATCH 3/5] feat(handle_error_for_array): change to the third person singular --- lib/sequelize.js | 2 +- test/integration/sequelize.test.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/sequelize.js b/lib/sequelize.js index 5004cf4e502b..0553e9e3196f 100755 --- a/lib/sequelize.js +++ b/lib/sequelize.js @@ -1097,7 +1097,7 @@ class Sequelize { if (type instanceof DataTypes.ARRAY) { if (!type.type) { - throw new Error('A value for ARRAY have not been defined.'); + throw new Error('A value for ARRAY has not been defined.'); } else if (dialectTypes[type.type.key]) { type.type = dialectTypes[type.type.key].extend(type.type); } diff --git a/test/integration/sequelize.test.js b/test/integration/sequelize.test.js index 28b0bdf62cf6..db39e691564f 100755 --- a/test/integration/sequelize.test.js +++ b/test/integration/sequelize.test.js @@ -1211,7 +1211,7 @@ describe(Support.getTestDialectTeaser('Sequelize'), () => { this.sequelize.define('omnomnom', { bla: { type: DataTypes.ARRAY } }); - }).to.throw(Error, 'A value for ARRAY have not been defined.'); + }).to.throw(Error, 'A value for ARRAY has not been defined.'); }); }); From 23c939ccb37e4c5f3320bb0906d0c7aa041388f8 Mon Sep 17 00:00:00 2001 From: Sushant Date: Sat, 14 Jul 2018 11:01:48 +0530 Subject: [PATCH 4/5] change: message should say about type definition --- lib/sequelize.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sequelize.js b/lib/sequelize.js index 0553e9e3196f..1ece97bddc3a 100755 --- a/lib/sequelize.js +++ b/lib/sequelize.js @@ -1097,7 +1097,7 @@ class Sequelize { if (type instanceof DataTypes.ARRAY) { if (!type.type) { - throw new Error('A value for ARRAY has not been defined.'); + throw new Error('ARRAY is missing type definition for its values.'); } else if (dialectTypes[type.type.key]) { type.type = dialectTypes[type.type.key].extend(type.type); } From fa17f9a0422d17843bd4a04397b53e0e36531a1d Mon Sep 17 00:00:00 2001 From: Sushant Date: Sat, 14 Jul 2018 11:04:01 +0530 Subject: [PATCH 5/5] Update sequelize.test.js --- test/integration/sequelize.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/sequelize.test.js b/test/integration/sequelize.test.js index db39e691564f..3ddabb937aa1 100755 --- a/test/integration/sequelize.test.js +++ b/test/integration/sequelize.test.js @@ -1211,7 +1211,7 @@ describe(Support.getTestDialectTeaser('Sequelize'), () => { this.sequelize.define('omnomnom', { bla: { type: DataTypes.ARRAY } }); - }).to.throw(Error, 'A value for ARRAY has not been defined.'); + }).to.throw(Error, 'ARRAY is missing type definition for its values.'); }); });