import 'package:flutter_test/flutter_test.dart'; import 'package:tasq/models/notification_item.model.dart'; import 'package:tasq/services/notification_bridge.dart'; NotificationItem _n(String id, {DateTime? readAt}) => NotificationItem( id: id, userId: 'u', actorId: null, ticketId: null, taskId: null, itServiceRequestId: null, messageId: null, type: 'assignment', createdAt: DateTime(2026), readAt: readAt, ); void main() { test('first snapshot never raises a banner', () { expect(newestArrival(null, [_n('b'), _n('a')]), isNull); }); test('picks the newest unseen item, not the oldest', () { final prev = [_n('a')]; final next = [_n('c'), _n('b'), _n('a')]; // newest-first expect(newestArrival(prev, next)?.id, 'c'); }); test('ignores already-read and already-seen items', () { final prev = [_n('a')]; expect( newestArrival(prev, [_n('b', readAt: DateTime(2026)), _n('a')]), isNull, ); expect(newestArrival(prev, [_n('a')]), isNull); }); }