Files
bundesmessenger-ios/RiotTests/EmojiStoreTests.swift
Mauro Romito 12837d4b89 update license
2024-09-25 12:24:52 +02:00

52 lines
1.4 KiB
Swift
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
Copyright 2021-2024 New Vector Ltd.
SPDX-License-Identifier: AGPL-3.0-only
Please see LICENSE in the repository root for full details.
*/
import XCTest
@testable import Element
class EmojiStoreTests: XCTestCase {
func testFinds💯WhenSearchingForHundred() {
find("hundred", expect: "💯")
}
func testFinds💯WhenSearchingFor100() {
find("100", expect: "💯")
}
func testFinds2WhenSearchingForTwo() {
find("two", expect: "2")
}
func testFinds2WhenSearchingFor2() {
find("2", expect: "2")
}
// MARK: - Private
private func find(_ searchText: String, expect emoji: String) {
loadEmojiStore { emojiStore in
let emojis = emojiStore.findEmojiItemsSortedByCategory(with: searchText).flatMap { $0.emojis.map { $0.value } }
XCTAssert(emojis.contains(emoji), "Search text \"\(searchText)\" should find \"\(emoji)\" but only found \(emojis)")
}
}
private func loadEmojiStore(_ completion: @escaping (EmojiStore) -> Void) {
EmojiMartService().getEmojiCategories { response in
switch response {
case .success(let categories):
let store = EmojiStore()
store.set(categories)
completion(store)
case .failure(let error):
XCTFail("Failed to load emojis: \(error)")
}
}
}
}