Skip to content

Commit 1f061a8

Browse files
test: migrate all packages from Flutter driver to integration tests (#9649)
* Remove Flutter Driver tests * Remove `drive` dependency * Add `integration_test` as dependency * Setup integration test and migrate `firebase_core` * Migrate `firebase_analytics` * Migrate `cloud_functions` * Migrate `firebase_app_check` * Migrate `firebase_app_installations` * Migrate `firebase_auth` * Migrate `firebase_crashlytics` * Migrate `firebase_database` * Add missing `IntegrationTestWidgetsFlutterBinding` to `firebase_database` * Migrate `firebase_dynamic_links` * Migrate `firebase_messaging` * Migrate `firebase_ml_model_downloader` * Migrate `firebase_remote_config` * Migrate `firebase_storage` * Migrate `cloud_firestore` * Migrate `cloud_firestore_odm_e2e.dart` * Fix port and move to group for `cloud_firestore` * Migrate `firebase_performance` * Fix android build * Update test commands * Delete unused `cloud_functions` Flutter driver tests * Delete unused `firebase_analytics` Flutter driver tests * Delete unused `firebase_auth` Flutter driver tests * Delete unused `firebase_core` Flutter driver tests * Remove unused `dev_dependencies` in `firebase_in_app_messaging_example` * Remove unused `dev_dependencies` in `firebase_ml_model_downloader` * Remove unused `dev_dependencies` in `firebase_performance` * Migrate `flutterfire_ui` * Remove unused `dev_dependencies` in `flutterfire_ui_example` * Sort dev dependencies in `tests` * Remove unnecessary `test` dependency in `cloud_firestore`   * Remove unnecessary `test` dependency in `cloud_firestore_example`   * Sort dev dependencies in `cloud_firestore_odm` * Remove unnecessary `test` and `flutter_driver` dependency in `cloud_firestore_example`   * Remove unnecessary `test` dependency in `cloud_functions_example`   * Remove unnecessary `test` dependency in `firebase_analytics_example`   * Remove unnecessary `test` dependency in `firebase_app_check`   * Remove unnecessary `test` dependency in `firebase_app_installations`   * Remove unnecessary `test` & `flutter_driver` dependency in `firebase_app_installations_example`   * Remove unnecessary `test` dependency in `firebase_auth` * Remove unnecessary `test` dependency in `firebase_crashlytics` * Remove unnecessary `test` dependency in `firebase_database` * Remove unnecessary `test` dependency in `firebase_in_app_messaging` * Remove unnecessary `test` dependency in `firebase_messaging` * Remove unnecessary `test` dependency in `firebase_remote_config` * Remove unnecessary `test` dependency in `firebase_storage` * Remove `test:e2e` and `test:e2e:web` melos command * Update `CONTRIBUTING.md` for running integration tests * Remove drive commands from `tasks.json` * Revert "Remove drive commands from `tasks.json`" This reverts commit 915af70. * Update `tasks.json` * Fix `build_example.sh` * Update `drive_example.sh` * Remove unused `test_driver/integration/*` in `build.yaml` of `cloud_firestore_odm_generator` * Revert "Remove `test:e2e` and `test:e2e:web` melos command" This reverts commit e0af8b7. * Bring back the `melos run test:e2e` and fix macos & web integration tests * Add missing `--driver=./test_driver/integration_test.dart` in `tasks.json` * Changed to sync `cloud_firestore_odm_e2e_test.dart` * Check flakiness * Skip "subscribeToTopic" and "unsubscribeFromTopic" for Android * comment out `concurrency` for e2e tests * Skip "times out when the provided timeout option is exceeded" test * Remove testing stuff * Remove `IntegrationTestWidgetsFlutterBinding.ensureInitialized()` * Revert "Remove `IntegrationTestWidgetsFlutterBinding.ensureInitialized()`" This reverts commit f117e20. * Re-trigger CI * Re-trigger CI
1 parent cd0b8cc commit 1f061a8

File tree

121 files changed

+345
-3116
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+345
-3116
lines changed

.github/workflows/e2e_tests.yaml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
- name: "Build Application"
8181
working-directory: tests
8282
run: |
83-
flutter build apk --debug --target=./test_driver/driver_e2e.dart --dart-define=CI=true --no-android-gradle-daemon
83+
flutter build apk --debug --target=./integration_test/e2e_test.dart --dart-define=CI=true --no-android-gradle-daemon
8484
- name: Start Firebase Emulator
8585
run: cd ./.github/workflows/scripts && ./start-firebase-emulator.sh
8686
- name: "E2E Tests"
@@ -98,7 +98,7 @@ jobs:
9898
script: |
9999
sleep 15
100100
$ANDROID_HOME/platform-tools/adb logcat '*:D' > adb-log.txt &
101-
flutter drive --target=./test_driver/driver_e2e.dart --dart-define=CI=true
101+
flutter test integration_test/e2e_test.dart --dart-define=CI=true
102102
103103
- name: Compress Emulator Log
104104
if: always()
@@ -159,7 +159,7 @@ jobs:
159159
export CCACHE_DEPEND=true
160160
export CCACHE_INODECACHE=true
161161
ccache -s
162-
flutter build ios --no-codesign --simulator --debug --target=./test_driver/driver_e2e.dart --dart-define=CI=true
162+
flutter build ios --no-codesign --simulator --debug --target=./integration_test/e2e_test.dart --dart-define=CI=true
163163
ccache -s
164164
- name: Start Firebase Emulator
165165
run: cd ./.github/workflows/scripts && ./start-firebase-emulator.sh
@@ -174,7 +174,7 @@ jobs:
174174
sleep 15
175175
# Uncomment following line to have simulator logs printed out for debugging purposes.
176176
# xcrun simctl spawn booted log stream --predicate 'eventMessage contains "flutter"' &
177-
flutter drive -d "$SIMULATOR" --target=./test_driver/driver_e2e.dart --dart-define=CI=true
177+
flutter test integration_test/e2e_test.dart -d "$SIMULATOR" --dart-define=CI=true
178178
FLUTTER_DRIVE_EXIT_CODE=$?
179179
xcrun simctl shutdown "$SIMULATOR"
180180
exit $FLUTTER_DRIVE_EXIT_CODE
@@ -225,14 +225,17 @@ jobs:
225225
export CCACHE_DEPEND=true
226226
export CCACHE_INODECACHE=true
227227
ccache -s
228-
flutter build macos --debug --target=./test_driver/driver_e2e.dart --device-id=macos --dart-define=CI=true
228+
flutter build macos --debug --target=./integration_test/e2e_test.dart --device-id=macos --dart-define=CI=true
229229
ccache -s
230230
- name: Start Firebase Emulator
231231
run: cd ./.github/workflows/scripts && ./start-firebase-emulator.sh
232232
- name: "E2E Tests"
233233
working-directory: tests
234234
run: |
235-
flutter drive -d macos --target=./test_driver/driver_e2e.dart --dart-define=CI=true
235+
flutter test \
236+
integration_test/e2e_test.dart \
237+
-d macos \
238+
--dart-define=CI=true
236239
237240
web:
238241
runs-on: ubuntu-latest
@@ -263,6 +266,14 @@ jobs:
263266
run: cd ./.github/workflows/scripts && ./start-firebase-emulator.sh
264267
- name: "E2E Tests"
265268
working-directory: tests
269+
# Web devices are not supported for the `flutter test` command yet. As a
270+
# workaround we can use the `flutter drive` command. Tracking issue:
271+
# https://github.com/flutter/flutter/issues/66264
266272
run: |
267273
chromedriver --port=4444 &
268-
flutter drive --verbose-system-logs --device-id=web-server --target=./test_driver/driver_e2e.dart --dart-define=CI=true
274+
flutter drive \
275+
--verbose-system-logs \
276+
-d web-server \
277+
--driver=test_driver/integration_test.dart \
278+
--target=integration_test/e2e_test.dart \
279+
--dart-define=CI=true

.github/workflows/scripts/build-example.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22

3-
DEFAULT_TARGET="./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart"
3+
DEFAULT_TARGET="./integration_test/MELOS_PARENT_PACKAGE_NAME_e2e_test.dart"
44

55
ACTION=$1
66
TARGET_FILE=${2:-$DEFAULT_TARGET}

.github/workflows/scripts/drive-example.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ if [ "$ACTION" == "android" ]
66
then
77
# Sleep to allow emulator to settle.
88
sleep 15
9-
melos exec -c 1 --fail-fast --scope="$FLUTTERFIRE_PLUGIN_SCOPE_EXAMPLE" --dir-exists=test_driver -- \
10-
flutter drive $FLUTTER_COMMAND_FLAGS --no-pub --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart --dart-define=CI=true
9+
melos exec -c 1 --fail-fast --scope="$FLUTTERFIRE_PLUGIN_SCOPE_EXAMPLE" --dir-exists=integration_test -- \
10+
flutter test integration_test/MELOS_PARENT_PACKAGE_NAME_e2e_test.dart $FLUTTER_COMMAND_FLAGS --no-pub --dart-define=CI=true
1111
exit
1212
fi
1313

@@ -21,8 +21,8 @@ then
2121
sleep 15
2222
# Uncomment following line to have simulator logs printed out for debugging purposes.
2323
# xcrun simctl spawn booted log stream --predicate 'eventMessage contains "flutter"' &
24-
melos exec -c 1 --fail-fast --scope="$FLUTTERFIRE_PLUGIN_SCOPE_EXAMPLE" --dir-exists=test_driver -- \
25-
flutter drive $FLUTTER_COMMAND_FLAGS -d \"$SIMULATOR\" --no-pub --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart --dart-define=CI=true
24+
melos exec -c 1 --fail-fast --scope="$FLUTTERFIRE_PLUGIN_SCOPE_EXAMPLE" --dir-exists=integration_test -- \
25+
flutter test integration_test/MELOS_PARENT_PACKAGE_NAME_e2e_test.dart $FLUTTER_COMMAND_FLAGS -d \"$SIMULATOR\" --no-pub --dart-define=CI=true
2626
MELOS_EXIT_CODE=$?
2727
xcrun simctl shutdown "$SIMULATOR"
2828
exit $MELOS_EXIT_CODE
@@ -31,7 +31,7 @@ fi
3131
if [ "$ACTION" == "macos" ]
3232
then
3333
melos exec -c 1 --fail-fast --scope="$FLUTTERFIRE_PLUGIN_SCOPE_EXAMPLE" --dir-exists=test_driver -- \
34-
flutter drive $FLUTTER_COMMAND_FLAGS -d macos --no-pub --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart --dart-define=CI=true
34+
flutter test integration_test/MELOS_PARENT_PACKAGE_NAME_e2e_test.dart $FLUTTER_COMMAND_FLAGS -d macos --no-pub --dart-define=CI=true
3535
exit
3636
fi
3737

@@ -40,6 +40,6 @@ then
4040
melos bootstrap --scope="*firebase_core*" --scope="$FLUTTERFIRE_PLUGIN_SCOPE"
4141
chromedriver --port=4444 &
4242
melos exec -c 1 --scope="$FLUTTERFIRE_PLUGIN_SCOPE_EXAMPLE" --dir-exists=web -- \
43-
flutter drive $FLUTTER_COMMAND_FLAGS --no-pub --verbose-system-logs --device-id=web-server --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart --dart-define=CI=true
43+
flutter drive $FLUTTER_COMMAND_FLAGS --no-pub --verbose-system-logs --device-id=web-server --target=./integration_test/MELOS_PARENT_PACKAGE_NAME_e2e_test.dart --driver=./test_driver/integration_test.dart --dart-define=CI=true
4444
exit
4545
fi

.vscode/tasks.json

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,14 @@
6262
{
6363
"label": "firestore -> test:e2e",
6464
"type": "shell",
65-
"command": "melos exec -c 1 --scope=\"*cloud_firestore_example*\" --fail-fast --dir-exists=test_driver -- flutter drive --no-pub --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart",
65+
"command": "melos exec -c 1 --scope=\"*cloud_firestore_example*\" --fail-fast --dir-exists=integration_test -- flutter drive --no-pub --target=./integration_test/MELOS_PARENT_PACKAGE_NAME_e2e_test.dart",
6666
"detail": "Run end-to-end testing for Android & iOS via `flutter drive` on the Firestore example application",
6767
"problemMatcher": []
6868
},
6969
{
7070
"label": "firestore -> test:e2e:web",
7171
"type": "shell",
72-
"command": "melos exec -c 1 --scope=\"*cloud_firestore_example*\" --dir-exists=web --fail-fast --dir-exists=test_driver -- flutter drive --release -d chrome --no-pub --verbose-system-logs --browser-name=chrome --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart",
72+
"command": "melos exec -c 1 --scope=\"*cloud_firestore_example*\" --dir-exists=web --fail-fast --dir-exists=test_driver -- flutter drive --release -d chrome --no-pub --verbose-system-logs --browser-name=chrome --target=./integration_test/MELOS_PARENT_PACKAGE_NAME_e2e_test.dart --driver=./test_driver/integration_test.dart",
7373
"detail": "Run end-to-end testing for Web via `flutter drive` on the Firestore example application",
7474
"problemMatcher": []
7575
},
@@ -122,20 +122,6 @@
122122
"detail": "Run `flutter test` on all Auth packages (excluding web & example)",
123123
"problemMatcher": []
124124
},
125-
{
126-
"label": "auth -> test:e2e",
127-
"type": "shell",
128-
"command": "melos exec -c 1 --scope=\"*firebase_auth_example*\" --fail-fast --dir-exists=test_driver -- flutter drive --no-pub --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart",
129-
"detail": "Run end-to-end testing for Android & iOS via `flutter drive` on the Auth example application",
130-
"problemMatcher": []
131-
},
132-
{
133-
"label": "auth -> test:e2e:web",
134-
"type": "shell",
135-
"command": "melos exec -c 1 --scope=\"*firebase_auth_example*\" --dir-exists=web --fail-fast --dir-exists=test_driver -- flutter drive --release -d chrome --no-pub --verbose-system-logs --browser-name=chrome --target=./test_driver/MELOS_PARENT_PACKAGE_NAME_e2e.dart",
136-
"detail": "Run end-to-end testing for Web via `flutter drive` on the Auth example application",
137-
"problemMatcher": []
138-
},
139125
{
140126
"label": "auth -> test:web",
141127
"type": "shell",

CONTRIBUTING.md

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,21 +111,30 @@ flutter test
111111
### End-to-end (e2e) tests
112112

113113
E2e tests are those which directly communicate with Firebase, whose results cannot be mocked. These tests run directly from
114-
an example application. To run e2e tests, run the `flutter drive` command from the plugins main `example` directory, targeting the
115-
entry e2e test file.
114+
an example application. To run e2e tests, run the `flutter test` (for Android, iOS & macOS) or the `flutter drive` (for web)
115+
command from the plugins main `example` directory, targeting the entry e2e test file.
116116

117117
> Some packages use Firebase Emulator Suite to run tests. To learn more, [visit the official documentation](https://firebase.google.com/docs/emulator-suite).
118118
119+
To start the Firebase Emulator, run these commands:
120+
121+
```bash
122+
cd .github/workflows/scripts
123+
firebase emulators:start --only auth,firestore,functions,storage,database --project flutterfire-e2e-tests
124+
```
125+
126+
To run tests against Android, iOS or macOS environments, run these commands:
127+
119128
```bash
120129
cd packages/firebase_auth/firebase_auth/example
121-
flutter drive --target=./test_driver/firebase_auth_e2e.dart
130+
flutter test integration_test/firebase_auth_e2e_test.dart
122131
```
123132

124133
To run tests against web environments, run the command as a release build:
125134

126135
```bash
127136
cd packages/firebase_auth/firebase_auth/example
128-
flutter drive --target=./test_driver/firebase_auth_e2e.dart --release -d chrome
137+
flutter drive --target=./integration_test/firebase_auth_e2e_test.dart --driver=./test_driver/integration_test.dart --release -d chrome
129138
```
130139

131140
### Using Melos

melos.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,18 +151,18 @@ scripts:
151151
test:e2e:
152152
run: |
153153
melos exec -c 1 --fail-fast -- \
154-
"flutter drive --no-pub --target=./test_driver/driver_e2e.dart"
154+
"flutter test integration_test/e2e_test.dart --no-pub"
155155
description: |
156156
Run all e2e tests.
157157
select-package:
158158
dir-exists:
159-
- test_driver
159+
- integration_test
160160
scope: '*tests*'
161161

162162
test:e2e:web:
163163
run: |
164164
melos exec -c 1 --fail-fast -- \
165-
"flutter drive --no-pub --target=./test_driver/driver_e2e.dart -d chrome"
165+
"flutter drive --no-pub --target=./integration_test/e2e_test.dart --driver=./test_driver/integration_test.dart -d chrome"
166166
description: |
167167
Run all e2e tests on web platform. Please ensure you have "chromedriver" installed and running.
168168
select-package:

packages/cloud_firestore/cloud_firestore/example/test_driver/cloud_firestore_e2e.dart renamed to packages/cloud_firestore/cloud_firestore/example/integration_test/cloud_firestore_e2e_test.dart

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:cloud_firestore/cloud_firestore.dart';
6-
import 'package:drive/drive.dart' as drive;
76
import 'package:firebase_core/firebase_core.dart';
87
import 'package:flutter_test/flutter_test.dart';
8+
import 'package:integration_test/integration_test.dart';
99

1010
import 'collection_reference_e2e.dart';
1111
import 'document_change_e2e.dart';
@@ -24,29 +24,31 @@ import 'second_app_e2e.dart';
2424

2525
bool kUseFirestoreEmulator = true;
2626

27-
void testsMain() {
28-
setUpAll(() async {
29-
await Firebase.initializeApp(options: TestFirebaseConfig.platformOptions);
30-
31-
if (kUseFirestoreEmulator) {
32-
FirebaseFirestore.instance.useFirestoreEmulator('localhost', 8080);
33-
}
27+
void main() {
28+
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
29+
30+
group('cloud_firestore', () {
31+
setUpAll(() async {
32+
await Firebase.initializeApp(options: TestFirebaseConfig.platformOptions);
33+
34+
if (kUseFirestoreEmulator) {
35+
FirebaseFirestore.instance.useFirestoreEmulator('localhost', 8080);
36+
}
37+
});
38+
39+
runInstanceTests();
40+
41+
runCollectionReferenceTests();
42+
runDocumentChangeTests();
43+
runDocumentReferenceTests();
44+
runFieldValueTests();
45+
runGeoPointTests();
46+
runQueryTests();
47+
runSnapshotMetadataTests();
48+
runTimestampTests();
49+
runTransactionTests();
50+
runWriteBatchTests();
51+
runLoadBundleTests();
52+
runSecondAppTests();
3453
});
35-
36-
runInstanceTests();
37-
38-
runCollectionReferenceTests();
39-
runDocumentChangeTests();
40-
runDocumentReferenceTests();
41-
runFieldValueTests();
42-
runGeoPointTests();
43-
runQueryTests();
44-
runSnapshotMetadataTests();
45-
runTimestampTests();
46-
runTransactionTests();
47-
runWriteBatchTests();
48-
runLoadBundleTests();
49-
runSecondAppTests();
5054
}
51-
52-
void main() => drive.main(testsMain);

packages/cloud_firestore/cloud_firestore/example/pubspec.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,8 @@ dependency_overrides:
2929
path: ../../../firebase_core/firebase_core_web
3030

3131
dev_dependencies:
32-
drive: ^1.0.0-1.0.nullsafety.1
33-
flutter_driver:
32+
integration_test:
3433
sdk: flutter
35-
test: any
3634

3735
flutter:
3836
uses-material-design: true

packages/cloud_firestore/cloud_firestore/example/test_driver/cloud_firestore_e2e_test.dart

Lines changed: 0 additions & 7 deletions
This file was deleted.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import 'package:integration_test/integration_test_driver.dart';
2+
3+
Future<void> main() => integrationDriver();

packages/cloud_firestore/cloud_firestore/pubspec.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ dev_dependencies:
2828
flutter_test:
2929
sdk: flutter
3030
mockito: ^5.0.0
31-
test: any
3231

3332
flutter:
3433
plugin:

packages/cloud_firestore_odm/cloud_firestore_odm/example/build.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,12 @@ targets:
77
include:
88
- lib/*
99
- lib/**
10-
- test_driver/integration/*
11-
- test_driver/integration/**/*
1210
json_serializable:
1311
enabled: true
1412
generate_for:
1513
include:
1614
- lib/*
1715
- lib/**
18-
- test_driver/integration/*
19-
- test_driver/integration/**/*
2016
options:
2117
create_field_map: true
2218
source_gen|combining_builder:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// Copyright 2021, the Chromium project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import 'package:cloud_firestore/cloud_firestore.dart';
6+
import 'package:firebase_core/firebase_core.dart';
7+
import 'package:flutter_test/flutter_test.dart';
8+
import 'package:integration_test/integration_test.dart';
9+
10+
import 'collection_reference_test.dart' as collection_reference_test;
11+
import 'document_reference_test.dart' as document_reference_test;
12+
import 'path_test.dart' as path_test;
13+
import 'query_reference_test.dart' as query_reference_test;
14+
15+
void main() {
16+
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
17+
18+
group('cloud_firestore_odm', () {
19+
setUpAll(() async {
20+
await Firebase.initializeApp(
21+
options: const FirebaseOptions(
22+
apiKey: 'AIzaSyAHAsf51D0A407EklG1bs-5wA7EbyfNFg0',
23+
appId: '1:448618578101:ios:3a3c8ae9cb0b6408ac3efc',
24+
messagingSenderId: '448618578101',
25+
projectId: 'react-native-firebase-testing',
26+
authDomain: 'react-native-firebase-testing.firebaseapp.com',
27+
iosClientId:
28+
'448618578101-m53gtqfnqipj12pts10590l37npccd2r.apps.googleusercontent.com',
29+
),
30+
);
31+
FirebaseFirestore.instance.useFirestoreEmulator('localhost', 8080);
32+
});
33+
34+
collection_reference_test.main();
35+
document_reference_test.main();
36+
// TODO CI tests configuration currently not compatible with widget testing
37+
// firestore_builder_test.main();
38+
query_reference_test.main();
39+
path_test.main();
40+
});
41+
}

packages/cloud_firestore_odm/cloud_firestore_odm/example/pubspec.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,11 @@ dev_dependencies:
2424
path: ../../cloud_firestore_odm_generator
2525
cloud_firestore_odm_generator_integration_test:
2626
path: ../../cloud_firestore_odm_generator/cloud_firestore_odm_generator_integration_test
27-
drive: ^1.0.0-1.0.nullsafety.1
2827
flutter_test:
2928
sdk: flutter
3029
freezed: ^2.0.0
30+
integration_test:
31+
sdk: flutter
3132
http: ^0.13.5
3233
json_serializable: ^6.3.0
3334
mockito: ^5.0.0

0 commit comments

Comments
 (0)