summary_test.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_test/flutter_test.dart';
  3. import 'package:rackpeek_mobile/data/api_client.dart';
  4. import 'package:rackpeek_mobile/design.dart';
  5. import 'package:rackpeek_mobile/screens/resources_tab.dart';
  6. import 'package:rackpeek_mobile/screens/summary_tab.dart';
  7. import 'package:rackpeek_mobile/state/inventory_store.dart';
  8. void main() {
  9. testWidgets('hardware summary item opens its resource kind filter', (
  10. tester,
  11. ) async {
  12. final store =
  13. InventoryStore(
  14. RackPeekApi(
  15. baseUrl: 'https://server.example.test',
  16. apiKey: 'test-key',
  17. ),
  18. )
  19. ..summary = {
  20. 'hardware': {
  21. 'totalHardware': 1,
  22. 'hardwareByKind': {'Server': 1},
  23. },
  24. 'systems': {
  25. 'totalSystems': 0,
  26. 'systemsByType': <String, int>{},
  27. 'systemsByOs': <String, int>{},
  28. },
  29. 'services': {'totalServices': 0, 'totalIpAddresses': 0},
  30. 'tags': <String, int>{},
  31. 'labels': <String, int>{},
  32. };
  33. ResourceFilter? selectedFilter;
  34. await tester.pumpWidget(
  35. MaterialApp(
  36. theme: scribeTheme(),
  37. home: Scaffold(
  38. body: SummaryTab(
  39. store: store,
  40. onOpenResources: (filter) => selectedFilter = filter,
  41. ),
  42. ),
  43. ),
  44. );
  45. await tester.tap(find.text('1 Servers'));
  46. expect(selectedFilter?.kind, 'Server');
  47. });
  48. }