Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test: use mock analytics and pub updater
  • Loading branch information
felangel committed Oct 7, 2021
commit e8c7cd1ffa09dcb872582bb9a990d65238c72f77
26 changes: 26 additions & 0 deletions test/src/commands/packages_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,18 @@ import 'package:io/io.dart';
import 'package:mason/mason.dart';
import 'package:mocktail/mocktail.dart';
import 'package:path/path.dart' as path;
import 'package:pub_updater/pub_updater.dart';
import 'package:test/test.dart';
import 'package:universal_io/io.dart';
import 'package:usage/usage.dart';
import 'package:very_good_cli/src/command_runner.dart';

class MockAnalytics extends Mock implements Analytics {}

class MockLogger extends Mock implements Logger {}

class MockPubUpdater extends Mock implements PubUpdater {}

const expectedPackagesUsage = [
// ignore: no_adjacent_strings_in_list
'Command for managing packages.\n'
Expand All @@ -36,7 +42,9 @@ const expectedPackagesGetUsage = [

void main() {
group('packages', () {
late Analytics analytics;
late Logger logger;
late PubUpdater pubUpdater;
late List<String> printLogs;
late List<String> progressLogs;
late VeryGoodCommandRunner commandRunner;
Expand All @@ -51,16 +59,34 @@ void main() {
}

setUp(() {
analytics = MockAnalytics();
logger = MockLogger();
pubUpdater = MockPubUpdater();
printLogs = [];
progressLogs = [];
commandRunner = VeryGoodCommandRunner(logger: logger);

when(() => analytics.firstRun).thenReturn(false);
when(() => analytics.enabled).thenReturn(false);
when(
() => analytics.sendEvent(any(), any(), label: any(named: 'label')),
).thenAnswer((_) async {});
when(
() => analytics.waitForLastPing(timeout: any(named: 'timeout')),
).thenAnswer((_) async {});

when(() => logger.progress(any())).thenReturn(
([_]) {
if (_ != null) progressLogs.add(_);
},
);

when(
() => pubUpdater.isUpToDate(
packageName: any(named: 'packageName'),
currentVersion: any(named: 'currentVersion'),
),
).thenAnswer((_) => Future.value(true));
});

test('help', overridePrint(() async {
Expand Down