Skip to content

Commit b08d3da

Browse files
committed
Add new tests for SiteStore
1 parent 60efac5 commit b08d3da

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

Yosemite/YosemiteTests/Stores/SiteStoreTests.swift

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,47 @@ final class SiteStoreTests: XCTestCase {
323323
let error = try XCTUnwrap(result.failure)
324324
XCTAssertEqual(error as? DotcomError, .unknown(code: "error", message: nil))
325325
}
326+
327+
// MARK: - `syncSiteByDomain`
328+
329+
func test_syncSiteByDomain_returns_site_on_success() {
330+
// Given
331+
let siteID: Int64 = 123
332+
let domain = "example.com"
333+
let site = Site.fake().copy(siteID: siteID, name: "Miffy", url: "https://\(domain)")
334+
remote.whenLoadingSite(thenReturn: .success(site))
335+
336+
// When
337+
let result = waitFor { promise in
338+
self.store.onAction(SiteAction.syncSiteByDomain(domain: domain, completion: { result in
339+
promise(result)
340+
}))
341+
}
342+
343+
// Then
344+
XCTAssertTrue(result.isSuccess)
345+
let loadedSite = viewStorage.loadSite(siteID: siteID)
346+
XCTAssertEqual(loadedSite?.name, "Miffy")
347+
}
348+
349+
func test_syncSiteByDomain_returns_error_on_failure() throws {
350+
// Given
351+
let siteID: Int64 = 123
352+
let domain = "example.com"
353+
remote.whenLoadingSite(thenReturn: .failure(DotcomError.unknown(code: "error", message: nil)))
354+
355+
// When
356+
let result = waitFor { promise in
357+
self.store.onAction(SiteAction.syncSiteByDomain(domain: domain, completion: { result in
358+
promise(result)
359+
}))
360+
}
361+
362+
// Then
363+
XCTAssertFalse(result.isSuccess)
364+
let error = try XCTUnwrap(result.failure)
365+
XCTAssertEqual(error as? DotcomError, .unknown(code: "error", message: nil))
366+
}
326367
}
327368

328369
private extension SiteStoreTests {

0 commit comments

Comments
 (0)