forked from eatvio/eatvio_app
feat(dependencies): add rxdart package and improve string extension methods for better handling of empty strings and gender parsing
This commit is contained in:
161
test/core/env_config_test.dart
Normal file
161
test/core/env_config_test.dart
Normal file
@@ -0,0 +1,161 @@
|
||||
import 'package:eatvio_app/core/env_config.dart';
|
||||
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('EnvConfig', () {
|
||||
setUp(() async {
|
||||
// Загружаем тестовые переменные окружения
|
||||
dotenv.loadFromString(envString: '''
|
||||
BASE_URL=https://api.example.com
|
||||
DEV_BASE_URL=https://dev-api.example.com
|
||||
SENTRY_DSN=https://sentry.example.com
|
||||
APPMETRICA_KEY=test-appmetrica-key
|
||||
FIREBASE_PROJECT_ID=test-project
|
||||
FIREBASE_DATABASE_URL=https://test.firebaseio.com
|
||||
FIREBASE_STORAGE_BUCKET=test.appspot.com
|
||||
FIREBASE_MESSAGING_SENDER_ID=123456789
|
||||
FIREBASE_ANDROID_API_KEY=android-api-key
|
||||
FIREBASE_ANDROID_APP_ID=android-app-id
|
||||
FIREBASE_IOS_API_KEY=ios-api-key
|
||||
FIREBASE_IOS_APP_ID=ios-app-id
|
||||
FIREBASE_IOS_BUNDLE_ID=com.example.app
|
||||
APP_STORE_URL=https://apps.apple.com/app
|
||||
RUSTORE_URL=https://apps.rustore.ru/app
|
||||
TELEGRAM_SUPPORT_URL=https://t.me/support
|
||||
SUPPORT_EMAIL=support@example.com
|
||||
TEST_EMAIL=test@example.com
|
||||
TEST_PASSWORD=test123
|
||||
EMAIL_VALIDATION_API_URL=https://api.emailvalidation.com
|
||||
GOOGLE_CHECK_URL=https://www.google.com
|
||||
YANDEX_CHECK_URL=https://ya.ru
|
||||
VK_CLIENT_ID_IOS=ios-vk-id
|
||||
VK_CLIENT_ID_ANDROID=android-vk-id
|
||||
YANDEX_CLIENT_ID=yandex-client-id
|
||||
YANDEX_CLIENT_SECRET=yandex-secret
|
||||
YANDEX_REDIRECT_URI=https://example.com/callback
|
||||
''');
|
||||
});
|
||||
|
||||
test('baseUrl возвращает значение из окружения', () {
|
||||
expect(EnvConfig.baseUrl, 'https://api.example.com');
|
||||
});
|
||||
|
||||
test('devBaseUrl возвращает значение из окружения', () {
|
||||
expect(EnvConfig.devBaseUrl, 'https://dev-api.example.com');
|
||||
});
|
||||
|
||||
test('sentryDsn возвращает значение из окружения', () {
|
||||
expect(EnvConfig.sentryDsn, 'https://sentry.example.com');
|
||||
});
|
||||
|
||||
test('appMetricaApiKey возвращает значение из окружения', () {
|
||||
expect(EnvConfig.appMetricaApiKey, 'test-appmetrica-key');
|
||||
});
|
||||
|
||||
test('firebaseProjectId возвращает значение из окружения', () {
|
||||
expect(EnvConfig.firebaseProjectId, 'test-project');
|
||||
});
|
||||
|
||||
test('firebaseDatabaseUrl возвращает значение из окружения', () {
|
||||
expect(EnvConfig.firebaseDatabaseUrl, 'https://test.firebaseio.com');
|
||||
});
|
||||
|
||||
test('firebaseStorageBucket возвращает значение из окружения', () {
|
||||
expect(EnvConfig.firebaseStorageBucket, 'test.appspot.com');
|
||||
});
|
||||
|
||||
test('firebaseMessagingSenderId возвращает значение из окружения', () {
|
||||
expect(EnvConfig.firebaseMessagingSenderId, '123456789');
|
||||
});
|
||||
|
||||
test('firebaseAndroidApiKey возвращает значение из окружения', () {
|
||||
expect(EnvConfig.firebaseAndroidApiKey, 'android-api-key');
|
||||
});
|
||||
|
||||
test('firebaseAndroidAppId возвращает значение из окружения', () {
|
||||
expect(EnvConfig.firebaseAndroidAppId, 'android-app-id');
|
||||
});
|
||||
|
||||
test('firebaseIosApiKey возвращает значение из окружения', () {
|
||||
expect(EnvConfig.firebaseIosApiKey, 'ios-api-key');
|
||||
});
|
||||
|
||||
test('firebaseIosAppId возвращает значение из окружения', () {
|
||||
expect(EnvConfig.firebaseIosAppId, 'ios-app-id');
|
||||
});
|
||||
|
||||
test('firebaseIosBundleId возвращает значение из окружения', () {
|
||||
expect(EnvConfig.firebaseIosBundleId, 'com.example.app');
|
||||
});
|
||||
|
||||
test('appStoreUrl возвращает значение из окружения', () {
|
||||
expect(EnvConfig.appStoreUrl, 'https://apps.apple.com/app');
|
||||
});
|
||||
|
||||
test('rustoreUrl возвращает значение из окружения', () {
|
||||
expect(EnvConfig.rustoreUrl, 'https://apps.rustore.ru/app');
|
||||
});
|
||||
|
||||
test('telegramSupportUrl возвращает значение из окружения', () {
|
||||
expect(EnvConfig.telegramSupportUrl, 'https://t.me/support');
|
||||
});
|
||||
|
||||
test('supportEmail возвращает значение из окружения', () {
|
||||
expect(EnvConfig.supportEmail, 'support@example.com');
|
||||
});
|
||||
|
||||
test('testEmail возвращает значение из окружения', () {
|
||||
expect(EnvConfig.testEmail, 'test@example.com');
|
||||
});
|
||||
|
||||
test('testPassword возвращает значение из окружения', () {
|
||||
expect(EnvConfig.testPassword, 'test123');
|
||||
});
|
||||
|
||||
test('emailValidationApiUrl возвращает значение из окружения', () {
|
||||
expect(EnvConfig.emailValidationApiUrl, 'https://api.emailvalidation.com');
|
||||
});
|
||||
|
||||
test('googleCheckUrl возвращает значение из окружения', () {
|
||||
expect(EnvConfig.googleCheckUrl, 'https://www.google.com');
|
||||
});
|
||||
|
||||
test('yandexCheckUrl возвращает значение из окружения', () {
|
||||
expect(EnvConfig.yandexCheckUrl, 'https://ya.ru');
|
||||
});
|
||||
|
||||
test('vkClientIdIos возвращает значение из окружения', () {
|
||||
expect(EnvConfig.vkClientIdIos, 'ios-vk-id');
|
||||
});
|
||||
|
||||
test('vkClientIdAndroid возвращает значение из окружения', () {
|
||||
expect(EnvConfig.vkClientIdAndroid, 'android-vk-id');
|
||||
});
|
||||
|
||||
test('yandexClientId возвращает значение из окружения', () {
|
||||
expect(EnvConfig.yandexClientId, 'yandex-client-id');
|
||||
});
|
||||
|
||||
test('yandexClientSecret возвращает значение из окружения', () {
|
||||
expect(EnvConfig.yandexClientSecret, 'yandex-secret');
|
||||
});
|
||||
|
||||
test('yandexRedirectUri возвращает значение из окружения', () {
|
||||
expect(EnvConfig.yandexRedirectUri, 'https://example.com/callback');
|
||||
});
|
||||
|
||||
test('возвращает пустую строку если переменная не установлена', () async {
|
||||
try {
|
||||
dotenv.loadFromString(envString: '');
|
||||
} catch (e) {
|
||||
// EmptyEnvFileError ожидается для пустого файла
|
||||
expect(e, isNotNull);
|
||||
}
|
||||
// После ошибки переменные будут пустыми
|
||||
expect(EnvConfig.baseUrl, '');
|
||||
expect(EnvConfig.devBaseUrl, '');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user