Skip to main content

herald_testing 1.0.0-dev.2 copy "herald_testing: ^1.0.0-dev.2" to clipboard
herald_testing: ^1.0.0-dev.2 copied to clipboard

A fake Herald vendor that records every event, property and call, with assertions for tests in apps that use Herald.

example/herald_testing_example.dart

import 'package:herald/herald.dart';
import 'package:herald_testing/herald_testing.dart';
import 'package:test/test.dart';

final class const CheckoutStarted(final String plan, final int seats) extends Event {
  @override
  String get name => 'checkout_started';

  @override
  Map<String, AnalyticsValue> get parameters => {'plan': .string(plan), 'seats': .int(seats)};
}

final class const CheckoutViewModel(final EventTrackerService analytics) {
  Future<void> start(String plan, int seats) => analytics.track(CheckoutStarted(plan, seats));
}

void main() {
  test('checkout reports the plan and seats, once', () async {
    final analytics = FakeAnalyticsProvider();

    await CheckoutViewModel(analytics).start('pro', 3);

    analytics
      ..assertTracked(
        'checkout_started',
        (event) => event
          ..param('plan', 'pro')
          ..param('seats', 3),
      )
      ..assertNothingElseTracked();
  });
}
0
likes
0
points
555
downloads

Publisher

unverified uploader

Weekly Downloads

A fake Herald vendor that records every event, property and call, with assertions for tests in apps that use Herald.

Repository (GitHub)
View/report issues

Topics

#analytics #testing

License

unknown (license)

Dependencies

herald, test_api

More

Packages that depend on herald_testing