FIELD NOTES · ACCEPTANCE EXERCISES

A decimal quantity must match the configured step

The commissioning decision

A materials supplier sells quantities in half-unit increments starting at 0.25. A form uses the default whole-number step, rejects legitimate requests and makes the price calculator appear broken. Agree the quantity lattice and limits before evaluating the calculator itself.

Source and claim boundary

A number input’s step interacts with its step base; min can define that base. The default step is1, so a decimal is not automatically a valid value. MDN · Checked 16 October 2026.

Filled synthetic acceptance cases

Synthetic teaching data, not client records. Review the inputs and expected outcomes before running the isolated browser exercise. On narrow screens, scroll the table.

InputCheckExpected
min=.25, step=.5, value=.75Native step validityPass
min=.25, step=.5, value=.5Native step mismatchFail
min=.25, max=2.25, value=2.75Range limitFail

How to verify beyond appearance

  1. Write accepted example quantities and at least one in-range invalid value.
  2. Run native step and range checks in the fixture.
  3. Compare approved quantities with the receiving stock and quotation rules in a separate test.

Interpret the result

A quantity can be within the range and still off the allowed lattice. Preserve stepMismatch and range flags separately rather than one generic invalid message. Browser validity does not prove stock availability, rounding policy or an accurate price. Those remain independent contracts, especially when units differ between purchasing and fulfilment.

What this does not prove

This fixture uses exactly representable half-unit examples. Real monetary rounding, measurement precision and stock systems are outside its scope.

Runnable fixture and handover record

Open the browser acceptance fixture · Read the test source。The fixture creates temporary elements with synthetic values inside the browser. It reads no account, uploads no file, and sends no email or form. Record the browser version, check name, observed value and pass state. Keep real integration evidence separate: a local pass is not a live delivery result.