Skip to content

Commit

Permalink
Add enum + event constructor for code size analysis (#200)
Browse files Browse the repository at this point in the history
* Add enum + event constructor for code size analysis

* `dart format` fix

* `kind` --> `platform`
  • Loading branch information
eliasyishak authored Nov 13, 2023
1 parent dd46ef2 commit 68b4e6b
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 3 deletions.
4 changes: 4 additions & 0 deletions pkgs/unified_analytics/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 5.4.0

- Added the `Event.codeSizeAnalysis` constructor

## 5.3.0

- User property "host_os_version" added to provide detail version information about the host
Expand Down
2 changes: 1 addition & 1 deletion pkgs/unified_analytics/lib/src/constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ const int kLogFileLength = 2500;
const String kLogFileName = 'dart-flutter-telemetry.log';

/// The current version of the package, should be in line with pubspec version.
const String kPackageVersion = '5.3.0';
const String kPackageVersion = '5.4.0';

/// The minimum length for a session.
const int kSessionDurationMinutes = 30;
Expand Down
5 changes: 5 additions & 0 deletions pkgs/unified_analytics/lib/src/enums.dart
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ enum DashEvent {

// Events for the Flutter CLI

codeSizeAnalysis(
label: 'code_size_analysis',
description: 'Indicates when the "--analyize-size" command is run',
toolOwner: DashTool.flutterTool,
),
doctorValidatorResult(
label: 'doctor_validator_result',
description: 'Results from a specific doctor validator',
Expand Down
11 changes: 11 additions & 0 deletions pkgs/unified_analytics/lib/src/event.dart
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,17 @@ final class Event {
if (removed != null) 'removed': removed,
};

/// An event that reports when the code size measurement is run
/// via `--analyze-size`.
///
/// [platform] - string identifier for which platform was run "ios", "apk",
/// "aab", etc.
Event.codeSizeAnalysis({required String platform})
: eventName = DashEvent.codeSizeAnalysis,
eventData = {
'platform': platform,
};

/// Event that is emitted periodically to report the number of times a given
/// command has been executed.
///
Expand Down
2 changes: 1 addition & 1 deletion pkgs/unified_analytics/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: >-
to Google Analytics.
# When updating this, keep the version consistent with the changelog and the
# value in lib/src/constants.dart.
version: 5.3.0
version: 5.4.0
repository: https://github.com/dart-lang/tools/tree/main/pkgs/unified_analytics

environment:
Expand Down
13 changes: 12 additions & 1 deletion pkgs/unified_analytics/test/event_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,17 @@ void main() {
expect(constructedEvent.eventData.length, 3);
});

test('Event.codeSizeAnalysis constructed', () {
Event generateEvent() => Event.codeSizeAnalysis(platform: 'platform');

final constructedEvent = generateEvent();

expect(generateEvent, returnsNormally);
expect(constructedEvent.eventName, DashEvent.codeSizeAnalysis);
expect(constructedEvent.eventData['platform'], 'platform');
expect(constructedEvent.eventData.length, 1);
});

test('Confirm all constructors were checked', () {
var constructorCount = 0;
for (var declaration in reflectClass(Event).declarations.keys) {
Expand All @@ -406,7 +417,7 @@ void main() {

// Change this integer below if your PR either adds or removes
// an Event constructor
final eventsAccountedForInTests = 20;
final eventsAccountedForInTests = 21;
expect(eventsAccountedForInTests, constructorCount,
reason: 'If you added or removed an event constructor, '
'ensure you have updated '
Expand Down

0 comments on commit 68b4e6b

Please sign in to comment.