PASS  GET /bills is 200
PASS  summary counts all bills
PASS  page 1 is the 25 newest bills
PASS  footer total charged over every matching bill
PASS  page 2 starts at offset 25
PASS  page 999 is clamped to the last page
PASS  sort by customer name, ascending, id breaks ties
PASS  sort by amount charged, descending, 10 rows
PASS  sort by outlet name, page 3 of 50 rows
PASS  a page size outside the list falls back to 25
PASS  an injected sort column is ignored (default order)
PASS  an injected outlet is ignored (no filter)
PASS  filter by outlet and status
PASS  filtered summary
PASS  filter by date range, 'to' inclusive
PASS  an impossible date is ignored
PASS  partial=1 returns only the grid fragment
PASS  a message with a forged bill id is not shown
PASS  edit=B2953 shows the inline editor
PASS  delete=B2951 asks for confirmation in the row
PASS  CSV: text/csv, attachment
PASS  CSV: BOM, header and one line per bill
PASS  CSV: a comma inside a field is quoted
PASS  CSV: rows in grid order
PASS  status queued -> finished answers 303 See Other
PASS  the redirect keeps the grid's state and names the result
PASS  the message is shown and the bill moved
PASS  the same stale edit again is a conflict
PASS  skipping a step is refused
PASS  an unknown bill is reported
PASS  a queued but partly paid bill is not deleted
PASS  a departed bill is not deleted
PASS  a queued unpaid bill is deleted
PASS  it is gone from the grid
PASS  deleting it twice says it does not exist
PASS  a POST from another origin is refused with 403
PASS  a cross-site POST (Fetch Metadata) is refused with 403
PASS  /static/grid.css is served
PASS  /static/grid-enhance.js is served
PASS  /static/profitina-logo-horizontal.png is served

40 passed, 0 failed
--- last lines of the server log ---
      Request finished HTTP/1.1 GET http://127.0.0.1:9301/static/grid-enhance.js - 200 3924 text/javascript 6.3828ms
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
      Request finished HTTP/1.1 GET http://127.0.0.1:9301/static/profitina-logo-horizontal.png - 200 26449 image/png 2.7665ms
info: Microsoft.Hosting.Lifetime[0]
      Application is shutting down...
