Skip to content

Commit

Permalink
fix(kit): Number should drop decimal separator if all digits are er…
Browse files Browse the repository at this point in the history
…ased
  • Loading branch information
nsbarsukov committed Apr 23, 2024
1 parent ed06936 commit bd80c7d
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import {maskitoNumberOptionsGenerator} from '@maskito/kit';

import {TestInput} from '../utils';

describe('Number | should drop decimal separator if all digits are erased', () => {
beforeEach(() => {
cy.mount(TestInput, {
componentProperties: {
maskitoOptions: maskitoNumberOptionsGenerator({
precision: 2,
minusSign: '-',
}),
},
});
cy.get('input').focus().should('have.value', '');
});

it('empty integer part & NOT empty decimal part => keeps decimal separator untouched', () => {
cy.get('input')
.type('0.12')
.type('{backspace}'.repeat(2))
.should('have.value', '0.');
});

it('NOT empty integer part & empty decimal part => keeps decimal separator untouched', () => {
cy.get('input')
.type('0.12')
.type('{moveToStart}')
.type('{del}')
.should('have.value', '.12');
});

describe('empty integer part & empty decimal part => drops decimal separator', () => {
[
{minusSign: '', testTitle: 'Without minus'},
{minusSign: '-', testTitle: 'With minus'},
].forEach(({testTitle, minusSign}) => {
it(testTitle, () => {
cy.get('input')
.type(`${minusSign}0.12`)
.type('{backspace}'.repeat(2))
.type(`{moveToStart}${'{rightArrow}'.repeat(minusSign.length)}`)
.type('{del}')
.should('have.value', minusSign)
// and then repeat everything in reversed order
.type('0.12')
.type(`{moveToStart}${'{rightArrow}'.repeat(minusSign.length)}`)
.type('{del}')
.type('{moveToEnd}')
.type('{backspace}'.repeat(2))
.should('have.value', minusSign);
});
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,14 @@ export function emptyPostprocessor({
cleanValue,
decimalSeparator,
);
const aloneDecimalSeparator =
!integerPart && !decimalPart && cleanValue.includes(decimalSeparator);

if (
!integerPart &&
!Number(decimalPart) &&
caretIndex === (minus + extractedPrefix).length
(!integerPart &&
!Number(decimalPart) &&
caretIndex === (minus + extractedPrefix).length) ||
aloneDecimalSeparator
) {
return {
selection,
Expand Down

0 comments on commit bd80c7d

Please sign in to comment.