yumi-flutter/test/gift_vap_svga_manager_priority_test.dart
2026-04-30 19:54:24 +08:00

54 lines
1.7 KiB
Dart

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<SCVapTask>((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');
},
);
});
}