test: Add chaos tests for number input, decimals, and leading zeros
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
@@ -457,6 +457,58 @@ test('Backspace', () => {
|
||||
checkDisplay('0');
|
||||
});
|
||||
|
||||
test('Number input chaos: decimals and backspace', () => {
|
||||
// Multiple decimals
|
||||
press('1.2.3');
|
||||
checkDisplay('1.23', 'Second decimal point should be ignored');
|
||||
press('R'); press('R');
|
||||
|
||||
// Multiple leading decimals
|
||||
press('..123');
|
||||
checkDisplay('0.123', 'Multiple leading decimal points should result in 0.123');
|
||||
press('R'); press('R');
|
||||
|
||||
// Backspace over decimal and re-add
|
||||
press('1.23B');
|
||||
checkDisplay('1.2', 'Backspace once');
|
||||
press('B');
|
||||
checkDisplay('1.', 'Backspace twice');
|
||||
press('.');
|
||||
checkDisplay('1.', 'Adding decimal again should have no effect');
|
||||
press('B');
|
||||
checkDisplay('1', 'Backspace a third time');
|
||||
press('.');
|
||||
checkDisplay('1.', 'Should be able to add decimal back');
|
||||
press('45');
|
||||
checkDisplay('1.45', 'Can add numbers after new decimal');
|
||||
press('.');
|
||||
checkDisplay('1.45', 'Another decimal should be ignored');
|
||||
});
|
||||
|
||||
test('Number input chaos: leading zeros', () => {
|
||||
press('01');
|
||||
checkDisplay('1', 'Leading zero on integer should be replaced');
|
||||
press('R'); press('R');
|
||||
|
||||
press('000123');
|
||||
checkDisplay('123', 'Multiple leading zeros on integer should be replaced');
|
||||
press('R'); press('R');
|
||||
|
||||
press('0.123');
|
||||
checkDisplay('0.123', 'Single zero before decimal is kept');
|
||||
press('R'); press('R');
|
||||
|
||||
press('00.123');
|
||||
checkDisplay('0.123', 'Multiple zeros before decimal are collapsed to one');
|
||||
press('R'); press('R');
|
||||
|
||||
press('123');
|
||||
press('R'); // C
|
||||
checkDisplay(0, 'Clear should result in 0');
|
||||
press('007');
|
||||
checkDisplay('7', 'Can input number with leading zeros after a clear');
|
||||
});
|
||||
|
||||
test('Repeated equals', () => {
|
||||
press('2+3=');
|
||||
checkDisplay('5');
|
||||
|
||||
Reference in New Issue
Block a user