diff --git a/spec/schemas.spec.js b/spec/schemas.spec.js index e0969aad37..a48cf6f0e1 100644 --- a/spec/schemas.spec.js +++ b/spec/schemas.spec.js @@ -425,6 +425,8 @@ describe('schemas', () => { foo4: { type: 'Date', required: true }, foo5: { type: 'Number', defaultValue: 5 }, ptr: { type: 'Pointer', targetClass: 'SomeClass', required: false }, + defaultFalse: { type: 'Boolean', required: true, defaultValue: false }, + defaultZero: { type: 'Number', defaultValue: 0 } }, }, }).then(async response => { @@ -445,6 +447,8 @@ describe('schemas', () => { foo4: { type: 'Date', required: true }, foo5: { type: 'Number', defaultValue: 5 }, ptr: { type: 'Pointer', targetClass: 'SomeClass', required: false }, + defaultFalse: { type: 'Boolean', required: true, defaultValue: false }, + defaultZero: { type: 'Number', defaultValue: 0 } }, classLevelPermissions: defaultClassLevelPermissions, }); @@ -464,6 +468,9 @@ describe('schemas', () => { expect(obj.get('foo4')).toEqual(date); expect(obj.get('foo5')).toEqual(5); expect(obj.get('ptr')).toBeUndefined(); + expect(obj.get('defaultFalse')).toEqual(false) + expect(obj.get('defaultZero')).toEqual(0) + expect(obj.get('ptr')).toBeUndefined(); done(); }); }); diff --git a/src/RestWrite.js b/src/RestWrite.js index 5b6efb279f..148bf4a3af 100644 --- a/src/RestWrite.js +++ b/src/RestWrite.js @@ -338,7 +338,8 @@ RestWrite.prototype.setRequiredFieldsIfNeeded = function() { if ( setDefault && schema.fields[fieldName] && - schema.fields[fieldName].defaultValue && + schema.fields[fieldName].defaultValue !== null && + schema.fields[fieldName].defaultValue !== undefined && (this.data[fieldName] === undefined || (typeof this.data[fieldName] === 'object' && this.data[fieldName].__op === 'Delete'))