@@ -10,6 +10,7 @@ import 'package:file/memory.dart';
10
10
import 'package:flutter_plugin_tools/src/common/core.dart' ;
11
11
import 'package:flutter_plugin_tools/src/create_all_packages_app_command.dart' ;
12
12
import 'package:platform/platform.dart' ;
13
+ import 'package:pubspec_parse/pubspec_parse.dart' ;
13
14
import 'package:test/test.dart' ;
14
15
15
16
import 'mocks.dart' ;
@@ -205,6 +206,38 @@ project 'Runner', {
205
206
]));
206
207
});
207
208
209
+ test (
210
+ 'pubspec special-cases camera_android to remove it from deps but not overrides' ,
211
+ () async {
212
+ writeFakeFlutterCreateOutput (testRoot);
213
+ final Directory cameraDir = packagesDir.childDirectory ('camera' );
214
+ createFakePlugin ('camera' , cameraDir);
215
+ createFakePlugin ('camera_android' , cameraDir);
216
+ createFakePlugin ('camera_android_camerax' , cameraDir);
217
+
218
+ await runCapturingPrint (runner, < String > ['create-all-packages-app' ]);
219
+ final Pubspec pubspec = command.app.parsePubspec ();
220
+
221
+ final Dependency ? cameraDependency = pubspec.dependencies['camera' ];
222
+ final Dependency ? cameraAndroidDependency =
223
+ pubspec.dependencies['camera_android' ];
224
+ final Dependency ? cameraCameraXDependency =
225
+ pubspec.dependencies['camera_android_camerax' ];
226
+ expect (cameraDependency, isA <PathDependency >());
227
+ expect ((cameraDependency! as PathDependency ).path,
228
+ endsWith ('/packages/camera/camera' ));
229
+ expect (cameraCameraXDependency, isA <PathDependency >());
230
+ expect ((cameraCameraXDependency! as PathDependency ).path,
231
+ endsWith ('/packages/camera/camera_android_camerax' ));
232
+ expect (cameraAndroidDependency, null );
233
+
234
+ final Dependency ? cameraAndroidOverride =
235
+ pubspec.dependencyOverrides['camera_android' ];
236
+ expect (cameraAndroidOverride, isA <PathDependency >());
237
+ expect ((cameraAndroidOverride! as PathDependency ).path,
238
+ endsWith ('/packages/camera/camera_android' ));
239
+ });
240
+
208
241
test ('legacy files are copied when requested' , () async {
209
242
writeFakeFlutterCreateOutput (testRoot);
210
243
createFakePlugin ('plugina' , packagesDir);
0 commit comments