Skip to content

Commit 0ecf6c6

Browse files
committed
More test coverage
1 parent 94a1417 commit 0ecf6c6

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

Tests/DotEnvyTests/LoadTests.swift

+46
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,52 @@ final class LoadTests: XCTestCase {
1313
}
1414
}
1515

16+
func testLoadMissingDefaultFile() throws {
17+
try inTemporaryDirectory { tempDir in
18+
FileManager.default.changeCurrentDirectoryPath(tempDir.path)
19+
let values = try DotEnvironment.loadValues()
20+
XCTAssertEqual(values, [:])
21+
}
22+
}
23+
24+
func testBadEncoding() throws {
25+
try inTemporaryDirectory { tempDir in
26+
let fileURL = tempDir.appendingPathComponent(".env", isDirectory: false)
27+
try """
28+
KEY=äölk
29+
""".data(using: .utf16)!.write(to: fileURL)
30+
FileManager.default.changeCurrentDirectoryPath(tempDir.path)
31+
XCTAssertThrowsError(try DotEnvironment.loadValues()) { error in
32+
guard let error = error as? LoadError else {
33+
XCTFail()
34+
return
35+
}
36+
XCTAssertEqual(error, .dataDecodingError(DotEnvironment.defaultURL.absoluteURL))
37+
XCTAssertEqual(String(describing: error), "Error decoding data at \(DotEnvironment.defaultURL.absoluteURL)")
38+
}
39+
}
40+
}
41+
42+
func testParseError() throws {
43+
try inTemporaryDirectory { tempDir in
44+
try Data("""
45+
KEY='
46+
""".utf8).write(to: tempDir.appendingPathComponent(".env", isDirectory: false))
47+
FileManager.default.changeCurrentDirectoryPath(tempDir.path)
48+
XCTAssertThrowsError(try DotEnvironment.loadValues()) { error in
49+
guard let error = error as? LoadError else {
50+
XCTFail("Unexpected error: \(error)")
51+
return
52+
}
53+
guard case let .parseError(p, _) = error else {
54+
XCTFail("Unexpected LoadError: \(error)")
55+
return
56+
}
57+
XCTAssertEqual(p.error, .unterminatedQuote)
58+
}
59+
}
60+
}
61+
1662
func testMakeDotEnvironmentWithDefaultFile() throws {
1763
try inTemporaryDirectory { tempDir in
1864
try Data("""

0 commit comments

Comments
 (0)