import 'package:flutter_test/flutter_test.dart'; import 'package:yumi/shared/tools/sc_gift_vap_svga_manager.dart'; void main() { group('SCGiftVapSvgaManager priorities', () { test('entry effects keep the highest default priority', () { final giftPriority = SCGiftVapSvgaManager.resolveEffectPriority(); final entryPriority = SCGiftVapSvgaManager.resolveEffectPriority( type: SCGiftVapSvgaManager.entryEffectType, ); expect(entryPriority, greaterThan(giftPriority)); expect(entryPriority, SCGiftVapSvgaManager.entryEffectPriority); }); test('explicit gift priority is kept below default entry priority', () { expect(SCGiftVapSvgaManager.resolveEffectPriority(priority: 200), 200); expect( SCGiftVapSvgaManager.resolveEffectPriority( priority: 200, type: SCGiftVapSvgaManager.entryEffectType, ), SCGiftVapSvgaManager.entryEffectPriority, ); }); test( 'priority queue still orders entry before gift in the same channel', () { final queue = SCPriorityQueue((a, b) => a.compareTo(b)); queue.add( SCVapTask( path: 'entry.svga', type: SCGiftVapSvgaManager.entryEffectType, priority: SCGiftVapSvgaManager.resolveEffectPriority( type: SCGiftVapSvgaManager.entryEffectType, ), ), ); queue.add( SCVapTask( path: 'gift.svga', priority: SCGiftVapSvgaManager.resolveEffectPriority(), ), ); expect(queue.removeFirst().path, 'entry.svga'); expect(queue.removeFirst().path, 'gift.svga'); }, ); }); }