File tree 2 files changed +24
-1
lines changed
2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -1586,7 +1586,9 @@ class _GetItImplementation implements GetIt {
1586
1586
);
1587
1587
1588
1588
/// skip double registration
1589
- if (skipDoubleRegistration && ! allowReassignment) {
1589
+ if (skipDoubleRegistration &&
1590
+ ! allowReassignment &&
1591
+ existingTypeRegistration.namedFactories.containsKey (instanceName)) {
1590
1592
return ;
1591
1593
}
1592
1594
} else {
Original file line number Diff line number Diff line change @@ -38,6 +38,27 @@ void main() {
38
38
expect (getIt <DataStore >(), isA <MockDataStore >());
39
39
});
40
40
41
+ test (' Ignores Double named registration error ' , () async {
42
+ final getIt = GetIt .instance;
43
+ const instanceName = 'named' ;
44
+ getIt.reset ();
45
+ getIt.allowReassignment = false ;
46
+ getIt.skipDoubleRegistration = true ;
47
+ getIt.registerSingleton <DataStore >(RemoteDataStore ());
48
+ getIt.registerSingleton <DataStore >(
49
+ MockDataStore (),
50
+ instanceName: instanceName,
51
+ );
52
+ getIt.registerSingleton <DataStore >(MockDataStore ());
53
+ getIt.registerSingleton <DataStore >(
54
+ RemoteDataStore (),
55
+ instanceName: instanceName,
56
+ );
57
+
58
+ expect (getIt <DataStore >(), isA <RemoteDataStore >());
59
+ expect (getIt <DataStore >(instanceName: instanceName), isA <MockDataStore >());
60
+ });
61
+
41
62
test (' does not care about [skipDoubleRegistration] varibale ' , () async {
42
63
final getIt = GetIt .instance;
43
64
getIt.reset ();
You can’t perform that action at this time.
0 commit comments