Skip to content

Commit 33cba2d

Browse files
committed
Version 2.12.0-259.16.beta
* Cherry-pick 410f242 to beta
2 parents efa74fd + f6b300c commit 33cba2d

3 files changed

Lines changed: 32 additions & 4 deletions

File tree

pkg/dartdev/lib/dartdev.dart

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:args/args.dart';
1010
import 'package:args/command_runner.dart';
1111
import 'package:cli_util/cli_logging.dart';
1212
import 'package:dart_style/src/cli/format_command.dart';
13+
import 'package:meta/meta.dart';
1314
import 'package:nnbd_migration/migration_cli.dart';
1415
import 'package:pedantic/pedantic.dart';
1516
import 'package:pub/pub.dart';
@@ -112,22 +113,30 @@ class DartdevRunner extends CommandRunner<int> {
112113
String get invocation =>
113114
'dart [<vm-flags>] <command|dart-file> [<arguments>]';
114115

116+
@visibleForTesting
117+
Analytics get analytics => _analytics;
118+
Analytics _analytics;
119+
115120
@override
116121
Future<int> runCommand(ArgResults topLevelResults) async {
117122
final stopwatch = Stopwatch()..start();
118123
// The Analytics instance used to report information back to Google Analytics;
119124
// see lib/src/analytics.dart.
120-
final analytics = createAnalyticsInstance(!topLevelResults['analytics']);
125+
_analytics = createAnalyticsInstance(
126+
topLevelResults.wasParsed('analytics')
127+
? !topLevelResults['analytics']
128+
: false,
129+
);
121130

122131
// If we have not printed the analyticsNoticeOnFirstRunMessage to stdout,
123132
// the user is on a terminal, and the machine is not a bot, then print the
124133
// disclosure and set analytics.disclosureShownOnTerminal to true.
125134
if (analytics is DartdevAnalytics &&
126-
!analytics.disclosureShownOnTerminal &&
135+
!(analytics as DartdevAnalytics).disclosureShownOnTerminal &&
127136
io.stdout.hasTerminal &&
128137
!isBot()) {
129138
print(analyticsNoticeOnFirstRunMessage);
130-
analytics.disclosureShownOnTerminal = true;
139+
(analytics as DartdevAnalytics).disclosureShownOnTerminal = true;
131140
}
132141

133142
// When `--disable-analytics` or `--enable-analytics` are called we perform

pkg/dartdev/test/analytics_test.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import 'dart:convert';
66
import 'dart:io';
77

8+
import 'package:dartdev/dartdev.dart';
89
import 'package:dartdev/src/analytics.dart';
910
import 'package:test/test.dart';
1011

@@ -20,6 +21,24 @@ List<Map> extractAnalytics(ProcessResult result) {
2021
void main() {
2122
group('DisabledAnalytics', disabledAnalyticsObject);
2223

24+
group('VM -> CLI --analytics flag smoke test:', () {
25+
final command = DartdevRunner(['--analytics']);
26+
test('--analytics', () {
27+
command.runCommand(command.parse(['--analytics']));
28+
expect(command.analytics is! DisabledAnalytics, true);
29+
});
30+
31+
test('--no-analytics', () {
32+
command.runCommand(command.parse(['--no-analytics']));
33+
expect(command.analytics is DisabledAnalytics, true);
34+
});
35+
36+
test('No flag', () {
37+
command.runCommand(command.parse([]));
38+
expect(command.analytics is! DisabledAnalytics, true);
39+
});
40+
});
41+
2342
test('Analytics control smoke test', () {
2443
final p = project(logAnalytics: true);
2544
var result = p.runSync(['--disable-analytics']);

tools/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ MAJOR 2
2828
MINOR 12
2929
PATCH 0
3030
PRERELEASE 259
31-
PRERELEASE_PATCH 15
31+
PRERELEASE_PATCH 16

0 commit comments

Comments
 (0)