You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.8 KiB
43 lines
1.8 KiB
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);
|
|
});
|
|
}
|
|
|