@@ -179,6 +179,50 @@ final class NumberPadTests: XCTestCase {
179179 XCTAssertEqual ( viewModel. amountSats, 0 )
180180 }
181181
182+ func testDeleteAfterMaxAmountModernBitcoin( ) {
183+ let viewModel = AmountInputViewModel ( )
184+ let currency = mockCurrency ( primaryDisplay: . bitcoin, displayUnit: . modern)
185+
186+ // Set max amount using updateFromSats (simulates tapping max button)
187+ // This creates formatted text with spaces (e.g., "100 000 000")
188+ viewModel. updateFromSats ( 100_000_000 , currency: currency)
189+ XCTAssertEqual ( viewModel. displayText, " 100 000 000 " )
190+ XCTAssertEqual ( viewModel. amountSats, 100_000_000 )
191+
192+ // Delete should remove digits, not spaces
193+ // After first delete, should be "10 000 000" (one digit removed)
194+ viewModel. handleNumberPadInput ( " delete " , currency: currency)
195+ XCTAssertEqual ( viewModel. displayText, " 10 000 000 " )
196+ XCTAssertEqual ( viewModel. amountSats, 10_000_000 )
197+
198+ // Delete again
199+ viewModel. handleNumberPadInput ( " delete " , currency: currency)
200+ XCTAssertEqual ( viewModel. displayText, " 1 000 000 " )
201+ XCTAssertEqual ( viewModel. amountSats, 1_000_000 )
202+
203+ // Delete again
204+ viewModel. handleNumberPadInput ( " delete " , currency: currency)
205+ XCTAssertEqual ( viewModel. displayText, " 100 000 " )
206+ XCTAssertEqual ( viewModel. amountSats, 100_000 )
207+ }
208+
209+ func testDeleteAfterMaxAmountFiat( ) {
210+ let viewModel = AmountInputViewModel ( )
211+ let currency = mockCurrency ( primaryDisplay: . fiat)
212+
213+ // Set max amount using updateFromSats (simulates tapping max button)
214+ // This creates formatted text with commas (e.g., "1,000.00")
215+ viewModel. updateFromSats ( 100_000_000 , currency: currency)
216+ // Note: The actual display text depends on currency conversion, but it should have commas
217+ let initialDisplay = viewModel. displayText
218+ XCTAssertTrue ( initialDisplay. contains ( " , " ) || initialDisplay. isEmpty == false )
219+
220+ // Delete should remove digits, not commas
221+ viewModel. handleNumberPadInput ( " delete " , currency: currency)
222+ // After delete, the amount should decrease
223+ XCTAssertLessThan ( viewModel. amountSats, 100_000_000 )
224+ }
225+
182226 // MARK: - Leading Zero Tests
183227
184228 func testLeadingZeroBehavior( ) {
0 commit comments