Skip to content

Commit 6080dbc

Browse files
alencarlucasdplewis
authored andcommitted
fix: Set falsy values as default to schema fields (#5868)
1 parent 218c349 commit 6080dbc

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

spec/schemas.spec.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,8 @@ describe('schemas', () => {
425425
foo4: { type: 'Date', required: true },
426426
foo5: { type: 'Number', defaultValue: 5 },
427427
ptr: { type: 'Pointer', targetClass: 'SomeClass', required: false },
428+
defaultFalse: { type: 'Boolean', required: true, defaultValue: false },
429+
defaultZero: { type: 'Number', defaultValue: 0 }
428430
},
429431
},
430432
}).then(async response => {
@@ -445,6 +447,8 @@ describe('schemas', () => {
445447
foo4: { type: 'Date', required: true },
446448
foo5: { type: 'Number', defaultValue: 5 },
447449
ptr: { type: 'Pointer', targetClass: 'SomeClass', required: false },
450+
defaultFalse: { type: 'Boolean', required: true, defaultValue: false },
451+
defaultZero: { type: 'Number', defaultValue: 0 }
448452
},
449453
classLevelPermissions: defaultClassLevelPermissions,
450454
});
@@ -464,6 +468,9 @@ describe('schemas', () => {
464468
expect(obj.get('foo4')).toEqual(date);
465469
expect(obj.get('foo5')).toEqual(5);
466470
expect(obj.get('ptr')).toBeUndefined();
471+
expect(obj.get('defaultFalse')).toEqual(false)
472+
expect(obj.get('defaultZero')).toEqual(0)
473+
expect(obj.get('ptr')).toBeUndefined();
467474
done();
468475
});
469476
});

src/RestWrite.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,8 @@ RestWrite.prototype.setRequiredFieldsIfNeeded = function() {
338338
if (
339339
setDefault &&
340340
schema.fields[fieldName] &&
341-
schema.fields[fieldName].defaultValue &&
341+
schema.fields[fieldName].defaultValue !== null &&
342+
schema.fields[fieldName].defaultValue !== undefined &&
342343
(this.data[fieldName] === undefined ||
343344
(typeof this.data[fieldName] === 'object' &&
344345
this.data[fieldName].__op === 'Delete'))

0 commit comments

Comments
 (0)