diff --git a/test/id.test.js b/test/id.test.js index a18bffe5..a3f96b52 100644 --- a/test/id.test.js +++ b/test/id.test.js @@ -1,4 +1,4 @@ -// Copyright IBM Corp. 2013,2019. All Rights Reserved. +// Copyright IBM Corp. 2013,2020. All Rights Reserved. // Node module: loopback-datasource-juggler // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT @@ -16,9 +16,8 @@ let ds; const ValidationError = require('..').ValidationError; describe.only('id property', function() { - before(function(done) { + before(function() { ds = getSchema(); - done(); }); context('unspecified (defaults to generated:true)', function() { @@ -33,11 +32,11 @@ describe.only('id property', function() { }); it('should not require id value', async () => { - await IdCheckA.create({name: 'Pablo'}).should.not.be.rejected(); + await IdCheckA.create({name: 'Pablo'}).should.be.fulfilled(); }); it('should not allow id value to be specified', async () => { - await IdCheckA.create({id: 10, name: 'Pablo'}).should.be.rejectedWith(/can\'t be set/); + await IdCheckA.create({id: 10, name: 'Pablo'}).should.be.rejectedWith({statusCode: 422}); }); }); @@ -52,11 +51,11 @@ describe.only('id property', function() { }); it('should not require id value', async () => { - await IdCheckB.create({name: 'Pablo'}).should.not.be.rejected(); + await IdCheckB.create({name: 'Pablo'}).should.be.fulfilled(); }); it('should allow id value to be specified', async () => { - await IdCheckB.create({id: 10, name: 'Pablo'}).should.not.be.rejected(); + await IdCheckB.create({id: 10, name: 'Pablo'}).should.be.fulfilled(); }); }); }); @@ -66,20 +65,21 @@ describe.only('id property', function() { let IdCheckC; before(async () => { IdCheckC = ds.define('IdCheckC', { + id: {id: true, type: String}, name: String, }); await ds.automigrate(IdCheckC.modelName); await IdCheckC.destroyAll(); }); - // If id is not autogenerated and forceId is true, a value must be specified + // If id is not autogenerated, forceId is not applicable and a value must be specified it('should require id value', async () => { await IdCheckC.create({name: 'Pablo'}).should.be.rejected(); }); - // If id is not autogenerated and forceId is true, a value can be specified + // If id is not autogenerated, forceId is not applicable and a value can be specified it('should allow id value to be specified', async () => { - await IdCheckC.create({id: 10, name: 'Pablo'}).should.not.be.rejected(); + await IdCheckC.create({id: 10, name: 'Pablo'}).should.be.fulfilled(); }); }); @@ -87,20 +87,21 @@ describe.only('id property', function() { let IdCheckD; before(async () => { IdCheckD = ds.define('IdCheckD', { + id: {id: true, type: String}, name: String, }, {forceId: false}); await ds.automigrate(IdCheckD.modelName); await IdCheckD.destroyAll(); }); - // If id is not autogenerated and forceId is false, a value must be specified + // If id is not autogenerated, forceId is not applicable and a value must be specified it('should require id value', async () => { await IdCheckD.create({name: 'Pablo'}).should.be.rejected(); }); - // If id is not autogenerated and forceId is false, a value can be specified + // If id is not autogenerated, forceId is not applicable and a value can be specified it('should allow id value to be specified', async () => { - await IdCheckD.create({id: 10, name: 'Pablo'}).should.not.be.rejected(); + await IdCheckD.create({id: 10, name: 'Pablo'}).should.be.fulfilled(); }); }); }); @@ -110,20 +111,21 @@ describe.only('id property', function() { let IdCheckE; before(async () => { IdCheckE = ds.define('IdCheckE', { + id: {id: true, type: String, generated: true}, name: String, }); await ds.automigrate(IdCheckE.modelName); await IdCheckE.destroyAll(); }); - // If id is autogenerated and forceId is true, a value need not be specified + // If id is autogenerated and forceId is true, id value must not be specified it('should not require id value', async () => { - await IdCheckE.create({name: 'Pablo'}).should.not.be.rejected(); + await IdCheckE.create({name: 'Pablo'}).should.be.fulfilled(); }); // If id is autogenerated and forceId is true, a value cannot be specified it('should not allow id value to be specified', async () => { - await IdCheckE.create({id: 10, name: 'Pablo'}).should.not.be.rejected(); + await IdCheckE.create({id: 10, name: 'Pablo'}).should.be.rejectedWith({statusCode: 422}); }); }); @@ -131,6 +133,7 @@ describe.only('id property', function() { let IdCheckF; before(async () => { IdCheckF = ds.define('IdCheckF', { + id: {id: true, type: String, generated: true}, name: String, }, {forceId: false}); await ds.automigrate(IdCheckF.modelName); @@ -139,12 +142,12 @@ describe.only('id property', function() { // If id is autogenerated and forceId is false, a value need not be specified it('should not require id value', async () => { - await IdCheckF.create({name: 'Pablo'}).should.not.be.rejected(); + await IdCheckF.create({name: 'Pablo'}).should.be.fulfilled(); }); // If id is autogenerated and forceId is false, a value can be specified it('should allow id value to be specified', async () => { - await IdCheckF.create({id: 10, name: 'Pablo'}).should.not.be.rejected(); + await IdCheckF.create({id: 10, name: 'Pablo'}).should.be.fulfilled(); }); }); });