mirror of
https://github.com/java-james/flutter_dotenv.git
synced 2025-07-04 13:27:55 +08:00
98 lines
4.5 KiB
Dart
98 lines
4.5 KiB
Dart
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'], 'therealnerdybeast@example.tld');
|
|
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);
|
|
});
|
|
});
|
|
}
|