feat: 实现起卦、设置与积分系统
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:meeyao_qianwen/features/divination/data/models/divination_params.dart';
|
||||
|
||||
void main() {
|
||||
test('mock data contains valid defaults', () {
|
||||
final params = DivinationMockData.initial();
|
||||
|
||||
expect(params.method, DivinationMethod.manual);
|
||||
expect(params.questionType, QuestionType.career);
|
||||
expect(params.coinBalance, greaterThan(0));
|
||||
expect(params.userId, isNotEmpty);
|
||||
});
|
||||
|
||||
test('toPayload returns normalized payload map', () {
|
||||
final params = DivinationParams(
|
||||
method: DivinationMethod.auto,
|
||||
questionType: QuestionType.health,
|
||||
question: '最近体检是否顺利',
|
||||
divinationTime: DateTime(2026, 4, 3, 10, 30),
|
||||
coinBalance: 6,
|
||||
userId: 'mock_2',
|
||||
);
|
||||
|
||||
final payload = params.toPayload();
|
||||
expect(payload['method'], 'auto');
|
||||
expect(payload['questionType'], 'health');
|
||||
expect(payload['question'], '最近体检是否顺利');
|
||||
expect(payload['coinBalance'], 6);
|
||||
expect(payload['userId'], 'mock_2');
|
||||
});
|
||||
|
||||
test('toBinary and toChangedBinary mappings are correct', () {
|
||||
final params = DivinationMockData.initial();
|
||||
final states = <YaoType>[
|
||||
YaoType.oldYin,
|
||||
YaoType.youngYang,
|
||||
YaoType.youngYin,
|
||||
YaoType.oldYang,
|
||||
YaoType.youngYang,
|
||||
YaoType.oldYin,
|
||||
];
|
||||
|
||||
expect(params.toBinary(states), '010110');
|
||||
expect(params.toChangedBinary(states), '110011');
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user