fix(player): 恢复随机飘心粒子模型
This commit is contained in:
1 parent
94b37ef00f
commit
f3dd4a9b5c
3 files changed
+87
-79
No files matched your search
@@ -1,26 +1,34 @@
|
||||
// Author: fruit.com.cn
|
||||
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:fruitshorts/pages/player/widgets/player_double_tap_hearts.dart';
|
||||
|
||||
void main() {
|
||||
testWidgets('should_show_three_medium_hearts_when_double_tap_burst_starts', (
|
||||
testWidgets('should_show_randomized_heart_particles_when_burst_starts', (
|
||||
tester,
|
||||
) async {
|
||||
await tester.pumpWidget(
|
||||
const MaterialApp(
|
||||
MaterialApp(
|
||||
home: Scaffold(
|
||||
body: PlayerDoubleTapHeartBurst(burstId: 1, onCompleted: _noop),
|
||||
body: PlayerDoubleTapHeartBurst(
|
||||
burstId: 1,
|
||||
onCompleted: _noop,
|
||||
random: Random(42),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
await tester.pump(const Duration(milliseconds: 300));
|
||||
await tester.pump(const Duration(milliseconds: 400));
|
||||
|
||||
expect(find.byIcon(Icons.favorite_rounded), findsNWidgets(3));
|
||||
expect(_size(tester, 0), 44);
|
||||
expect(_size(tester, 1), 34);
|
||||
expect(_size(tester, 2), 38);
|
||||
final hearts = find.byIcon(Icons.favorite_rounded);
|
||||
final count = hearts.evaluate().length;
|
||||
expect(count, inInclusiveRange(4, 5));
|
||||
for (var index = 0; index < count; index++) {
|
||||
expect(_size(tester, index), inInclusiveRange(22, 34));
|
||||
}
|
||||
expect(
|
||||
tester
|
||||
.widgetList<Stack>(
|
||||
@@ -34,14 +42,16 @@ void main() {
|
||||
);
|
||||
});
|
||||
|
||||
test('heart burst stays long and sparse', () {
|
||||
expect(PlayerDoubleTapHeartBurst.singleHeartDurationMs, 1900);
|
||||
test('heart particles fade from the start and scale in two phases', () {
|
||||
expect(PlayerDoubleTapHeartBurst.opacityForProgress(0.5), lessThan(0.7));
|
||||
expect(PlayerDoubleTapHeartBurst.scaleForProgress(0), 0.55);
|
||||
expect(
|
||||
PlayerDoubleTapHeartBurst.animationDuration,
|
||||
greaterThanOrEqualTo(const Duration(milliseconds: 1800)),
|
||||
PlayerDoubleTapHeartBurst.scaleForProgress(0.3),
|
||||
closeTo(1.15, 1e-9),
|
||||
);
|
||||
expect(PlayerDoubleTapHeartBurst.particleCount, lessThanOrEqualTo(4));
|
||||
expect(PlayerDoubleTapHeartBurst.particleCount, 3);
|
||||
expect(PlayerDoubleTapHeartBurst.scaleForProgress(1), closeTo(0.2, 1e-9));
|
||||
expect(PlayerDoubleTapHeartBurst.minParticleCount, 4);
|
||||
expect(PlayerDoubleTapHeartBurst.maxParticleCount, 5);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user