restructure
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
This commit is contained in:
89
iOS/RSSuperTests/SearchResultTests.swift
Normal file
89
iOS/RSSuperTests/SearchResultTests.swift
Normal file
@@ -0,0 +1,89 @@
|
||||
import XCTest
|
||||
@testable import RSSuper
|
||||
|
||||
/// Unit tests for SearchResult and related types
|
||||
final class SearchResultTests: XCTestCase {
|
||||
|
||||
func testArticleResultCreation() {
|
||||
let result = SearchResult.article(
|
||||
id: "article-123",
|
||||
title: "Test Article",
|
||||
snippet: "This is a snippet",
|
||||
link: "https://example.com/article",
|
||||
feedTitle: "Test Feed",
|
||||
published: Date(),
|
||||
score: 0.95,
|
||||
author: "Test Author"
|
||||
)
|
||||
|
||||
XCTAssertEqual(result.id, "article-123")
|
||||
XCTAssertEqual(result.type, .article)
|
||||
XCTAssertEqual(result.title, "Test Article")
|
||||
XCTAssertEqual(result.snippet, "This is a snippet")
|
||||
XCTAssertEqual(result.link, "https://example.com/article")
|
||||
XCTAssertEqual(result.feedTitle, "Test Feed")
|
||||
XCTAssertEqual(result.score, 0.95)
|
||||
XCTAssertEqual(result.author, "Test Author")
|
||||
}
|
||||
|
||||
func testFeedResultCreation() {
|
||||
let result = SearchResult.feed(
|
||||
id: "feed-456",
|
||||
title: "Test Feed",
|
||||
link: "https://example.com/feed.xml",
|
||||
score: 0.85
|
||||
)
|
||||
|
||||
XCTAssertEqual(result.id, "feed-456")
|
||||
XCTAssertEqual(result.type, .feed)
|
||||
XCTAssertEqual(result.title, "Test Feed")
|
||||
XCTAssertEqual(result.link, "https://example.com/feed.xml")
|
||||
XCTAssertEqual(result.score, 0.85)
|
||||
}
|
||||
|
||||
func testSuggestionResultCreation() {
|
||||
let result = SearchResult.suggestion(
|
||||
text: "swift programming",
|
||||
score: 0.75
|
||||
)
|
||||
|
||||
XCTAssertEqual(result.type, .suggestion)
|
||||
XCTAssertEqual(result.title, "swift programming")
|
||||
XCTAssertEqual(result.score, 0.75)
|
||||
}
|
||||
|
||||
func testSearchResultTypeEncoding() {
|
||||
XCTAssertEqual(SearchResultType.article.rawValue, "article")
|
||||
XCTAssertEqual(SearchResultType.feed.rawValue, "feed")
|
||||
XCTAssertEqual(SearchResultType.suggestion.rawValue, "suggestion")
|
||||
XCTAssertEqual(SearchResultType.tag.rawValue, "tag")
|
||||
XCTAssertEqual(SearchResultType.author.rawValue, "author")
|
||||
}
|
||||
|
||||
func testSearchResultEquatable() {
|
||||
let result1 = SearchResult.article(id: "1", title: "Test")
|
||||
let result2 = SearchResult.article(id: "1", title: "Test")
|
||||
let result3 = SearchResult.article(id: "2", title: "Test")
|
||||
|
||||
XCTAssertEqual(result1, result2)
|
||||
XCTAssertNotEqual(result1, result3)
|
||||
}
|
||||
|
||||
func testSearchResults totalCount() {
|
||||
let results = SearchResults(
|
||||
articles: [SearchResult.article(id: "1", title: "A")],
|
||||
feeds: [SearchResult.feed(id: "2", title: "F")],
|
||||
suggestions: []
|
||||
)
|
||||
|
||||
XCTAssertEqual(results.totalCount, 2)
|
||||
XCTAssertTrue(results.hasResults)
|
||||
}
|
||||
|
||||
func testSearchResultsEmpty() {
|
||||
let results = SearchResults(articles: [], feeds: [], suggestions: [])
|
||||
|
||||
XCTAssertEqual(results.totalCount, 0)
|
||||
XCTAssertFalse(results.hasResults)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user