Part of #26 Blocked by: #31, whose shared test device this builds on.
The commands in src-tauri/src/lib.rs (4,600 lines) take a concrete tauri::AppHandle, so nothing in cargo test reaches a decision made in a command's body. change_document must refuse before hear_the_knobs and before prepare, or the folder's stale record plays over the room's: its test reaches Document::editable only. follow_room's choice of document or folder, its prepare once out of the room and the window title it sets are proved only as far as titled reads; a mutant removing titled stays green. play, stop, locate and move_sequencers routing to the room is mirrored by the fake backend, which proves the window and not the backend. audition_parameter's body had to be pulled out of its command to show a knob's effect on a real Mix. set_audio and follow_the_devices prepare from the folder while a room holds the document, each with the guard written out by hand, found by review and not by a test.
Done when each command with a decision in it is a function over Current, Playback, Rooms and whatever else it reads, called by a thin command, as publish_patch::publish and room_draft::take_in already are; or the commands are generic over tauri::Runtime so tauri::test::mock_app reaches them, as windows.rs is. Which road is a change of its own and is decided in the first commit's message. There is one place that says what may be prepared while a room holds the document, so a caller of prepare cannot forget. The tests named above exist and were seen red.