import 'package:eatvio_app/core/env_config.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; void main() { setUpAll(() async { // Initialize dotenv for tests dotenv.loadFromString(envString: 'DEV_BASE_URL=http://localhost\nBASE_URL=http://localhost'); }); group('EnvConfig', () { test('has baseUrl getter', () { expect(EnvConfig.baseUrl, isA()); }); test('has devBaseUrl getter', () { expect(EnvConfig.devBaseUrl, isA()); }); test('has sentryDsn getter', () { expect(EnvConfig.sentryDsn, isA()); }); test('has appMetricaApiKey getter', () { expect(EnvConfig.appMetricaApiKey, isA()); }); test('has firebaseProjectId getter', () { expect(EnvConfig.firebaseProjectId, isA()); }); test('has firebaseDatabaseUrl getter', () { expect(EnvConfig.firebaseDatabaseUrl, isA()); }); test('has firebaseStorageBucket getter', () { expect(EnvConfig.firebaseStorageBucket, isA()); }); test('has firebaseMessagingSenderId getter', () { expect(EnvConfig.firebaseMessagingSenderId, isA()); }); test('has firebaseAndroidApiKey getter', () { expect(EnvConfig.firebaseAndroidApiKey, isA()); }); test('has firebaseAndroidAppId getter', () { expect(EnvConfig.firebaseAndroidAppId, isA()); }); test('has firebaseIosApiKey getter', () { expect(EnvConfig.firebaseIosApiKey, isA()); }); test('has firebaseIosAppId getter', () { expect(EnvConfig.firebaseIosAppId, isA()); }); test('has firebaseIosBundleId getter', () { expect(EnvConfig.firebaseIosBundleId, isA()); }); test('has appStoreUrl getter', () { expect(EnvConfig.appStoreUrl, isA()); }); test('has rustoreUrl getter', () { expect(EnvConfig.rustoreUrl, isA()); }); test('has telegramSupportUrl getter', () { expect(EnvConfig.telegramSupportUrl, isA()); }); test('has supportEmail getter', () { expect(EnvConfig.supportEmail, isA()); }); test('has testEmail getter', () { expect(EnvConfig.testEmail, isA()); }); test('has testPassword getter', () { expect(EnvConfig.testPassword, isA()); }); test('has emailValidationApiUrl getter', () { expect(EnvConfig.emailValidationApiUrl, isA()); }); test('has googleCheckUrl getter', () { expect(EnvConfig.googleCheckUrl, isA()); }); test('has yandexCheckUrl getter', () { expect(EnvConfig.yandexCheckUrl, isA()); }); test('has vkClientIdIos getter', () { expect(EnvConfig.vkClientIdIos, isA()); }); test('has vkClientIdAndroid getter', () { expect(EnvConfig.vkClientIdAndroid, isA()); }); test('has yandexClientId getter', () { expect(EnvConfig.yandexClientId, isA()); }); test('has yandexClientSecret getter', () { expect(EnvConfig.yandexClientSecret, isA()); }); test('has yandexRedirectUri getter', () { expect(EnvConfig.yandexRedirectUri, isA()); }); test('all getters return strings', () { expect(EnvConfig.baseUrl, isA()); expect(EnvConfig.devBaseUrl, isA()); expect(EnvConfig.sentryDsn, isA()); expect(EnvConfig.appMetricaApiKey, isA()); expect(EnvConfig.firebaseProjectId, isA()); expect(EnvConfig.firebaseDatabaseUrl, isA()); expect(EnvConfig.firebaseStorageBucket, isA()); expect(EnvConfig.firebaseMessagingSenderId, isA()); expect(EnvConfig.firebaseAndroidApiKey, isA()); expect(EnvConfig.firebaseAndroidAppId, isA()); expect(EnvConfig.firebaseIosApiKey, isA()); expect(EnvConfig.firebaseIosAppId, isA()); expect(EnvConfig.firebaseIosBundleId, isA()); expect(EnvConfig.appStoreUrl, isA()); expect(EnvConfig.rustoreUrl, isA()); expect(EnvConfig.telegramSupportUrl, isA()); expect(EnvConfig.supportEmail, isA()); expect(EnvConfig.testEmail, isA()); expect(EnvConfig.testPassword, isA()); expect(EnvConfig.emailValidationApiUrl, isA()); expect(EnvConfig.googleCheckUrl, isA()); expect(EnvConfig.yandexCheckUrl, isA()); expect(EnvConfig.vkClientIdIos, isA()); expect(EnvConfig.vkClientIdAndroid, isA()); expect(EnvConfig.yandexClientId, isA()); expect(EnvConfig.yandexClientSecret, isA()); expect(EnvConfig.yandexRedirectUri, isA()); }); test('getters return empty string when env variable is not set', () { // В тестах мы загружаем только DEV_BASE_URL и BASE_URL // Остальные должны вернуть пустую строку expect(EnvConfig.sentryDsn, ''); expect(EnvConfig.appMetricaApiKey, ''); expect(EnvConfig.firebaseProjectId, ''); }); test('baseUrl and devBaseUrl are set from env', () { expect(EnvConfig.baseUrl, 'http://localhost'); expect(EnvConfig.devBaseUrl, 'http://localhost'); }); }); }