import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:jj_mkvmaker/app/settings.dart'; import 'package:jj_mkvmaker/ui/app_bar/app_nav_buttons.dart'; import 'package:jj_mkvmaker/ui/app_bar/app_top_bar.dart'; /// app_actions 를 나눈 모듈의 약속 (실제 설정 · 실제 위젯으로) void main() { test('약속 AppNavButtons.homeId: 시작 화면이 켜져 있으면 그 화면, 꺼졌으면 켠 화면의 첫째 (순서대로), 모르는 값은 MKV', () { final s = AppSettings() ..display.components = ['mkv', 'browser', 'explorer'] ..display.navOrder = const []; s.display.startScreen = 'files'; expect(AppNavButtons.homeId(s), 'explorer'); s.display.startScreen = 'tor'; expect(AppNavButtons.homeId(s), 'mkv', reason: 'Tor 를 끄면 켠 화면의 첫째'); s.display.components = ['browser', 'explorer']; expect(AppNavButtons.homeId(s), 'browser', reason: 'MKV 도 끄면 다음 첫째'); s.display.startScreen = 'nothing'; expect(AppNavButtons.homeId(s), 'browser'); s.display.components = []; expect(AppNavButtons.homeId(s), 'mkv', reason: '켠 화면이 없으면 MKV'); }); testWidgets('약속 isCompact: 폭 720 아래만 좁은 화면 (두 줄 막대)', (t) async { final got = []; for (final w in [719.0, 720.0]) { t.view.physicalSize = Size(w, 600); t.view.devicePixelRatio = 1; await t.pumpWidget(MaterialApp(home: Builder(builder: (c) { got.add(isCompact(c)); return const SizedBox(); }))); } t.view.reset(); expect(got, [true, false]); expect(compactWidth, 720); }); }