import 'package:flutter_test/flutter_test.dart'; import 'package:marianum_mobile/api/json_lenient.dart'; import 'package:marianum_mobile/api/marianumcloud/autocomplete/autocomplete_response.dart'; void main() { test('accepts the status as object, string or empty', () { final response = AutocompleteResponse.fromJson({ 'data': [ { 'id': 'a', 'label': 'A', 'status': {'status': 'online', 'message': null}, }, {'id': 'b', 'label': 'B', 'status': ''}, {'id': 'c', 'label': 'C', 'status': 'dnd'}, ], }); expect(response.data.map((e) => e.status), ['online', null, 'dnd']); expect(drainDecodeWarnings(), isEmpty); }); test('skips an entry without id instead of failing the search', () { final response = AutocompleteResponse.fromJson({ 'data': [ {'label': 'no id'}, {'id': 'b', 'label': 'B'}, ], }); expect(response.data.single.id, 'b'); expect(drainDecodeWarnings().single, contains('"id"')); }); }