Auto-commit 2026-03-30 16:30

This commit is contained in:
2026-03-30 16:30:46 -04:00
parent 5fc7ed74c4
commit a6da9ef9cf
41 changed files with 3438 additions and 0 deletions

View 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)
}
}