fix: Set falsy values as default to schema fields (#5868)
This commit is contained in:
committed by
Diamond Lewis
parent
218c3499f9
commit
6080dbc4f9
@@ -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();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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'))
|
||||
|
||||
Reference in New Issue
Block a user