import 'package:flutter_test/flutter_test.dart'; import 'package:marianum_mobile/widget/downloads/download_tray.dart'; void main() { group('shouldAutoOpenCompletion', () { test('opens a lone foreground download on its origin screen', () { expect( shouldAutoOpenCompletion( foreground: true, suppressAutoOpen: false, completedIsSoleVisibleJob: true, onOriginScreen: true, ), isTrue, ); }); test('does not open while backgrounded', () { expect( shouldAutoOpenCompletion( foreground: false, suppressAutoOpen: false, completedIsSoleVisibleJob: true, onOriginScreen: true, ), isFalse, ); }); test('does not open when other downloads are still visible', () { expect( shouldAutoOpenCompletion( foreground: true, suppressAutoOpen: false, completedIsSoleVisibleJob: false, onOriginScreen: true, ), isFalse, ); }); test('does not open once parallelism was seen (suppressed), even if now sole', () { // A burst of parallel downloads drains one by one; the last one left must // not surprise the user by auto-opening. expect( shouldAutoOpenCompletion( foreground: true, suppressAutoOpen: true, completedIsSoleVisibleJob: true, onOriginScreen: true, ), isFalse, ); }); test('does not open if the user left the screen it was started on', () { // The chip surfaces instead; nothing should pop open unexpectedly. expect( shouldAutoOpenCompletion( foreground: true, suppressAutoOpen: false, completedIsSoleVisibleJob: true, onOriginScreen: false, ), isFalse, ); }); }); group('shouldShowDownloadChip', () { test('hidden while the overview sheet is open', () { expect( shouldShowDownloadChip(sheetOpen: true, jobCount: 3, anySurfaced: true), isFalse, ); }); test('hidden when there are no jobs', () { expect( shouldShowDownloadChip( sheetOpen: false, jobCount: 0, anySurfaced: false, ), isFalse, ); }); test('hidden for a lone in-progress download on its own screen', () { // Single job, not finished, screen not left → inline progress is enough. expect( shouldShowDownloadChip( sheetOpen: false, jobCount: 1, anySurfaced: false, ), isFalse, ); }); test('shown for multiple downloads', () { expect( shouldShowDownloadChip( sheetOpen: false, jobCount: 2, anySurfaced: false, ), isTrue, ); }); test('shown for a lone download once surfaced (finished or screen left)', () { expect( shouldShowDownloadChip(sheetOpen: false, jobCount: 1, anySurfaced: true), isTrue, ); }); }); }