Emcee

Форк
0
/
KibanaLoggerHandlerTests.swift 
70 строк · 2.0 Кб
1
import EmceeLogging
2
import EmceeLoggingModels
3
import Foundation
4
import Kibana
5
import TestHelpers
6
import XCTest
7

8
final class KibanaLoggerHandlerTests: XCTestCase {
9
    lazy var kibanaClient = FakeKibanaClient()
10
    lazy var handler = KibanaLoggerHandler(kibanaClient: kibanaClient)
11
    
12
    func test___via_log_entry() {
13
        handler.handle(
14
            logEntry: LogEntry(
15
                file: "file",
16
                line: 42,
17
                coordinates: [
18
                    LogEntryCoordinate(name: "some", value: "data"),
19
                    LogEntryCoordinate(name: "withoutValue"),
20
                ],
21
                message: "hello",
22
                timestamp: Date(),
23
                verbosity: .info
24
            )
25
        )
26
        
27
        let event = kibanaClient.capturedEvents[0]
28
        
29
        assertTrue { event.level == "info" }
30
        assertTrue { event.message == "hello" }
31
        assert {
32
            event.metadata
33
        } equals: {
34
            [
35
                "some": "data",
36
                "withoutValue": "null",
37
                "fileLine": "file:42",
38
            ]
39
        }
40
    }
41
    
42
    func test___waits_for_completions_after_tear_down() {
43
        handler.handle(
44
            logEntry: LogEntry(
45
                file: "file",
46
                line: 42,
47
                coordinates: [
48
                    LogEntryCoordinate(name: "some", value: "data"),
49
                    LogEntryCoordinate(name: "withoutValue"),
50
                ],
51
                message: "hello",
52
                timestamp: Date(),
53
                verbosity: .info
54
            )
55
        )
56
        
57
        let event = kibanaClient.capturedEvents[0]
58
        
59
        let completionInvoked = XCTestExpectation(description: "")
60
        
61
        let impactQueue = DispatchQueue(label: "impactQueue")
62
        impactQueue.asyncAfter(deadline: .now() + 0.05) {
63
            event.completion(nil)
64
            completionInvoked.fulfill()
65
        }
66
        
67
        handler.tearDownLogging(timeout: 15)
68
        wait(for: [completionInvoked], timeout: 0)
69
    }
70
}
71

72

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.