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', ); 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', ); final states = [ YaoType.oldYin, YaoType.youngYang, YaoType.youngYin, YaoType.oldYang, YaoType.youngYang, YaoType.oldYin, ]; expect(params.toBinary(states), '010110'); expect(params.toChangedBinary(states), '110011'); }); }