forked from eatvio/eatvio_app
80 lines
3.4 KiB
Dart
80 lines
3.4 KiB
Dart
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)));
|
||
});
|
||
});
|
||
}
|
||
|