import 'package:eaimar/data/utils/device_file_match.dart'; import 'package:flutter_test/flutter_test.dart'; /// 删除设备原件的闸门(第一道:按标题找到那条已上传的记录)。 /// 用例里的标题都是 2026-09-10 真机那次同步的实际值。 /// /// ⚠️ 第二道闸(本机文件长度 == 设备文件长度)在 DeviceFileImportService /// 里做,因为要读磁盘。**两道都过才允许删**,放宽任何一道都是永久丢用户数据。 void main() { const uploaded = { 'HOLDER_20260907_181224_MIC0049.OGG': '/data/.../LocalAudio/a.ogg', 'HOLDER_20260907_184120_MIC0056.OGG': '/data/.../LocalAudio/b.ogg', 'EARBUDS_20260902_223314.WAV': '/data/.../LocalAudio/c.wav', }; test('设备上是大写短名,标题里是小写,要能对上', () { expect(uploadedLocalPathFor(uploaded, 'MIC0049.OGG'), '/data/.../LocalAudio/a.ogg'); expect(uploadedLocalPathFor(uploaded, 'mic0056.ogg'), '/data/.../LocalAudio/b.ogg'); }); test('设备上有、但没有对应的已上传记录 → 拿不到路径,删不了', () { expect(uploadedLocalPathFor(uploaded, 'MIC0099.OGG'), isNull); }); test('⚠️ 后缀匹配不能被短名蒙混:IC0049 不是 MIC0049', () { expect(uploadedLocalPathFor(uploaded, 'IC0049.OGG'), isNull); }); test('没有已上传记录时一律删不了', () { expect(uploadedLocalPathFor(const {}, 'MIC0049.OGG'), isNull); }); test('空文件名一律拒绝', () { expect(uploadedLocalPathFor(uploaded, ''), isNull); }); test('记录里没有本机路径(服务端同步下来的行)→ 不作数', () { const noPath = {'HOLDER_20260907_181224_MIC0049.OGG': ''}; expect(uploadedLocalPathFor(noPath, 'MIC0049.OGG'), isNull); }); }