feat(proj): init
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:please_pay_me/core/config/app_config.dart';
|
||||
import 'package:please_pay_me/core/config/env_file.dart';
|
||||
|
||||
void main() {
|
||||
group('parseEnvFile', () {
|
||||
test('reads keys, comments and quoted values', () {
|
||||
const source = '''
|
||||
# comment
|
||||
PPM_API_BASE_URL=https://please-pay-me.ru/
|
||||
PPM_WEB_URL="https://please-pay-me.ru"
|
||||
PPM_DEMO=false
|
||||
|
||||
EMPTY=
|
||||
''';
|
||||
|
||||
final values = parseEnvFile(source);
|
||||
|
||||
expect(values['PPM_API_BASE_URL'], 'https://please-pay-me.ru/');
|
||||
expect(values['PPM_WEB_URL'], 'https://please-pay-me.ru');
|
||||
expect(values['PPM_DEMO'], 'false');
|
||||
expect(values.containsKey('EMPTY'), isTrue);
|
||||
expect(values['EMPTY'], '');
|
||||
});
|
||||
});
|
||||
|
||||
group('AppConfig.fromMap', () {
|
||||
test('strips a trailing slash and defaults the cabinet URL', () {
|
||||
final config = AppConfig.fromMap({
|
||||
'PPM_API_BASE_URL': 'https://please-pay-me.ru/',
|
||||
});
|
||||
|
||||
expect(config.apiBaseUrl, 'https://please-pay-me.ru');
|
||||
expect(config.webCabinetUrl, 'https://please-pay-me.ru');
|
||||
expect(config.demoMode, isFalse);
|
||||
});
|
||||
|
||||
test('empty map uses the production cabinet', () {
|
||||
final config = AppConfig.fromMap(const {});
|
||||
|
||||
expect(config.apiBaseUrl, AppConfig.productionOrigin);
|
||||
expect(config.webCabinetUrl, AppConfig.productionOrigin);
|
||||
expect(config.demoMode, isFalse);
|
||||
});
|
||||
|
||||
test('PPM_DEMO=true forces demo even when a URL is set', () {
|
||||
final config = AppConfig.fromMap({
|
||||
'PPM_API_BASE_URL': 'https://please-pay-me.ru',
|
||||
'PPM_DEMO': 'true',
|
||||
});
|
||||
|
||||
expect(config.demoMode, isTrue);
|
||||
expect(config.apiBaseUrl, 'https://please-pay-me.ru');
|
||||
});
|
||||
});
|
||||
|
||||
test('.env.example stays in sync with the parser', () {
|
||||
final text = File('.env.example').readAsStringSync();
|
||||
final values = parseEnvFile(text);
|
||||
final config = AppConfig.fromMap(values);
|
||||
|
||||
expect(values.containsKey('PPM_API_BASE_URL'), isTrue);
|
||||
expect(config.apiBaseUrl, isNotEmpty);
|
||||
expect(config.demoMode, isFalse);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user