Skip to content

Commit bf03642

Browse files
Dillon Nysdnys1
authored andcommitted
chore(amplify_flutter): Remove circular dependencies
`amplify_flutter` does not need to directly depend on plugins and can use mocking in unit tests instead.
1 parent 81a64e1 commit bf03642

File tree

2 files changed

+7
-33
lines changed

2 files changed

+7
-33
lines changed

packages/amplify/amplify_flutter/pubspec.yaml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,9 @@ dependencies:
2929
flutter:
3030
sdk: flutter
3131
meta: ^1.7.0
32-
plugin_platform_interface: ^2.0.0
3332

3433
dev_dependencies:
35-
amplify_analytics_pinpoint: ">=1.0.0-next.8+1 <1.0.0-next.9"
36-
amplify_api: ">=1.0.0-next.8+1 <1.0.0-next.9"
37-
amplify_auth_cognito: ">=1.0.0-next.8+1 <1.0.0-next.9"
38-
amplify_datastore: ">=1.0.0-next.8+1 <1.0.0-next.9"
3934
amplify_lints: ">=2.0.2 <2.1.0"
40-
amplify_storage_s3: ">=1.0.0-next.8+1 <1.0.0-next.9"
4135
amplify_test: any
4236
build_runner: ^2.0.0
4337
flutter_test:

packages/amplify/amplify_flutter/test/amplify_test.dart

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4-
import 'package:amplify_datastore/amplify_datastore.dart';
54
import 'package:amplify_flutter/amplify_flutter.dart';
65
import 'package:amplify_flutter/src/amplify_impl.dart';
7-
import 'package:amplify_test/test_models/ModelProvider.dart';
86
import 'package:flutter/services.dart';
97
import 'package:flutter_test/flutter_test.dart';
108

@@ -18,6 +16,8 @@ final throwsPluginNotAddedError = throwsA(
1816
),
1917
);
2018

19+
class MockPlugin extends AuthPluginInterface {}
20+
2121
void main() {
2222
TestWidgetsFlutterBinding.ensureInitialized();
2323
Amplify = MethodChannelAmplify();
@@ -120,44 +120,24 @@ void main() {
120120
test('adding multiple plugins using addPlugins method doesn\'t throw',
121121
() async {
122122
await amplify.addPlugins([
123-
AmplifyDataStore(modelProvider: ModelProvider.instance),
124-
AmplifyDataStore(modelProvider: ModelProvider.instance),
123+
MockPlugin(),
124+
MockPlugin(),
125125
]);
126126
await amplify.configure(validJsonConfiguration);
127127
expect(amplify.isConfigured, true);
128128
});
129129

130130
test('adding single plugins using addPlugin method doesn\'t throw', () async {
131-
await amplify
132-
.addPlugin(AmplifyDataStore(modelProvider: ModelProvider.instance));
131+
await amplify.addPlugin(MockPlugin());
133132
await amplify.configure(validJsonConfiguration);
134133
expect(amplify.isConfigured, true);
135134
});
136135

137-
test('adding multiple plugins from same Analytic category throws exception',
138-
() async {
139-
await amplify
140-
.addPlugin(AmplifyDataStore(modelProvider: ModelProvider.instance));
141-
expect(
142-
amplify
143-
.addPlugin(AmplifyDataStore(modelProvider: ModelProvider.instance)),
144-
throwsA(
145-
isA<PluginError>().having(
146-
(e) => e.toString(),
147-
'toString',
148-
contains('DataStore plugin has already been added'),
149-
),
150-
),
151-
);
152-
});
153-
154136
test('adding plugins after configure throws an exception', () async {
155-
await amplify
156-
.addPlugin(AmplifyDataStore(modelProvider: ModelProvider.instance));
137+
await amplify.addPlugin(MockPlugin());
157138
await amplify.configure(validJsonConfiguration);
158139
try {
159-
await amplify
160-
.addPlugin(AmplifyDataStore(modelProvider: ModelProvider.instance));
140+
await amplify.addPlugin(MockPlugin());
161141
} catch (e) {
162142
expect(e, amplifyAlreadyConfiguredForAddPluginException);
163143
expect(amplify.isConfigured, true);

0 commit comments

Comments
 (0)