@@ -13,6 +13,52 @@ final class LoadTests: XCTestCase {
13
13
}
14
14
}
15
15
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
+
16
62
func testMakeDotEnvironmentWithDefaultFile( ) throws {
17
63
try inTemporaryDirectory { tempDir in
18
64
try Data ( """
0 commit comments