38 lines
1.9 KiB
Dart
38 lines
1.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:jj_mkvmaker/app/app_controller.dart';
|
|
import 'package:jj_mkvmaker/platform/windows/desktop_storage_service.dart';
|
|
import 'package:jj_mkvmaker/platform/windows/process_media_tool.dart';
|
|
import 'package:jj_mkvmaker/services/platform_services.dart';
|
|
import 'package:jj_mkvmaker/startup/app_start.dart';
|
|
import 'package:jj_mkvmaker/startup/startup_helpers.dart';
|
|
|
|
/// main.dart 를 나눈 모듈의 약속 (Windows · Android 가 같이 쓰는 다운로드 연결)
|
|
void main() {
|
|
AppController ctl() => AppController(PlatformServices(mediaTool: ProcessMediaTool('x', 'y'), storage: DesktopStorageService()));
|
|
|
|
test('약속 createDownloads: 다운로드 목록이 설정 · 편집 목록 · 작업 기록에 이어진다', () async {
|
|
final c = ctl();
|
|
final d = createDownloads(c, messengerKey: GlobalKey<ScaffoldMessengerState>(), navigatorKey: GlobalKey<NavigatorState>());
|
|
var refreshed = 0;
|
|
d.addListener(() => refreshed++);
|
|
await d.setAutoAdd!(false);
|
|
expect([c.settings.download.addFinished, refreshed], [false, 1], reason: '다 받은 것 넣기 끄기 → 설정 · 목록 다시 그림');
|
|
c.settings.network.mode = 'custom';
|
|
await d.useSystemDns!();
|
|
expect([c.settings.network.mode, refreshed], ['system', 2]);
|
|
d.log!('다운로드 기록');
|
|
expect(c.logs.last, endsWith('다운로드 기록'));
|
|
expect(await d.addToEditList!(const []), 0, reason: '편집 목록 넣기는 AppController.addDownloaded');
|
|
});
|
|
|
|
test('약속 lastWorkText: 하던 작업, 없으면 마지막 기록 (시각 뺌), 그것도 없으면 "없음"', () {
|
|
final c = ctl();
|
|
expect(lastWorkText(c), '없음');
|
|
c.note('MKV 만들기 끝\n자세히');
|
|
expect(lastWorkText(c), 'MKV 만들기 끝');
|
|
c.currentJob = 'AI 자막: a.mp4';
|
|
expect(lastWorkText(c), 'AI 자막: a.mp4');
|
|
});
|
|
}
|