Verifies that when a user cancels their trade, the slot becomes available for booking by other users.
Users can no longer cancel trades once the slot time has passed. Added test to verify this behavior.
The agreed_price depends on trade direction (buy/sell) and must be calculated on the frontend. Returning a buy-side-only agreed_price from the API was misleading and unused. Frontend already calculates the direction-aware price correctly.
Comprehensive test coverage for exchange endpoints: - Price endpoint: permission checks, price retrieval, staleness, config - Create exchange: buy/sell, double booking, validation, stale price - User trades: list trades, cancel own trade, cancel restrictions - Admin trades: view upcoming/past, complete, no-show, cancel Tests mock the Bitfinex price fetcher to ensure deterministic results.