-
-
Notifications
You must be signed in to change notification settings - Fork 560
Expand file tree
/
Copy pathform_builder_stream_test.dart
More file actions
56 lines (48 loc) · 1.58 KB
/
form_builder_stream_test.dart
File metadata and controls
56 lines (48 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import 'package:flutter/material.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
import 'package:flutter_test/flutter_test.dart';
import 'form_builder_tester.dart';
void main() {
group('onChanged --', () {
late GlobalKey<FormBuilderState> formKey;
late FormBuilderTextField emptyTextField;
late FormBuilder form;
setUp(() {
formKey = GlobalKey<FormBuilderState>();
emptyTextField = FormBuilderTextField(
key: const Key('text1'),
name: 'text1',
);
form = FormBuilder(key: formKey, child: emptyTextField);
});
testWidgets('initial', (WidgetTester tester) async {
await tester.pumpWidget(buildTestableFieldWidget(form));
final nextChange = await formKey.currentState!.onChanged.first;
expect(nextChange, contains('text1'));
expect(nextChange['text1']?.value, isNull);
});
testWidgets('on changed', (WidgetTester tester) async {
await tester.runAsync(() async {
await tester.pumpWidget(buildTestableFieldWidget(form));
final widget = find.byWidget(emptyTextField);
expectLater(
formKey.currentState!.onChanged.map(
(fields) =>
fields.entries.map((e) => {e.key: e.value.value}).toList(),
),
emitsInOrder([
[
{'text1': null}
],
[
{'text1': 'foo'}
],
[], // caused by `FormBuilderState.unregisterField`
emitsDone,
]),
);
await tester.enterText(widget, 'foo');
});
});
});
}