Add instrument checkbox selection
This commit is contained in:
@@ -281,6 +281,40 @@ final class SongProjectModelTests: XCTestCase {
|
||||
XCTAssertEqual(project.instrumentTrack(for: "oud")?.placements, [introPlacement])
|
||||
}
|
||||
|
||||
func testCatalogSelectionCanBeToggledWithoutReplacingExistingArrangement() {
|
||||
let oudPlacement = InstrumentPlacement(sectionId: "intro", direction: "Opening melody")
|
||||
var project = SongProject(
|
||||
id: "catalog-selection-project",
|
||||
title: "Catalog Selection",
|
||||
idea: "Select and deselect instruments",
|
||||
instruments: [
|
||||
InstrumentTrack(
|
||||
instrumentId: "oud",
|
||||
selected: false,
|
||||
variant: "Arabic oud",
|
||||
playingStyle: "tremolo",
|
||||
role: "main hook",
|
||||
autoArrangementEnabled: false,
|
||||
placements: [oudPlacement]
|
||||
)
|
||||
]
|
||||
)
|
||||
|
||||
project.setInstrumentSelected(id: "oud", isSelected: true, variant: "Oud")
|
||||
|
||||
XCTAssertTrue(project.isInstrumentSelected(id: "oud"))
|
||||
XCTAssertEqual(project.instrumentTrack(for: "oud")?.variant, "Arabic oud")
|
||||
XCTAssertEqual(project.instrumentTrack(for: "oud")?.role, "main hook")
|
||||
XCTAssertEqual(project.instrumentTrack(for: "oud")?.placements, [oudPlacement])
|
||||
|
||||
project.setInstrumentSelected(id: "oud", isSelected: false)
|
||||
project.setInstrumentSelected(id: "violin", isSelected: true, variant: "Violin")
|
||||
|
||||
XCTAssertFalse(project.isInstrumentSelected(id: "oud"))
|
||||
XCTAssertTrue(project.isInstrumentSelected(id: "violin"))
|
||||
XCTAssertEqual(project.instrumentTrack(for: "violin")?.variant, "Violin")
|
||||
}
|
||||
|
||||
func testMultipleVocalistsCanBeAssignedToSections() {
|
||||
var project = SongProject(
|
||||
id: "project-6",
|
||||
|
||||
Reference in New Issue
Block a user