platform/sandbox/eventbus/test/completion_test.dart
2024-11-12 01:00:05 -07:00

70 lines
1.8 KiB
Dart

import 'package:event_bus_plus/event_bus_plus.dart';
import 'package:given_when_then_unit_test/given_when_then_unit_test.dart';
import 'models.dart';
import 'package:test/test.dart';
void main() {
late IEventBus bus;
before(() {
bus = EventBus();
});
test('emit Follower Events', () {
expect(
bus.on(),
emitsInOrder([
const FollowAppEvent('username'),
EmptyEvent(),
const FollowAppEvent('username3'),
EmptyEvent(),
const FollowAppEvent('username2'),
EmptyEvent(),
]));
bus.fire(const FollowAppEvent('username'));
bus.fire(const FollowAppEvent('username3'));
bus.fire(const FollowAppEvent('username2'));
});
test('start watch but not complete', () {
expect(
bus.on(),
emitsInOrder([
const FollowAppEvent('username'),
]));
bus.watch(const FollowAppEvent('username'));
});
test('start watch and complete', () {
const watchable = FollowAppEvent('username3');
expect(
bus.on(),
emitsInOrder([
watchable,
EmptyEvent(),
const EventCompletionEvent(watchable),
EmptyEvent(),
const FollowSuccessfullyEvent(watchable),
EmptyEvent(),
]));
bus.watch(watchable);
bus.complete(watchable,
nextEvent: const FollowSuccessfullyEvent(watchable));
});
// test('emit Follower Events', () {
// final watchable = FollowAppEvent('username3', id: '3');
// expect(
// _bus.on(),
// emitsInAnyOrder([
// FollowAppEvent('username3', id: '3'),
// FollowSuccessfullyAppEvent(watchable),
// ]));
// _bus.watch(watchable);
// _bus.complete(watchable, withh: FollowSuccessfullyAppEvent(watchable));
// });
}