test('should throw an error if value is invalid', () => { const type = DataTypes.FLOAT(); expect(() => { type.validate('foobar'); }).to.throw(Sequelize.ValidationError, '"foobar" is not a valid float'); });
test('should throw an error if `value` is invalid', function() { var type = DataTypes.FLOAT(); expect(function () { type.validate('foobar'); }).to.throw(Sequelize.ValidationError, '"foobar" is not a valid float'); });
test('should return `true` if `value` is a float', () => { const type = DataTypes.FLOAT(); expect(type.validate(1.2)).to.equal(true); expect(type.validate('1')).to.equal(true); expect(type.validate('1.2')).to.equal(true); expect(type.validate('-0.123')).to.equal(true); expect(type.validate('-0.22250738585072011e-307')).to.equal(true); });
describe(Support.getTestDialectTeaser('DataTypes'), function() { it('should return false when comparing DECIMAL and DECIMAL(10,2)', function(done) { expect(Sequelize.DECIMAL).to.not.equal(Sequelize.DECIMAL(10,2)) done() }) it('DECIMAL(10,2) should be an instance of DECIMAL', function(done) { expect(Sequelize.DECIMAL(10,2)).to.be.an.instanceof(Sequelize.DECIMAL) done() }) it('should return false when comparing FLOAT and FLOAT(11)', function(done) { expect(Sequelize.FLOAT).to.not.equal(Sequelize.FLOAT(11)) done() }) it('FLOAT(11) should be an instance of FLOAT', function(done) { expect(Sequelize.FLOAT(11)).to.be.an.instanceof(Sequelize.FLOAT) done() }) it('should return false when comparing STRING and STRING(4096)', function(done) { expect(Sequelize.STRING).to.not.equal(Sequelize.STRING(4096)) done() }) it('STRING(4096) should be an instance of STRING', function(done) { expect(Sequelize.STRING(4096)).to.be.an.instanceof(Sequelize.STRING) done() }) it('should return false when comparing BIGINT and BIGINT(11)', function(done) { expect(Sequelize.BIGINT).to.not.equal(Sequelize.BIGINT(11)) done() }) it('BIGINT(11) should be an instance of BIGINT', function(done) { expect(Sequelize.BIGINT(11)).to.be.an.instanceof(Sequelize.BIGINT) done() }) var tests = [ [Sequelize.STRING, 'STRING', 'VARCHAR(255)'], [Sequelize.STRING(1234), 'STRING(1234)', 'VARCHAR(1234)'], [Sequelize.STRING(1234).BINARY, 'STRING(1234).BINARY', 'VARCHAR(1234) BINARY'], [Sequelize.STRING.BINARY, 'STRING.BINARY', 'VARCHAR(255) BINARY'], [Sequelize.CHAR, 'CHAR(255)', 'CHAR(255)'], [Sequelize.CHAR(12), 'CHAR(12)', 'CHAR(12)'], [Sequelize.CHAR(12).BINARY, 'CHAR(12).BINARY', 'CHAR(12) BINARY'], [Sequelize.CHAR.BINARY, 'CHAR(255).BINARY', 'CHAR(255) BINARY'], [Sequelize.TEXT, 'TEXT', 'TEXT'], [Sequelize.DATE, 'DATE', 'DATETIME'], [Sequelize.NOW, 'NOW', 'NOW'], [Sequelize.UUID, 'UUID', 'UUID'], [Sequelize.BOOLEAN, 'BOOLEAN', 'TINYINT(1)'], [Sequelize.BLOB, 'BLOB', 'BLOB'], [Sequelize.BLOB('tiny'), 'BLOB(\'tiny\')', 'TINYBLOB'], [Sequelize.BLOB('medium'), 'BLOB(\'medium\')', 'MEDIUMBLOB'], [Sequelize.BLOB('long'), 'BLOB(\'long\')', 'LONGBLOB'], [Sequelize.INTEGER, 'INTEGER', 'INTEGER'], [Sequelize.INTEGER.UNSIGNED, 'INTEGER.UNSIGNED', 'INTEGER UNSIGNED'], [Sequelize.INTEGER(11), 'INTEGER(11)','INTEGER(11)'], [Sequelize.INTEGER(11).UNSIGNED, 'INTEGER(11).UNSIGNED', 'INTEGER(11) UNSIGNED'], [Sequelize.INTEGER(11).UNSIGNED.ZEROFILL,'INTEGER(11).UNSIGNED.ZEROFILL','INTEGER(11) UNSIGNED ZEROFILL'], [Sequelize.INTEGER(11).ZEROFILL,'INTEGER(11).ZEROFILL', 'INTEGER(11) ZEROFILL'], [Sequelize.INTEGER(11).ZEROFILL.UNSIGNED,'INTEGER(11).ZEROFILL.UNSIGNED', 'INTEGER(11) UNSIGNED ZEROFILL'], [Sequelize.BIGINT, 'BIGINT', 'BIGINT'], [Sequelize.BIGINT.UNSIGNED, 'BIGINT.UNSIGNED', 'BIGINT UNSIGNED'], [Sequelize.BIGINT(11), 'BIGINT(11)','BIGINT(11)'], [Sequelize.BIGINT(11).UNSIGNED, 'BIGINT(11).UNSIGNED', 'BIGINT(11) UNSIGNED'], [Sequelize.BIGINT(11).UNSIGNED.ZEROFILL, 'BIGINT(11).UNSIGNED.ZEROFILL','BIGINT(11) UNSIGNED ZEROFILL'], [Sequelize.BIGINT(11).ZEROFILL, 'BIGINT(11).ZEROFILL', 'BIGINT(11) ZEROFILL'], [Sequelize.BIGINT(11).ZEROFILL.UNSIGNED, 'BIGINT(11).ZEROFILL.UNSIGNED', 'BIGINT(11) UNSIGNED ZEROFILL'], [Sequelize.FLOAT, 'FLOAT', 'FLOAT'], [Sequelize.FLOAT.UNSIGNED, 'FLOAT.UNSIGNED', 'FLOAT UNSIGNED'], [Sequelize.FLOAT(11), 'FLOAT(11)','FLOAT(11)'], [Sequelize.FLOAT(11).UNSIGNED, 'FLOAT(11).UNSIGNED', 'FLOAT(11) UNSIGNED'], [Sequelize.FLOAT(11).UNSIGNED.ZEROFILL,'FLOAT(11).UNSIGNED.ZEROFILL','FLOAT(11) UNSIGNED ZEROFILL'], [Sequelize.FLOAT(11).ZEROFILL,'FLOAT(11).ZEROFILL', 'FLOAT(11) ZEROFILL'], [Sequelize.FLOAT(11).ZEROFILL.UNSIGNED,'FLOAT(11).ZEROFILL.UNSIGNED', 'FLOAT(11) UNSIGNED ZEROFILL'], [Sequelize.FLOAT(11, 12), 'FLOAT(11,12)','FLOAT(11,12)'], [Sequelize.FLOAT(11, 12).UNSIGNED, 'FLOAT(11,12).UNSIGNED', 'FLOAT(11,12) UNSIGNED'], [Sequelize.FLOAT(11, 12).UNSIGNED.ZEROFILL,'FLOAT(11,12).UNSIGNED.ZEROFILL','FLOAT(11,12) UNSIGNED ZEROFILL'], [Sequelize.FLOAT(11, 12).ZEROFILL,'FLOAT(11,12).ZEROFILL', 'FLOAT(11,12) ZEROFILL'], [Sequelize.FLOAT(11, 12).ZEROFILL.UNSIGNED,'FLOAT(11,12).ZEROFILL.UNSIGNED', 'FLOAT(11,12) UNSIGNED ZEROFILL'], [Sequelize.DECIMAL, 'DECIMAL', 'DECIMAL'], [Sequelize.DECIMAL(10,2), 'DECIMAL(10,2)','DECIMAL(10,2)'] ] tests.forEach(function(test) { it('transforms "' + test[1] + '" to "' + test[2] + '"', function(done) { expect(test[0].toString()).to.equal(test[2]) done() }) }) })
it('FLOAT(11) should be an instance of FLOAT', function(done) { expect(Sequelize.FLOAT(11)).to.be.an.instanceof(Sequelize.FLOAT) done() })
it('should return false when comparing FLOAT and FLOAT(11)', function(done) { expect(Sequelize.FLOAT).to.not.equal(Sequelize.FLOAT(11)) done() })
test('should return `true` if `value` is a float', function() { var type = DataTypes.FLOAT(); expect(type.validate(1.2)).to.equal(true); });
suite('FLOAT', function () { testsql('FLOAT', DataTypes.FLOAT, { default: 'FLOAT', postgres: 'FLOAT' }); testsql('FLOAT.UNSIGNED', DataTypes.FLOAT.UNSIGNED, { default: 'FLOAT UNSIGNED', postgres: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11)', DataTypes.FLOAT(11), { default: 'FLOAT(11)', postgres: 'FLOAT(11)', // 1-24 = 4 bytes; 35-53 = 8 bytes mssql: 'FLOAT(11)' // 1-24 = 4 bytes; 35-53 = 8 bytes }); testsql('FLOAT(11).UNSIGNED', DataTypes.FLOAT(11).UNSIGNED, { default: 'FLOAT(11) UNSIGNED', sqlite: 'FLOAT UNSIGNED(11)', postgres: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT(11).UNSIGNED.ZEROFILL', DataTypes.FLOAT(11).UNSIGNED.ZEROFILL, { default: 'FLOAT(11) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11)', postgres: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT(11).ZEROFILL', DataTypes.FLOAT(11).ZEROFILL, { default: 'FLOAT(11) ZEROFILL', sqlite: 'FLOAT ZEROFILL(11)', postgres: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT({ length: 11 }).ZEROFILL', DataTypes.FLOAT({ length: 11 }).ZEROFILL, { default: 'FLOAT(11) ZEROFILL', sqlite: 'FLOAT ZEROFILL(11)', postgres: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT(11).ZEROFILL.UNSIGNED', DataTypes.FLOAT(11).ZEROFILL.UNSIGNED, { default: 'FLOAT(11) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11)', postgres: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT(11, 12)', DataTypes.FLOAT(11, 12), { default: 'FLOAT(11,12)', postgres: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11, 12).UNSIGNED', DataTypes.FLOAT(11, 12).UNSIGNED, { default: 'FLOAT(11,12) UNSIGNED', sqlite: 'FLOAT UNSIGNED(11,12)', postgres: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT({ length: 11, decimals: 12 }).UNSIGNED', DataTypes.FLOAT({ length: 11, decimals: 12 }).UNSIGNED, { default: 'FLOAT(11,12) UNSIGNED', sqlite: 'FLOAT UNSIGNED(11,12)', postgres: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11, 12).UNSIGNED.ZEROFILL', DataTypes.FLOAT(11, 12).UNSIGNED.ZEROFILL, { default: 'FLOAT(11,12) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11,12)', postgres: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11, 12).ZEROFILL', DataTypes.FLOAT(11, 12).ZEROFILL, { default: 'FLOAT(11,12) ZEROFILL', sqlite: 'FLOAT ZEROFILL(11,12)', postgres: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11, 12).ZEROFILL.UNSIGNED', DataTypes.FLOAT(11, 12).ZEROFILL.UNSIGNED, { default: 'FLOAT(11,12) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11,12)', postgres: 'FLOAT', mssql: 'FLOAT' }); suite('validate', function () { test('should throw an error if `value` is invalid', function() { var type = DataTypes.FLOAT(); expect(function () { type.validate('foobar'); }).to.throw(Sequelize.ValidationError, '"foobar" is not a valid float'); }); test('should return `true` if `value` is a float', function() { var type = DataTypes.FLOAT(); expect(type.validate(1.2)).to.equal(true); }); }); });
suite('FLOAT', function () { testsql('FLOAT', DataTypes.FLOAT, { default: 'FLOAT', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT.UNSIGNED', DataTypes.FLOAT.UNSIGNED, { default: 'FLOAT UNSIGNED', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11)', DataTypes.FLOAT(11), { default: 'FLOAT(11)', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11).UNSIGNED', DataTypes.FLOAT(11).UNSIGNED, { default: 'FLOAT(11) UNSIGNED', sqlite: 'FLOAT UNSIGNED(11)', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11).UNSIGNED.ZEROFILL', DataTypes.FLOAT(11).UNSIGNED.ZEROFILL, { default: 'FLOAT(11) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11)', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11).ZEROFILL', DataTypes.FLOAT(11).ZEROFILL, { default: 'FLOAT(11) ZEROFILL', sqlite: 'FLOAT ZEROFILL(11)', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11).ZEROFILL.UNSIGNED', DataTypes.FLOAT(11).ZEROFILL.UNSIGNED, { default: 'FLOAT(11) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11)', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11, 12)', DataTypes.FLOAT(11, 12), { default: 'FLOAT(11,12)', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11, 12).UNSIGNED', DataTypes.FLOAT(11, 12).UNSIGNED, { default: 'FLOAT(11,12) UNSIGNED', sqlite: 'FLOAT UNSIGNED(11,12)', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11, 12).UNSIGNED.ZEROFILL', DataTypes.FLOAT(11, 12).UNSIGNED.ZEROFILL, { default: 'FLOAT(11,12) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11,12)', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11, 12).ZEROFILL', DataTypes.FLOAT(11, 12).ZEROFILL, { default: 'FLOAT(11,12) ZEROFILL', sqlite: 'FLOAT ZEROFILL(11,12)', postgres: 'DOUBLE PRECISION' }); testsql('FLOAT(11, 12).ZEROFILL.UNSIGNED', DataTypes.FLOAT(11, 12).ZEROFILL.UNSIGNED, { default: 'FLOAT(11,12) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11,12)', postgres: 'DOUBLE PRECISION' }); });
describe(Support.getTestDialectTeaser('DataTypes'), function() { it('should return DECIMAL for the default decimal type', function(done) { expect(Sequelize.DECIMAL.toString()).to.equal('DECIMAL') done() }) it('should return DECIMAL(10,2) for the default decimal type with arguments', function(done) { expect(Sequelize.DECIMAL(10, 2)).to.equal('DECIMAL(10,2)') done() }) var tests = [ [Sequelize.STRING, 'STRING', 'VARCHAR(255)'], [Sequelize.STRING(1234), 'STRING(1234)', 'VARCHAR(1234)'], [Sequelize.STRING(1234).BINARY, 'STRING(1234).BINARY', 'VARCHAR(1234) BINARY'], [Sequelize.STRING.BINARY, 'STRING.BINARY', 'VARCHAR(255) BINARY'], [Sequelize.TEXT, 'TEXT', 'TEXT'], [Sequelize.DATE, 'DATE', 'DATETIME'], [Sequelize.NOW, 'NOW', 'NOW'], [Sequelize.UUID, 'UUID', 'CHAR(36)'], [Sequelize.BOOLEAN, 'BOOLEAN', 'TINYINT(1)'], [Sequelize.BLOB, 'BLOB', 'BLOB'], [Sequelize.BLOB('tiny'), 'BLOB(\'tiny\')', 'TINYBLOB'], [Sequelize.BLOB('medium'), 'BLOB(\'medium\')', 'MEDIUMBLOB'], [Sequelize.BLOB('long'), 'BLOB(\'long\')', 'LONGBLOB'], [Sequelize.INTEGER, 'INTEGER', 'INTEGER'], [Sequelize.INTEGER.UNSIGNED, 'INTEGER.UNSIGNED', 'INTEGER UNSIGNED'], [Sequelize.INTEGER(11), 'INTEGER(11)','INTEGER(11)'], [Sequelize.INTEGER(11).UNSIGNED, 'INTEGER(11).UNSIGNED', 'INTEGER(11) UNSIGNED'], [Sequelize.INTEGER(11).UNSIGNED.ZEROFILL,'INTEGER(11).UNSIGNED.ZEROFILL','INTEGER(11) UNSIGNED ZEROFILL'], [Sequelize.INTEGER(11).ZEROFILL,'INTEGER(11).ZEROFILL', 'INTEGER(11) ZEROFILL'], [Sequelize.INTEGER(11).ZEROFILL.UNSIGNED,'INTEGER(11).ZEROFILL.UNSIGNED', 'INTEGER(11) UNSIGNED ZEROFILL'], [Sequelize.BIGINT, 'BIGINT', 'BIGINT'], [Sequelize.BIGINT.UNSIGNED, 'BIGINT.UNSIGNED', 'BIGINT UNSIGNED'], [Sequelize.BIGINT(11), 'BIGINT(11)','BIGINT(11)'], [Sequelize.BIGINT(11).UNSIGNED, 'BIGINT(11).UNSIGNED', 'BIGINT(11) UNSIGNED'], [Sequelize.BIGINT(11).UNSIGNED.ZEROFILL, 'BIGINT(11).UNSIGNED.ZEROFILL','BIGINT(11) UNSIGNED ZEROFILL'], [Sequelize.BIGINT(11).ZEROFILL, 'BIGINT(11).ZEROFILL', 'BIGINT(11) ZEROFILL'], [Sequelize.BIGINT(11).ZEROFILL.UNSIGNED, 'BIGINT(11).ZEROFILL.UNSIGNED', 'BIGINT(11) UNSIGNED ZEROFILL'], [Sequelize.FLOAT, 'FLOAT', 'FLOAT'], [Sequelize.FLOAT.UNSIGNED, 'FLOAT.UNSIGNED', 'FLOAT UNSIGNED'], [Sequelize.FLOAT(11), 'FLOAT(11)','FLOAT(11)'], [Sequelize.FLOAT(11).UNSIGNED, 'FLOAT(11).UNSIGNED', 'FLOAT(11) UNSIGNED'], [Sequelize.FLOAT(11).UNSIGNED.ZEROFILL,'FLOAT(11).UNSIGNED.ZEROFILL','FLOAT(11) UNSIGNED ZEROFILL'], [Sequelize.FLOAT(11).ZEROFILL,'FLOAT(11).ZEROFILL', 'FLOAT(11) ZEROFILL'], [Sequelize.FLOAT(11).ZEROFILL.UNSIGNED,'FLOAT(11).ZEROFILL.UNSIGNED', 'FLOAT(11) UNSIGNED ZEROFILL'], [Sequelize.FLOAT(11, 12), 'FLOAT(11,12)','FLOAT(11,12)'], [Sequelize.FLOAT(11, 12).UNSIGNED, 'FLOAT(11,12).UNSIGNED', 'FLOAT(11,12) UNSIGNED'], [Sequelize.FLOAT(11, 12).UNSIGNED.ZEROFILL,'FLOAT(11,12).UNSIGNED.ZEROFILL','FLOAT(11,12) UNSIGNED ZEROFILL'], [Sequelize.FLOAT(11, 12).ZEROFILL,'FLOAT(11,12).ZEROFILL', 'FLOAT(11,12) ZEROFILL'], [Sequelize.FLOAT(11, 12).ZEROFILL.UNSIGNED,'FLOAT(11,12).ZEROFILL.UNSIGNED', 'FLOAT(11,12) UNSIGNED ZEROFILL'] ] tests.forEach(function(test) { it('transforms "' + test[1] + '" to "' + test[2] + '"', function(done) { expect(test[0].toString()).to.equal(test[2]) done() }) }) })
suite('FLOAT', () => { testsql('FLOAT', DataTypes.FLOAT, { default: 'FLOAT', postgres: 'FLOAT' }); testsql('FLOAT.UNSIGNED', DataTypes.FLOAT.UNSIGNED, { default: 'FLOAT UNSIGNED', postgres: 'FLOAT', db2: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11)', DataTypes.FLOAT(11), { default: 'FLOAT(11)', postgres: 'FLOAT(11)', // 1-24 = 4 bytes; 35-53 = 8 bytes db2: 'FLOAT(11)', // 1-24 = 4 bytes; 35-53 = 8 bytes mssql: 'FLOAT(11)' // 1-24 = 4 bytes; 35-53 = 8 bytes }); testsql('FLOAT(11).UNSIGNED', DataTypes.FLOAT(11).UNSIGNED, { default: 'FLOAT(11) UNSIGNED', sqlite: 'FLOAT UNSIGNED(11)', postgres: 'FLOAT(11)', db2: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT(11).UNSIGNED.ZEROFILL', DataTypes.FLOAT(11).UNSIGNED.ZEROFILL, { default: 'FLOAT(11) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11)', postgres: 'FLOAT(11)', db2: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT(11).ZEROFILL', DataTypes.FLOAT(11).ZEROFILL, { default: 'FLOAT(11) ZEROFILL', sqlite: 'FLOAT ZEROFILL(11)', postgres: 'FLOAT(11)', db2: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT({ length: 11 }).ZEROFILL', DataTypes.FLOAT({ length: 11 }).ZEROFILL, { default: 'FLOAT(11) ZEROFILL', sqlite: 'FLOAT ZEROFILL(11)', postgres: 'FLOAT(11)', db2: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT(11).ZEROFILL.UNSIGNED', DataTypes.FLOAT(11).ZEROFILL.UNSIGNED, { default: 'FLOAT(11) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11)', postgres: 'FLOAT(11)', db2: 'FLOAT(11)', mssql: 'FLOAT(11)' }); testsql('FLOAT(11, 12)', DataTypes.FLOAT(11, 12), { default: 'FLOAT(11,12)', postgres: 'FLOAT', db2: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11, 12).UNSIGNED', DataTypes.FLOAT(11, 12).UNSIGNED, { default: 'FLOAT(11,12) UNSIGNED', sqlite: 'FLOAT UNSIGNED(11,12)', postgres: 'FLOAT', db2: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT({ length: 11, decimals: 12 }).UNSIGNED', DataTypes.FLOAT({ length: 11, decimals: 12 }).UNSIGNED, { default: 'FLOAT(11,12) UNSIGNED', sqlite: 'FLOAT UNSIGNED(11,12)', postgres: 'FLOAT', db2: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11, 12).UNSIGNED.ZEROFILL', DataTypes.FLOAT(11, 12).UNSIGNED.ZEROFILL, { default: 'FLOAT(11,12) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11,12)', postgres: 'FLOAT', db2: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11, 12).ZEROFILL', DataTypes.FLOAT(11, 12).ZEROFILL, { default: 'FLOAT(11,12) ZEROFILL', sqlite: 'FLOAT ZEROFILL(11,12)', postgres: 'FLOAT', db2: 'FLOAT', mssql: 'FLOAT' }); testsql('FLOAT(11, 12).ZEROFILL.UNSIGNED', DataTypes.FLOAT(11, 12).ZEROFILL.UNSIGNED, { default: 'FLOAT(11,12) UNSIGNED ZEROFILL', sqlite: 'FLOAT UNSIGNED ZEROFILL(11,12)', postgres: 'FLOAT', db2: 'FLOAT', mssql: 'FLOAT' }); suite('validate', () => { test('should throw an error if value is invalid', () => { const type = DataTypes.FLOAT(); expect(() => { type.validate('foobar'); }).to.throw(Sequelize.ValidationError, '"foobar" is not a valid float'); }); test('should return true if value is a float', () => { const type = DataTypes.FLOAT(); expect(type.validate(1.2)).to.equal(true); expect(type.validate('1')).to.equal(true); expect(type.validate('1.2')).to.equal(true); expect(type.validate('-0.123')).to.equal(true); expect(type.validate('-0.22250738585072011e-307')).to.equal(true); }); }); });