Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: 37 automated testing #58

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions example/integration_test/questionnaire_item_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import 'package:faiadashu_example/main.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';

void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();

testWidgets('check every questionnaire type is available', (tester) async {
await tester.pumpWidget(const MyApp());

expect(find.text('SDC Demo Scroller'), findsOneWidget);

final item = find.byKey(const Key('SDC Demo Scroller'));
await tester.tap(item);
await tester.pumpAndSettle();

expect(find.text('SDC Demo Survey'), findsOneWidget);

final questions = find.byKey(const Key('questionnaire-response-item'));
expect(questions.evaluate().length, 5); // 28

final displayFind = find.text('We hope this will only take you a minute!');
expect(displayFind, findsOneWidget);

final textFind = find.text('Enter your First Name');
expect(textFind, findsOneWidget);
final stringFiller = find.byKey(const Key('string-answer-filler'));
expect(
tester.firstWidget(stringFiller).key,
const Key('string-answer-filler'),
);
await tester.enterText(stringFiller.first, 'Test');
final textFormField =
stringFiller.first.evaluate().single.widget as TextFormField;
expect(textFormField.controller!.text, 'Test');
await tester.pumpAndSettle();
});
}
1 change: 1 addition & 0 deletions example/lib/questionnaire_launch_tile.dart
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ class _QuestionnaireLaunchTileState extends State<QuestionnaireLaunchTile> {
@override
Widget build(BuildContext context) {
return ListTile(
key: Key(widget.title),
title: Text(widget.title),
subtitle: FutureBuilder<QuestionnaireResponseModel>(
future: _modelFuture,
Expand Down
190 changes: 177 additions & 13 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,18 @@ packages:
dependency: transitive
description:
name: async
sha256: "271b8899fc99f9df4f4ed419fa14e2fff392c7b2c162fbb87b222e2e963ddc73"
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
version: "2.9.0"
version: "2.11.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
characters:
dependency: transitive
description:
Expand Down Expand Up @@ -49,6 +57,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.17.1"
cross_file:
dependency: transitive
description:
name: cross_file
sha256: "445db18de832dba8d851e287aff8ccf169bed30d2e94243cb54c7d2f1ed2142c"
url: "https://pub.dev"
source: hosted
version: "0.3.3+6"
crypto:
dependency: transitive
description:
Expand All @@ -71,6 +87,14 @@ packages:
relative: true
source: path
version: "0.8.0"
fake_async:
dependency: transitive
description:
name: fake_async
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
ffi:
dependency: transitive
description:
Expand Down Expand Up @@ -127,16 +151,98 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.1.4"
file_selector:
dependency: transitive
description:
name: file_selector
sha256: "1d2fde93dddf634a9c3c0faa748169d7ac0d83757135555707e52f02c017ad4f"
url: "https://pub.dev"
source: hosted
version: "0.9.5"
file_selector_android:
dependency: transitive
description:
name: file_selector_android
sha256: d41e165d6f798ca941d536e5dc93494d50e78c571c28ad60cfe0b0fefeb9f1e7
url: "https://pub.dev"
source: hosted
version: "0.5.0+3"
file_selector_ios:
dependency: transitive
description:
name: file_selector_ios
sha256: b3fbdda64aa2e335df6e111f6b0f1bb968402ed81d2dd1fa4274267999aa32c2
url: "https://pub.dev"
source: hosted
version: "0.5.1+6"
file_selector_linux:
dependency: transitive
description:
name: file_selector_linux
sha256: "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492"
url: "https://pub.dev"
source: hosted
version: "0.9.2+1"
file_selector_macos:
dependency: transitive
description:
name: file_selector_macos
sha256: b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6
url: "https://pub.dev"
source: hosted
version: "0.9.3+3"
file_selector_platform_interface:
dependency: transitive
description:
name: file_selector_platform_interface
sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262"
url: "https://pub.dev"
source: hosted
version: "2.6.1"
file_selector_web:
dependency: transitive
description:
name: file_selector_web
sha256: dc6622c4d66cb1bee623ddcc029036603c6cc45c85e4a775bb06008d61c809c1
url: "https://pub.dev"
source: hosted
version: "0.9.2+1"
file_selector_windows:
dependency: transitive
description:
name: file_selector_windows
sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0
url: "https://pub.dev"
source: hosted
version: "0.9.3+1"
filesize:
dependency: transitive
description:
name: filesize
sha256: f53df1f27ff60e466eefcd9df239e02d4722d5e2debee92a87dfd99ac66de2af
url: "https://pub.dev"
source: hosted
version: "2.0.1"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_driver:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_localizations:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
flutter_web_auth:
dependency: transitive
description:
Expand All @@ -158,6 +264,11 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.3"
fuchsia_remote_debug_protocol:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
google_fonts:
dependency: "direct main"
description:
Expand Down Expand Up @@ -230,6 +341,11 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.0.1"
integration_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
intl:
dependency: "direct main"
description:
Expand Down Expand Up @@ -282,10 +398,10 @@ packages:
dependency: transitive
description:
name: matcher
sha256: "2e2c34e631f93410daa3ee3410250eadc77ac6befc02a040eda8a123f34e6f5a"
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted
version: "0.12.11"
version: "0.12.15"
material_color_utilities:
dependency: transitive
description:
Expand All @@ -302,6 +418,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.9.1"
mime:
dependency: transitive
description:
name: mime
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
url: "https://pub.dev"
source: hosted
version: "1.0.4"
oauth2:
dependency: transitive
description:
Expand Down Expand Up @@ -439,34 +563,58 @@ packages:
dependency: transitive
description:
name: source_span
sha256: e3320978e3715725e62f04358fd249c1efe5999297b2c6acd626a817593281b0
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.9.0"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
name: stack_trace
sha256: f8d9f247e2f9f90e32d1495ff32dac7e4ae34ffa7194c5ff8fcc0fd0e52df774
sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.11.0"
stream_channel:
dependency: transitive
description:
name: stream_channel
sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
string_scanner:
dependency: transitive
description:
name: string_scanner
sha256: "862015c5db1f3f3c4ea3b94dc2490363a84262994b88902315ed74be1155612f"
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
version: "1.2.0"
sync_http:
dependency: transitive
description:
name: sync_http
sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961"
url: "https://pub.dev"
source: hosted
version: "0.3.1"
term_glyph:
dependency: transitive
description:
name: term_glyph
sha256: a88162591b02c1f3a3db3af8ce1ea2b374bd75a7bb8d5e353bcfbdc79d719830
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
url: "https://pub.dev"
source: hosted
version: "1.2.0"
version: "1.2.1"
test_api:
dependency: transitive
description:
name: test_api
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted
version: "0.5.1"
typed_data:
dependency: transitive
description:
Expand Down Expand Up @@ -555,6 +703,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
vm_service:
dependency: transitive
description:
name: vm_service
sha256: f6deed8ed625c52864792459709183da231ebf66ff0cf09e69b573227c377efe
url: "https://pub.dev"
source: hosted
version: "11.3.0"
webdriver:
dependency: transitive
description:
name: webdriver
sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49"
url: "https://pub.dev"
source: hosted
version: "3.0.2"
webview_flutter:
dependency: transitive
description:
Expand Down Expand Up @@ -629,4 +793,4 @@ packages:
version: "3.1.1"
sdks:
dart: ">=3.0.0-0 <4.0.0"
flutter: ">=3.0.0"
flutter: ">=3.7.0"
4 changes: 4 additions & 0 deletions example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,10 @@ dependencies:
simple_html_css: ^3.0.1+1

dev_dependencies:
flutter_test:
sdk: flutter
integration_test:
sdk: flutter
lint: ^1.8.2


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ class _StringAnswerInputControl extends AnswerInputControl<StringAnswerModel> {
}[answerModel.keyboard]!;

return TextFormField(
key: const Key('string-answer-filler'),
focusNode: focusNode,
enabled: answerModel.isControlEnabled,
keyboardType: keyboardType,
Expand Down
1 change: 1 addition & 0 deletions lib/questionnaires/view/src/questionnaire_theme.dart
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@ class QuestionnaireThemeData {
Widget? questionSkipperWidget,
}) {
return Column(
key: const Key('questionnaire-response-item'),
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expand Down