Skip to content

Commit

Permalink
fix(detail_screen.dart): Add additional test and fix what happens if …
Browse files Browse the repository at this point in the history
…a device for some reason has no traits
  • Loading branch information
rlperez committed Jan 21, 2022
1 parent 51b556a commit 0286c5b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
5 changes: 3 additions & 2 deletions lib/traits/detail_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,10 @@ class DetailScreenWidget extends StatelessWidget {
}

Widget buildContainer(List<Trait> traits) {
final displayTraits = (traits.isEmpty) ? [UnknownTrait('UNKNOWN')] : traits;
final deviceWidget = DeviceWidgetBuilder()
.withPrimaryTrait(traits.first)
.withTraits(traits.skip(1).toList())
.withPrimaryTrait(displayTraits.first)
.withTraits(displayTraits.skip(1).toList())
.build();

return Container(
Expand Down
13 changes: 13 additions & 0 deletions test/traits/detail_screen_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import 'package:yonomi_device_widgets/traits/slim/lock_slim_widget.dart';
import 'package:yonomi_device_widgets/traits/slim/power_slim_widget.dart';
import 'package:yonomi_device_widgets/traits/slim/thermostat_slim_widget.dart';
import 'package:yonomi_device_widgets/traits/thermostat_widget.dart';
import 'package:yonomi_device_widgets/traits/unknown_widget.dart';
import 'package:yonomi_device_widgets/ui/widget_style_constants.dart';
import 'package:yonomi_platform_sdk/yonomi-sdk.dart';

Expand Down Expand Up @@ -296,6 +297,18 @@ void main() {
WidgetStyleConstants.globalWarningColor);
});

testWidgets(
'For a device with no traits, Detail screen should show an unknown trait display',
(WidgetTester tester) async {
final request = Request('', {});

await tester.pumpWidget(
test.createDetailScreenWidgetForTraits([], request, testedDeviceId));

expect(find.byType(UnknownWidget), findsOneWidget);
});


testWidgets('Detail screen returns a multiprovider',
(WidgetTester tester) async {
final detailScreen =
Expand Down

0 comments on commit 0286c5b

Please sign in to comment.