Files
eatvio_app/test/firebase_options_test.dart

80 lines
3.4 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:eatvio_app/firebase_options.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
void main() {
setUpAll(() async {
// Initialize dotenv for tests with Firebase configuration
dotenv.loadFromString(envString: '''
FIREBASE_PROJECT_ID=test-project
FIREBASE_DATABASE_URL=https://test-project.firebaseio.com
FIREBASE_STORAGE_BUCKET=test-project.appspot.com
FIREBASE_MESSAGING_SENDER_ID=123456789
FIREBASE_ANDROID_API_KEY=test-android-api-key
FIREBASE_ANDROID_APP_ID=1:123456789:android:test
FIREBASE_IOS_API_KEY=test-ios-api-key
FIREBASE_IOS_APP_ID=1:123456789:ios:test
FIREBASE_IOS_BUNDLE_ID=com.test.app
DEV_BASE_URL=http://localhost
BASE_URL=http://localhost
''');
});
group('DefaultFirebaseOptions', () {
test('currentPlatform - возвращает FirebaseOptions или выбрасывает UnsupportedError', () {
// Тест для currentPlatform
// В тестовом окружении defaultTargetPlatform может быть разным
// Проверяем что метод либо возвращает опции, либо выбрасывает UnsupportedError
try {
final options = DefaultFirebaseOptions.currentPlatform;
expect(options, isA<FirebaseOptions>());
} catch (e) {
// Если платформа не поддерживается, это нормально
expect(e, isA<UnsupportedError>());
}
});
test('android - возвращает FirebaseOptions с правильными полями', () {
final options = DefaultFirebaseOptions.android;
expect(options, isA<FirebaseOptions>());
// Проверяем что все необходимые поля присутствуют
expect(options.apiKey, isNotNull);
expect(options.apiKey, isNotEmpty);
expect(options.appId, isNotNull);
expect(options.appId, isNotEmpty);
expect(options.messagingSenderId, isNotNull);
expect(options.messagingSenderId, isNotEmpty);
expect(options.projectId, isNotNull);
expect(options.projectId, isNotEmpty);
});
test('ios - возвращает FirebaseOptions с правильными полями', () {
final options = DefaultFirebaseOptions.ios;
expect(options, isA<FirebaseOptions>());
// Проверяем что все необходимые поля присутствуют
expect(options.apiKey, isNotNull);
expect(options.apiKey, isNotEmpty);
expect(options.appId, isNotNull);
expect(options.appId, isNotEmpty);
expect(options.messagingSenderId, isNotNull);
expect(options.messagingSenderId, isNotEmpty);
expect(options.projectId, isNotNull);
expect(options.projectId, isNotEmpty);
expect(options.iosBundleId, isNotNull);
expect(options.iosBundleId, isNotEmpty);
});
test('android и ios возвращают разные значения', () {
final androidOptions = DefaultFirebaseOptions.android;
final iosOptions = DefaultFirebaseOptions.ios;
// Они должны быть разными объектами
expect(androidOptions, isNot(equals(iosOptions)));
// API ключи должны быть разными
expect(androidOptions.apiKey, isNot(equals(iosOptions.apiKey)));
});
});
}