Skip to content

Commit

Permalink
feat: 0.2.0 (#17)
Browse files Browse the repository at this point in the history
  • Loading branch information
jeroen-meijer authored Nov 30, 2021
1 parent 556a761 commit 375193d
Show file tree
Hide file tree
Showing 15 changed files with 674 additions and 183 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
# 0.2.0-dev.3

- feat: add mock call for `canPop` (thanks [@allisonryan0002](https:/allisonryan0002)!)

# 0.2.0-dev.2

- feat: add mock call for `maybePop` (thanks [@korzonkiee](https:/korzonkiee)!)

# 0.2.0-dev.1

- feat: add `whereSettings`, `whereName`, `whereArguments`, `whereMaintainState` and `whereFullscreenDialog` matcher arguments to `isRoute` matcher
- **DEPRECATE**: fix: `named` argument on `isRoute` deprecated in favor of `whereName`

# 0.1.1

- refactor: reorder mock navigator provider parameters ([#14](https:/VeryGoodOpenSource/mockingjay/pull/14), thanks [@JigneshPatel23](https:/JigneshPatel23))
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ void main() {
await tester.tap(find.byType(TextButton));
verify(
() => navigator.push(any(that: isRoute<void>(named: '/settings'))),
() => navigator.push(any(that: isRoute<void>(whereName: equals('/settings')))),
).called(1);
});
}
Expand Down
2 changes: 1 addition & 1 deletion analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
include: package:very_good_analysis/analysis_options.2.3.0.yaml
include: package:very_good_analysis/analysis_options.2.4.0.yaml
2 changes: 1 addition & 1 deletion example/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
include: package:very_good_analysis/analysis_options.2.3.0.yaml
include: package:very_good_analysis/analysis_options.2.4.0.yaml
linter:
rules:
public_member_api_docs: false
5 changes: 2 additions & 3 deletions example/lib/ui/home_screen.dart
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import 'dart:io';

import 'package:example/ui/ui.dart';
import 'package:flutter/material.dart';
import 'package:universal_io/io.dart';

class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);

@override
_HomeScreenState createState() => _HomeScreenState();
State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
Expand Down
5 changes: 2 additions & 3 deletions example/lib/ui/pincode_screen.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:universal_io/io.dart';

class PincodeScreen extends StatefulWidget {
const PincodeScreen({Key? key}) : super(key: key);
Expand All @@ -17,7 +16,7 @@ class PincodeScreen extends StatefulWidget {
}

@override
_PincodeScreenState createState() => _PincodeScreenState();
State<PincodeScreen> createState() => _PincodeScreenState();
}

class _PincodeScreenState extends State<PincodeScreen> {
Expand Down
11 changes: 6 additions & 5 deletions example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,21 @@ environment:
flutter: ">=1.17.0"

dependencies:
bloc: ^7.0.0
bloc: ^8.0.0
equatable: ^2.0.3
flutter:
sdk: flutter
flutter_bloc: ^7.1.0
flutter_bloc: ^8.0.0
universal_io: ^2.0.4

dev_dependencies:
bloc_test: ^8.1.0
bloc_test: ^9.0.0
flutter_test:
sdk: flutter
mockingjay:
path: ../
mocktail: ^0.1.4
very_good_analysis: ^2.3.0
mocktail: ^0.2.0
very_good_analysis: ^2.4.0

flutter:
uses-material-design: true
22 changes: 15 additions & 7 deletions example/test/ui/home_screen_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,17 @@ void main() {

verify(
() => navigator.push(
any(that: isRoute<String?>(named: '/pincode_screen')),
any(that: isRoute<String?>(whereName: equals('/pincode_screen'))),
),
).called(1);
});

testWidgets('displays snackbar with selected pincode', (tester) async {
when(() => navigator.push(
any(that: isRoute<String?>(named: '/pincode_screen')),
)).thenAnswer((_) async => '123456');
when(
() => navigator.push(
any(that: isRoute<String?>(whereName: equals('/pincode_screen'))),
),
).thenAnswer((_) async => '123456');

await tester.pumpTest(
builder: (context) {
Expand All @@ -82,9 +84,15 @@ void main() {
testWidgets(
'displays snackbar when no pincode was submitted',
(tester) async {
when(() => navigator.push(
any(that: isRoute<String?>(named: '/pincode_screen')),
)).thenAnswer((_) async => null);
when(
() => navigator.push(
any(
that: isRoute<String?>(
whereName: equals('/pincode_screen'),
),
),
),
).thenAnswer((_) async => null);

await tester.pumpTest(
builder: (context) {
Expand Down
26 changes: 26 additions & 0 deletions lib/src/matcher_extensions.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import 'package:matcher/matcher.dart';

/// Extensions on [Matcher] for convenience.
extension MatcherExtensions on Matcher {
/// Returns the description of this matcher as a string.
String describeAsString() {
return describe(StringDescription()).toString();
}

/// Returns the mismatch description of this matcher as a string.
// ignore: avoid_positional_boolean_parameters
String describeMismatchAsString(dynamic item, Map matchState, bool verbose) {
final description = describeMismatch(
item,
StringDescription(),
matchState,
verbose,
);

if (description.toString().isEmpty) {
return 'is $item instead of ${describeAsString()}';
} else {
return description.toString();
}
}
}
Loading

0 comments on commit 375193d

Please sign in to comment.