JJ_MKVMaker/test/app_bar_modules_contract_te...

40 lines
1.6 KiB
Dart

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 = <bool>[];
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);
});
}