import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:hepan_everyday/app/app_controller.dart'; import 'package:hepan_everyday/app/app_theme.dart'; import 'package:hepan_everyday/domain/app_snapshot.dart'; import 'package:hepan_everyday/domain/exam_schedule.dart'; import 'package:hepan_everyday/domain/school_identity.dart'; import 'package:hepan_everyday/features/exams/exams_page.dart'; import '../support/fakes.dart'; void main() { testWidgets('query description has breathing room above exam cards', ( tester, ) async { final controller = AppController( MemoryStore(), FakeNotifications(), FakeCalendar(), DateTime.now, ); addTearDown(controller.dispose); controller.snapshot = AppSnapshot( examSchedule: ExamSchedule( semesterLabel: '2025-2026第二学期', termId: '503', school: SupportedSchool.uestcUndergraduate, requestedExamTypes: {1}, records: [const ExamRecord(code: 'C1', name: '测试考试', examTypeId: 1)], ), ); await tester.pumpWidget( MaterialApp( home: Scaffold( body: ExamsPage(controller: controller, onSync: () {}), ), ), ); final description = tester.getRect(find.text('查询类型:期末考试')); final card = tester.getRect(find.byType(SurfaceCard).first); expect(card.top - description.bottom, greaterThanOrEqualTo(12)); }); }