Use backend rescan summary in group editor

This commit is contained in:
Artem Kokos
2026-05-16 10:59:31 +07:00
parent 70fedb6134
commit 83d946558b
3 changed files with 76 additions and 38 deletions

View File

@@ -82,6 +82,39 @@ void main() {
expect(api.createdGroupMacs, ['AA:BB']);
});
testWidgets('group edit screen shows backend rescan summary', (
tester,
) async {
final api = FakeIgnisApi(
devicesData: {
'devices': [
{'mac': 'AA:BB', 'name': 'Лампа 1'},
],
},
groupsData: <Object>[],
)..rescanNetworkData = {
'status': 'ok',
'found': 3,
'added': 1,
'updated': 2,
'removed_offline': 1,
'pending_removal': 0,
'online': 3,
};
await pumpTestApp(tester, child: const GroupEditScreen(), api: api);
await tester.pumpAndSettle();
await tester.tap(find.byTooltip('Пересканировать сеть'));
await tester.pumpAndSettle();
expect(
find.text('Сканирование завершено: найдено 3, новых 1, обновлено 2, убрано 1'),
findsOneWidget,
);
expect(api.rescanCalls, 1);
});
testWidgets('api keys screen validates and shows created key banner', (
tester,
) async {

View File

@@ -36,6 +36,7 @@ class FakeIgnisApi extends IgnisApi {
Object? eventLogData;
Object? apiKeysData;
Object? authData;
Object? rescanNetworkData;
Object? devicesError;
Object? scenesError;
@@ -329,7 +330,17 @@ class FakeIgnisApi extends IgnisApi {
if (error != null) throw error;
return Response(
requestOptions: RequestOptions(path: '/devices/rescan'),
data: <String, dynamic>{'ok': true},
data:
rescanNetworkData ??
<String, dynamic>{
'status': 'ok',
'found': 0,
'added': 0,
'updated': 0,
'removed_offline': 0,
'pending_removal': 0,
'online': 0,
},
);
}
}