import 'package:flutter_test/flutter_test.dart'; import 'package:jj_mkvmaker/platform/android/android_keep_alive.dart'; void main() { test('Android 진행 알림 글 · 진행률', () { // 진행 중인 일이 없으면 알림을 내린다 expect(AndroidKeepAlive.status(null, false, 0, null), (null, -1)); // 다운로드만: 진행률 막대 expect(AndroidKeepAlive.status(null, false, 2, 0.456), ('다운로드 2개 · 46%', 46)); expect(AndroidKeepAlive.status(null, false, 1, null), ('다운로드 1개', -1)); // 작업 (MKV · AI) 이 있으면 글만 expect(AndroidKeepAlive.status('MKV 만들기', true, 0, null), ('MKV 만들기', -1)); expect(AndroidKeepAlive.status('AI 자막', true, 1, 0.5), ('AI 자막 · 다운로드 1개 · 50%', -1)); // 백그라운드로 실행: 실시간 동기화를 지켜보는 동안에도 expect(AndroidKeepAlive.status(null, false, 0, null, syncs: 2), ('동기화 2개 지켜보는 중', -1)); expect(AndroidKeepAlive.status('MKV 만들기', true, 0, null, syncs: 1, syncing: true), ('MKV 만들기 · 동기화 1개 · 맞추는 중', -1)); // 85: 복사 · 이동 진행률 - 다운로드가 없으면 막대도 expect(AndroidKeepAlive.status(null, false, 0, null, copies: 1, copyProgress: 0.4), ('복사 · 이동 1개 · 40%', 40)); expect(AndroidKeepAlive.status(null, false, 0, null, copies: 2), ('복사 · 이동 2개', -1), reason: '세는 중 (모름)'); expect(AndroidKeepAlive.status(null, false, 1, 0.5, copies: 1, copyProgress: 0.1), ('복사 · 이동 1개 · 10% · 다운로드 1개 · 50%', 50), reason: '막대는 다운로드가 먼저'); }); }