@@ -9,7 +9,7 @@ import XCTest
9
9
10
10
class LoggerTests : XCTestCase {
11
11
12
- func test_logger ( ) async throws {
12
+ func test_logLevels ( ) async throws {
13
13
14
14
var logger = MockLogger ( )
15
15
@@ -43,4 +43,37 @@ class LoggerTests: XCTestCase {
43
43
logger. withLogLevel ( . debug) . log ( " log " , from: " debug " )
44
44
logger. withLogLevel ( . debug) . debug ( " debug " , from: " debug " )
45
45
}
46
+
47
+ func test_logFileLogger( ) async throws {
48
+
49
+ let outputFilePath = " output_file_path "
50
+
51
+ let removeExpectation = expectation ( description: " remove was called twice " )
52
+ removeExpectation. expectedFulfillmentCount = 2
53
+
54
+ var expectedHandleCreateFileCalls = [
55
+ " 🪵 [test] log \n " ,
56
+ " 🪵 [test] log \n \n 🐞 [test] debug \n "
57
+ ]
58
+
59
+ var fileHandler = MockFileHandler ( )
60
+ fileHandler. handleRemoveItem = { path in
61
+ XCTAssertEqual ( path, outputFilePath)
62
+ removeExpectation. fulfill ( )
63
+ }
64
+ fileHandler. handleCreateFile = { path, data in
65
+ XCTAssertEqual ( path, outputFilePath)
66
+ let expectedInput = expectedHandleCreateFileCalls. removeFirst ( )
67
+ XCTAssertEqual ( String ( data: data, encoding: . utf8) , expectedInput)
68
+ return true
69
+ }
70
+
71
+ let logFileLogger = LogFileLogger ( fileHandler: fileHandler, outputFilePath: outputFilePath)
72
+
73
+ logFileLogger. log ( " log " , from: " test " )
74
+ logFileLogger. debug ( " debug " , from: " test " )
75
+
76
+ await fulfillment ( of: [ removeExpectation] )
77
+ XCTAssertTrue ( expectedHandleCreateFileCalls. isEmpty)
78
+ }
46
79
}
0 commit comments