Files
music-assistant/Tests/MusicAssistantCoreTests/LocalLanguageCatalogTests.swift
T
2026-09-15 23:20:48 +02:00

62 lines
2.0 KiB
Swift

import MusicAssistantCore
import XCTest
final class LocalLanguageCatalogTests: XCTestCase {
func testWorldwideCatalogSearchesArabicTermsAndRegionalCategories() {
let catalog = LocalLanguageCatalog()
let expectedCategories: Set<String> = [
"Middle East & North Africa",
"Europe",
"South Asia",
"East Asia",
"Southeast Asia",
"Africa",
"Americas",
"Oceania & Pacific"
]
XCTAssertGreaterThan(catalog.items.count, 70)
XCTAssertTrue(expectedCategories.isSubset(of: Set(catalog.familyCategories)))
XCTAssertEqual(catalog.languages(matching: "عربي").map(\.id), ["arabic"])
XCTAssertEqual(catalog.languages(matching: "한국어").map(\.id), ["korean"])
XCTAssertEqual(
catalog.languages(matching: "", familyCategory: "South Asia").map(\.id),
[
"bengali",
"gujarati",
"hindi",
"kannada",
"malayalam",
"marathi",
"nepali",
"pashto",
"punjabi",
"sinhala",
"tamil",
"telugu",
"urdu"
]
)
}
func testDeselectingLanguageRemovesItsLinkedDialects() {
var project = SongProject(
title: "Language Project",
idea: "Use Arabic and English",
languages: [
LanguageSelection(id: "arabic", name: "Arabic"),
LanguageSelection(id: "english", name: "English")
],
dialects: [
DialectSelection(id: "levantine", name: "Levantine", languageID: "arabic"),
DialectSelection(id: "us-english", name: "US English", languageID: "english")
]
)
project.removeLanguage(id: "arabic")
XCTAssertEqual(project.languages.map(\.id), ["english"])
XCTAssertEqual(project.dialects.map(\.id), ["us-english"])
}
}