Add vocalist preset selector
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import MusicAssistantCore
|
||||
import XCTest
|
||||
|
||||
final class LocalVocalistPresetCatalogTests: XCTestCase {
|
||||
func testCatalogSearchesVocalistRolesAndArabicTerms() {
|
||||
let catalog = LocalVocalistPresetCatalog()
|
||||
|
||||
XCTAssertEqual(
|
||||
catalog.vocalists(matching: "soprano").map(\.id),
|
||||
["mezzo-soprano", "soprano"]
|
||||
)
|
||||
XCTAssertEqual(catalog.vocalists(matching: "خليجي").map(\.id), ["khaleeji-female-lead", "khaleeji-male-lead"])
|
||||
XCTAssertEqual(
|
||||
catalog.vocalists(matching: "", familyCategory: "Harmony & Groups").map(\.id),
|
||||
[
|
||||
"children-choir",
|
||||
"duet",
|
||||
"female-choir",
|
||||
"female-harmony",
|
||||
"male-choir",
|
||||
"male-harmony",
|
||||
"mixed-choir",
|
||||
"mixed-harmony",
|
||||
"vocal-ensemble"
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
func testPresetAddsAndRemovesCompleteVocalistMetadataOnProject() {
|
||||
let preset = LocalVocalistPresetCatalog()
|
||||
.vocalists(matching: "Arabic Female Lead")
|
||||
.first!
|
||||
var project = SongProject(title: "Vocalist Project", idea: "Choose a vocalist")
|
||||
|
||||
project.upsertVocalist(preset.vocalist)
|
||||
|
||||
XCTAssertEqual(project.vocalist(for: preset.id), preset.vocalist)
|
||||
XCTAssertEqual(project.vocalist(for: preset.id)?.voiceType, "ornamented female lead")
|
||||
XCTAssertEqual(project.vocalist(for: preset.id)?.performanceStyle, "Arabic melodic delivery")
|
||||
|
||||
project.removeVocalist(id: preset.id)
|
||||
|
||||
XCTAssertNil(project.vocalist(for: preset.id))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user