ATMOSYNTH Groove: a desktop DAW whose instruments and effects are ATMOSYNTH patches, on ATproto.

What a command decides is tested without an AppHandle #30

Open opened by center.for.cybernetic.beauty

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.

Sign up or Sign in to add to the discussion.