Files
eatvio_app/test/core/env_config_test.dart

162 lines
6.2 KiB
Dart

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, '');
});
});
}