fix: Set falsy values as default to schema fields (#5868)

This commit is contained in:
Lucas Alencar
2019-07-30 17:51:49 -03:00
committed by Diamond Lewis
parent 218c3499f9
commit 6080dbc4f9
2 changed files with 9 additions and 1 deletions

View File

@@ -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();
});
});

View File

@@ -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'))