Files

61 lines
1.8 KiB
Dart
Raw Permalink Normal View History

2026-04-03 16:56:47 +08:00
import 'package:flutter_test/flutter_test.dart';
import 'package:meeyao_qianwen/features/divination/data/models/divination_params.dart';
void main() {
test('params contains valid fields', () {
final params = DivinationParams(
method: DivinationMethod.manual,
questionType: QuestionType.career,
question: '测试问题',
divinationTime: DateTime(2026, 4, 3, 10, 30),
coinBalance: 8,
userId: 'u_test',
);
2026-04-03 16:56:47 +08:00
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 = DivinationParams(
method: DivinationMethod.manual,
questionType: QuestionType.career,
question: '测试问题',
divinationTime: DateTime(2026, 4, 3, 10, 30),
coinBalance: 8,
userId: 'u_test',
);
2026-04-03 16:56:47 +08:00
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');
});
}