diff --git a/packages/netlify-cms-widget-number/src/NumberControl.js b/packages/netlify-cms-widget-number/src/NumberControl.js index 1caa9218..96ddd6e6 100644 --- a/packages/netlify-cms-widget-number/src/NumberControl.js +++ b/packages/netlify-cms-widget-number/src/NumberControl.js @@ -100,7 +100,7 @@ export default class NumberControl extends React.Component { className={classNameWrapper} onFocus={setActiveStyle} onBlur={setInactiveStyle} - value={value || ''} + value={value || (value === 0 ? value : '')} step={step} min={min} max={max} diff --git a/packages/netlify-cms-widget-number/src/__tests__/number.spec.js b/packages/netlify-cms-widget-number/src/__tests__/number.spec.js index eb4afa6e..85884bf3 100644 --- a/packages/netlify-cms-widget-number/src/__tests__/number.spec.js +++ b/packages/netlify-cms-widget-number/src/__tests__/number.spec.js @@ -119,4 +119,15 @@ describe('Number widget', () => { expect(onChangeSpy).toHaveBeenCalledTimes(1); expect(onChangeSpy).toHaveBeenCalledWith(parseInt(testValue, 10)); }); + + it('should allow 0 as a value', () => { + const field = fromJS(fieldSettings); + const testValue = 0; + const { input } = setup({ field }); + + fireEvent.focus(input); + fireEvent.change(input, { target: { value: String(testValue) } }); + + expect(input.value).toBe('0'); + }); });