mirror of
https://github.com/kean/Pulse.git
synced 2026-05-30 21:07:33 +00:00
77 lines
2.1 KiB
Swift
77 lines
2.1 KiB
Swift
// The MIT License (MIT)
|
|
//
|
|
// Copyright (c) 2020-2023 Alexander Grebenyuk (github.com/kean).
|
|
|
|
import XCTest
|
|
@testable import Pulse
|
|
@testable import PulseUI
|
|
|
|
final class ConsoleEnvironmentTests: ConsoleTestCase {
|
|
var mode: ConsoleMode = .all
|
|
var isOnlyNetwork = false
|
|
var options = ConsoleListOptions()
|
|
|
|
var sut: ConsoleEnvironment!
|
|
|
|
override func setUp() {
|
|
super.setUp()
|
|
|
|
reset()
|
|
}
|
|
|
|
private func reset() {
|
|
sut = ConsoleEnvironment(store: store, mode: mode)
|
|
}
|
|
|
|
// MARK: Counters
|
|
|
|
func testCountersArePopulatedWithInitialValues() {
|
|
XCTAssertEqual(sut.logCountObserver.count, 5)
|
|
XCTAssertEqual(sut.taskCountObserver.count, 8)
|
|
}
|
|
|
|
func testCountersAreUpdatedWhenPredicatesAre() {
|
|
let expectation = self.expectation(description: "countersUpdated")
|
|
expectation.expectedFulfillmentCount = 2
|
|
|
|
sut.logCountObserver.$count.dropFirst().sink {
|
|
XCTAssertEqual($0, 1)
|
|
expectation.fulfill()
|
|
}.store(in: &cancellables)
|
|
|
|
sut.taskCountObserver.$count.dropFirst().sink {
|
|
XCTAssertEqual($0, 2)
|
|
expectation.fulfill()
|
|
}.store(in: &cancellables)
|
|
|
|
sut.filters.options.isOnlyErrors = true
|
|
wait(for: [expectation], timeout: 2)
|
|
}
|
|
|
|
func testCountersAreUpdatedWhenMessageIsInserted() {
|
|
let expectation = self.expectation(description: "countersUpdated")
|
|
|
|
sut.logCountObserver.$count.dropFirst().sink {
|
|
XCTAssertEqual($0, 6)
|
|
expectation.fulfill()
|
|
}.store(in: &cancellables)
|
|
|
|
store.storeMessage(label: "test", level: .debug, message: "test")
|
|
|
|
wait(for: [expectation], timeout: 2)
|
|
}
|
|
|
|
func testCountersAreUpdatedWhenTaskIsInserted() {
|
|
let expectation = self.expectation(description: "countersUpdated")
|
|
|
|
sut.taskCountObserver.$count.dropFirst().sink {
|
|
XCTAssertEqual($0, 9)
|
|
expectation.fulfill()
|
|
}.store(in: &cancellables)
|
|
|
|
store.storeRequest(URLRequest(url: URL(string: "example.com")!), response: nil, error: nil, data: nil)
|
|
|
|
wait(for: [expectation], timeout: 2)
|
|
}
|
|
}
|