47 lines
1.4 KiB
Dart
47 lines
1.4 KiB
Dart
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');
|
|
});
|
|
}
|