import 'package:flutter_test/flutter_test.dart';
import 'package:tane/services/offer_outbox.dart';

import '../support/test_support.dart';

void main() {
  late OfferOutbox outbox;
  setUp(() => outbox = OfferOutbox(InMemorySecretStore()));

  test('starts empty', () async {
    expect(await outbox.pending(), isEmpty);
  });

  test('enqueue adds ids; it is a set (no duplicates)', () async {
    await outbox.enqueue(['a', 'b']);
    await outbox.enqueue(['b', 'c']);
    expect(await outbox.pending(), {'a', 'b', 'c'});
  });

  test('remove drops the given ids', () async {
    await outbox.enqueue(['a', 'b', 'c']);
    await outbox.remove(['b']);
    expect(await outbox.pending(), {'a', 'c'});
  });

  test('clear empties it', () async {
    await outbox.enqueue(['a', 'b']);
    await outbox.clear();
    expect(await outbox.pending(), isEmpty);
  });
}
