forked from mockturtl/dotenv
-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathdotenv_test.dart
97 lines (96 loc) · 4.54 KB
/
dotenv_test.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import 'dart:io';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
group('dotenv', () {
setUp(() {
print(Directory.current.toString());
dotenv.testLoad(
fileInput: File('test/.env')
.readAsStringSync()); // mergeWith: Platform.environment
});
test('when .env is loaded we should be able to get the .env variables', () {
expect(dotenv.env['FOO'], 'foo');
expect(dotenv.env['BAR'], 'bar');
expect(dotenv.env['FOOBAR'], '\$FOOfoobar');
expect(dotenv.env['ESCAPED_DOLLAR_SIGN'], '\$1000');
expect(dotenv.env['ESCAPED_QUOTE'], "'");
expect(dotenv.env['BOOL_TRUE'], "true");
expect(dotenv.env['BOOL_1'], "1");
expect(dotenv.env['BOOL_FALSE'], "false");
expect(dotenv.env['BOOL_0'], "0");
expect(dotenv.env['INT_42'], "42");
expect(dotenv.env['INT_42_NEGATIVE'], "-42");
expect(dotenv.env['DOUBLE_13_37'], "13.37");
expect(dotenv.env['DOUBLE_13_37_NEGATIVE'], "-13.37");
expect(dotenv.env['DOUBLE_1e3'], "1.e3");
expect(dotenv.env['DOUBLE_POINT_3'], ".3");
expect(dotenv.env['BASIC'], 'basic');
expect(dotenv.env['AFTER_LINE'], 'after_line');
expect(dotenv.env['EMPTY'], '');
expect(dotenv.env['SINGLE_QUOTES'], 'single_quotes');
expect(dotenv.env['SINGLE_QUOTES_SPACED'], ' single quotes ');
expect(dotenv.env['DOUBLE_QUOTES'], 'double_quotes');
expect(dotenv.env['DOUBLE_QUOTES_SPACED'], ' double quotes ');
expect(dotenv.env['EXPAND_NEWLINES'], "expand\nnew\nlines");
expect(dotenv.env['DONT_EXPAND_UNQUOTED'], 'dontexpand\\nnewlines');
expect(dotenv.env['DONT_EXPAND_SQUOTED'], 'dontexpand\\nnewlines');
expect(dotenv.env['COMMENTS'], null);
expect(dotenv.env['EQUAL_SIGNS'], 'equals==');
expect(dotenv.env['RETAIN_INNER_QUOTES'], '{"foo": "bar"}');
expect(dotenv.env['RETAIN_LEADING_DQUOTE'], "\"retained");
expect(dotenv.env['RETAIN_LEADING_SQUOTE'], '\'retained');
expect(dotenv.env['RETAIN_TRAILING_DQUOTE'], 'retained\"');
expect(dotenv.env['RETAIN_TRAILING_SQUOTE'], "retained\'");
expect(dotenv.env['RETAIN_INNER_QUOTES_AS_STRING'], '{"foo": "bar"}');
expect(dotenv.env['TRIM_SPACE_FROM_UNQUOTED'], 'some spaced out string');
expect(dotenv.env['USERNAME'], '[email protected]');
expect(dotenv.env['SPACED_KEY'], 'parsed');
});
test(
'when getting a vairable that is not in .env, we should get the fallback we defined',
() {
expect(dotenv.get('FOO', fallback: 'bar'), 'foo');
expect(dotenv.get('COMMENTS', fallback: 'sample'), 'sample');
expect(dotenv.get('EQUAL_SIGNS', fallback: 'sample'), 'equals==');
});
test(
'when getting a vairable that is not in .env, we should get an error thrown',
() {
expect(() => dotenv.get('COMMENTS'), throwsAssertionError);
});
test(
'when getting a vairable using the nullable getter, we should get null if no fallback is defined',
() {
expect(dotenv.maybeGet('COMMENTS'), null);
expect(dotenv.maybeGet('COMMENTS', fallback: 'sample'), 'sample');
expect(dotenv.maybeGet('EQUAL_SIGNS', fallback: 'sample'), 'equals==');
});
test('int getting works', () {
expect(dotenv.getInt('INT_42'), 42);
expect(dotenv.getInt('INT_42_NEGATIVE'), -42);
expect(() => dotenv.getInt('COMMENTS'), throwsAssertionError);
expect(dotenv.getInt('COMMENTS', fallback: 42), 42);
expect(() => dotenv.getInt('FOO'), throwsFormatException);
});
test('double getting works', () {
expect(dotenv.getDouble('DOUBLE_13_37'), 13.37);
expect(dotenv.getDouble('DOUBLE_13_37_NEGATIVE'), -13.37);
expect(dotenv.getDouble('DOUBLE_1e3'), 1e3);
expect(dotenv.getDouble('DOUBLE_POINT_3'), .3);
expect(() => dotenv.getDouble('COMMENTS'), throwsAssertionError);
expect(dotenv.getDouble('COMMENTS', fallback: .3), .3);
expect(() => dotenv.getDouble('FOO'), throwsFormatException);
});
test('bool getting works', () {
expect(dotenv.getBool('BOOL_TRUE'), true);
expect(dotenv.getBool('BOOL_1'), true);
expect(dotenv.getBool('BOOL_FALSE'), false);
expect(dotenv.getBool('BOOL_0'), false);
expect(() => dotenv.getBool('COMMENTS'), throwsAssertionError);
expect(dotenv.getBool('COMMENTS', fallback: true), true);
expect(dotenv.getBool('COMMENTS', fallback: false), false);
expect(() => dotenv.getBool('FOO'), throwsFormatException);
});
});
}