beer-forest / beer-forest

2 stars 0 forks source link

[testing] widget_test failure due to CheckboxListTile #12

Open chococigar opened 3 years ago

chococigar commented 3 years ago
~$ flutter test ./test/widget_test
_userform.dart
00:05 +0: See if UserformWidget displays texts
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building TextField(controller:
TextEditingController#0c8fd(TextEditingValue(text: ┤testuser1├, selection: TextSelection(baseOffset:
-1, extentOffset: -1, affinity: TextAffinity.downstream, isDirectional: false), composing:
TextRange(start: -1, end: -1))), enabled: true, decoration: InputDecoration(labelText: "name",
floatingLabelBehavior: FloatingLabelBehavior.auto, border: UnderlineInputBorder(),
alignLabelWithHint: false), dirty, state: _TextFieldState#3c2e4):
No Material widget found.
TextField widgets require a Material widget ancestor.
In material design, most widgets are conceptually "printed" on a sheet of material. In Flutter's
material library, that material is represented by the Material widget. It is the Material widget
that renders ink splashes, for instance. Because of this, many material library widgets require that
there be a Material widget in the tree above them.
To introduce a Material widget, you can either directly include one, or use a widget that contains
Material itself, such as a Card, Dialog, Drawer, or Scaffold.
The specific widget that could not find a Material ancestor was:
  TextField
The ancestors of this widget were:
  ...
  TextFormField
  Column
  _SingleChildViewport
  IgnorePointer-[GlobalKey#f0314]
  Semantics
  ...

The relevant error-causing widget was:
  TextFormField
  file:///Users/$USER/development/flutter_firebase_auth_tutorial/lib/widget/user_form_widget.dart:
86:25

When the exception was thrown, this was the stack:
#0      debugCheckHasMaterial.<anonymous closure> (package:flutter/src/material/debug.dart:27:7)
#1      debugCheckHasMaterial (package:flutter/src/material/debug.dart:48:4)
#2      _TextFieldState.build (package:flutter/src/material/text_field.dart:1116:12)
#3      StatefulElement.build (package:flutter/src/widgets/framework.dart:4691:27)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4574:15)
#5      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#6      Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#7      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5)
#8      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4737:11)
#9      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5)
...     Normal element mounting (9 frames)
#18     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#19     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6221:
36)
#20     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6232:32)
...     Normal element mounting (81 frames)
#101    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#102    Element.updateChild (package:flutter/src/widgets/framework.dart:3360:20)
#103    RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1189:16)
#104    RenderObjectToWidgetElement.update (package:flutter/src/widgets/binding.dart:1167:5)
#105    RenderObjectToWidgetElement.performRebuild (package:flutter/src/widgets/binding.dart:1181:7)
#106    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#107    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2582:33)
#108    AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1106:19)
#109    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:32
8:5)
#110    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#111    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#112    AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding
.dart:973:9)
#115    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#116    AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:960:27)
#117    WidgetTester.pumpWidget.<anonymous closure> (package:flutter_test/src/widget_tester.dart:534:
22)
#120    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#121    WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:531:27)
#122    main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:36:18)
#123    main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:15:55)
#124    testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.d
art:156:29)
<asynchronous suspension>
<asynchronous suspension>
(elided 5 frames from dart:async and package:stack_trace)

════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building TextField(controller:
TextEditingController#9c78c(TextEditingValue(text: ┤testuser1@test.com├, selection:
TextSelection(baseOffset: -1, extentOffset: -1, affinity: TextAffinity.downstream, isDirectional:
false), composing: TextRange(start: -1, end: -1))), enabled: true, decoration:
InputDecoration(labelText: "Email", floatingLabelBehavior: FloatingLabelBehavior.auto, border:
UnderlineInputBorder(), alignLabelWithHint: false), dirty, state: _TextFieldState#817f7):
No Material widget found.
TextField widgets require a Material widget ancestor.
In material design, most widgets are conceptually "printed" on a sheet of material. In Flutter's
material library, that material is represented by the Material widget. It is the Material widget
that renders ink splashes, for instance. Because of this, many material library widgets require that
there be a Material widget in the tree above them.
To introduce a Material widget, you can either directly include one, or use a widget that contains
Material itself, such as a Card, Dialog, Drawer, or Scaffold.
The specific widget that could not find a Material ancestor was:
  TextField
The ancestors of this widget were:
  ...
  TextFormField
  Column
  _SingleChildViewport
  IgnorePointer-[GlobalKey#f0314]
  Semantics
  ...

The relevant error-causing widget was:
  TextFormField
  file:///Users/$USER/development/flutter_firebase_auth_tutorial/lib/widget/user_form_widget.dart:
102:26
When the exception was thrown, this was the stack:
#0      debugCheckHasMaterial.<anonymous closure> (package:flutter/src/material/debug.dart:27:7)
#1      debugCheckHasMaterial (package:flutter/src/material/debug.dart:48:4)
#2      _TextFieldState.build (package:flutter/src/material/text_field.dart:1116:12)
#3      StatefulElement.build (package:flutter/src/widgets/framework.dart:4691:27)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4574:15)
#5      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#6      Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#7      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5)
#8      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4737:11)
#9      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5)
...     Normal element mounting (9 frames)
#18     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#19     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6221:
36)
#20     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6232:32)
...     Normal element mounting (81 frames)
#101    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#102    Element.updateChild (package:flutter/src/widgets/framework.dart:3360:20)
#103    RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1189:16)
#104    RenderObjectToWidgetElement.update (package:flutter/src/widgets/binding.dart:1167:5)
#105    RenderObjectToWidgetElement.performRebuild (package:flutter/src/widgets/binding.dart:1181:7)
#106    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#107    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2582:33)
#108    AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1106:19)
#109    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:32
8:5)
#110    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#111    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#112    AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding
.dart:973:9)
#115    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#116    AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:960:27)
#117    WidgetTester.pumpWidget.<anonymous closure> (package:flutter_test/src/widget_tester.dart:534:
22)
#120    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#121    WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:531:27)
#122    main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:36:18)
#123    main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:15:55)
#124    testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.d
art:156:29)
<asynchronous suspension>
<asynchronous suspension>
(elided 5 frames from dart:async and package:stack_trace)

════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building ListTile(dirty):
No Material widget found.
ListTile widgets require a Material widget ancestor.
In material design, most widgets are conceptually "printed" on a sheet of material. In Flutter's
material library, that material is represented by the Material widget. It is the Material widget
that renders ink splashes, for instance. Because of this, many material library widgets require that
there be a Material widget in the tree above them.
To introduce a Material widget, you can either directly include one, or use a widget that contains
Material itself, such as a Card, Dialog, Drawer, or Scaffold.
The specific widget that could not find a Material ancestor was:
  ListTile
The ancestors of this widget were:
  ...
  ListTileTheme
  Builder
  MergeSemantics
  CheckboxListTile
  Column
  ...

The relevant error-causing widget was:
  CheckboxListTile
  file:///Users/$USER/development/flutter_firebase_auth_tutorial/lib/widget/user_form_widget.dart:
112:32
When the exception was thrown, this was the stack:
#0      debugCheckHasMaterial.<anonymous closure> (package:flutter/src/material/debug.dart:27:7)
#1      debugCheckHasMaterial (package:flutter/src/material/debug.dart:48:4)
#2      ListTile.build (package:flutter/src/material/list_tile.dart:1100:12)
#3      StatelessElement.build (package:flutter/src/widgets/framework.dart:4648:28)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4574:15)
#5      Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5)
#7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5)
...     Normal element mounting (22 frames)
#29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#30     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6221:
36)
#31     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6232:32)
...     Normal element mounting (81 frames)
#112    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#113    Element.updateChild (package:flutter/src/widgets/framework.dart:3360:20)
#114    RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1189:16)
#115    RenderObjectToWidgetElement.update (package:flutter/src/widgets/binding.dart:1167:5)
#116    RenderObjectToWidgetElement.performRebuild (package:flutter/src/widgets/binding.dart:1181:7)
#117    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#118    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2582:33)
#119    AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1106:19)
#120    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:32
8:5)
#121    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#122    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#123    AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding
.dart:973:9)
#126    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#127    AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:960:27)
#128    WidgetTester.pumpWidget.<anonymous closure> (package:flutter_test/src/widget_tester.dart:534:
22)
#131    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#132    WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:531:27)
#133    main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:36:18)
#134    main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:15:55)
#135    testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.d
art:156:29)
<asynchronous suspension>
<asynchronous suspension>
(elided 5 frames from dart:async and package:stack_trace)

════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building ListTile(dirty):
No Material widget found.
ListTile widgets require a Material widget ancestor.
In material design, most widgets are conceptually "printed" on a sheet of material. In Flutter's
material library, that material is represented by the Material widget. It is the Material widget
that renders ink splashes, for instance. Because of this, many material library widgets require that
there be a Material widget in the tree above them.
To introduce a Material widget, you can either directly include one, or use a widget that contains
Material itself, such as a Card, Dialog, Drawer, or Scaffold.
The specific widget that could not find a Material ancestor was:
  ListTile
The ancestors of this widget were:
  ...
  ListTileTheme
  Builder
  MergeSemantics
  CheckboxListTile
  Column
  ...

The relevant error-causing widget was:
  CheckboxListTile
  file:///Users/$USER/development/flutter_firebase_auth_tutorial/lib/widget/user_form_widget.dart:
117:41

When the exception was thrown, this was the stack:
#0      debugCheckHasMaterial.<anonymous closure> (package:flutter/src/material/debug.dart:27:7)
#1      debugCheckHasMaterial (package:flutter/src/material/debug.dart:48:4)
#2      ListTile.build (package:flutter/src/material/list_tile.dart:1100:12)
#3      StatelessElement.build (package:flutter/src/widgets/framework.dart:4648:28)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4574:15)
#5      Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#6      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5)
#7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5)
...     Normal element mounting (22 frames)
#29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#30     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6221:
36)
#31     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6232:32)
...     Normal element mounting (81 frames)
#112    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#113    Element.updateChild (package:flutter/src/widgets/framework.dart:3360:20)
#114    RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1189:16)
#115    RenderObjectToWidgetElement.update (package:flutter/src/widgets/binding.dart:1167:5)
#116    RenderObjectToWidgetElement.performRebuild (package:flutter/src/widgets/binding.dart:1181:7)
#117    Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#118    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2582:33)
#119    AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1106:19)
#120    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:32
8:5)
#121    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#122    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#123    AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding
.dart:973:9)
#126    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#127    AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:960:27)
#128    WidgetTester.pumpWidget.<anonymous closure> (package:flutter_test/src/widget_tester.dart:534:
22)
#131    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#132    WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:531:27)
#133    main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:36:18)
#134    main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:15:55)
#135    testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.d
art:156:29)

<asynchronous suspension>
<asynchronous suspension>
(elided 5 frames from dart:async and package:stack_trace)

════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building ListTile(dirty):
No Material widget found.
ListTile widgets require a Material widget ancestor.
In material design, most widgets are conceptually "printed" on a sheet of material. In Flutter's
material library, that material is represented by the Material widget. It is the Material widget
that renders ink splashes, for instance. Because of this, many material library widgets require that
there be a Material widget in the tree above them.
To introduce a Material widget, you can either directly include one, or use a widget that contains
Material itself, such as a Card, Dialog, Drawer, or Scaffold.
The specific widget that could not find a Material ancestor was:
  ListTile
The ancestors of this widget were:
  ...
  ListTileTheme
  Builder
  MergeSemantics
  CheckboxListTile
  Column
  ...

The relevant error-causing widget was:
  CheckboxListTile
  file:///Users/$USER/development/flutter_firebase_auth_tutorial/lib/widget/user_form_widget.dart:
123:36
hschoi1 commented 3 years ago

Almost all the widgets inside SingleChildScrollView are spitting out the errors...hmm...

https://github.com/beer-forest/beer-forest/blob/2d2db274fc7d6f4e353a0b1d6a8c9958ca9911c6/lib/widget/user_form_widget.dart#L69

chococigar commented 3 years ago

When I change my code in user_form_widget.dart to the following, I get a different error message.

  @override
  Widget build(BuildContext context) {
    Material(
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          buildName(),
          buildEmail(),
          buildPrefEnglish(),
          buildPrefKoreanLiterature(),
          buildPrefMathematics(),
          buildInviter(),
          buildFriendsList(),
          buildFriends(),
          buildButton(),
        ],
      ),
    );
  }
flutter test ./test/widget_
test_userform.dart
00:07 +0: See if UserformWidget displays texts
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building UserFormWidget(dirty, state:
_UserFormWidgetState#e01e2):
A build function returned null.
The offending widget is:
  UserFormWidget
Build functions must never return null.
To return an empty space that causes the building widget to fill available room, return
"Container()". To return an empty space that takes as little room as possible, return
"Container(width: 0.0, height: 0.0)".

The relevant error-causing widget was:
  UserFormWidget
  file:///Users/$USER/development/flutter_firebase_auth_tutorial/test/widget_test_userform.dart:37
:7

When the exception was thrown, this was the stack:
#0      debugWidgetBuilderValue.<anonymous closure> (package:flutter/src/widgets/debug.dart:305:7)
#1      debugWidgetBuilderValue (package:flutter/src/widgets/debug.dart:326:4)
#2      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4579:7)
#3      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4746:11)
#4      Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#5      ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4553:5)
#6      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4737:11)
#7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4548:5)
#8      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3611:14)
#9      Element.updateChild (package:flutter/src/widgets/framework.dart:3360:20)
#10     RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1189:16)
#11     RenderObjectToWidgetElement.update (package:flutter/src/widgets/binding.dart:1167:5)
#12     RenderObjectToWidgetElement.performRebuild (package:flutter/src/widgets/binding.dart:1181:7)
#13     Element.rebuild (package:flutter/src/widgets/framework.dart:4267:5)
#14     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2582:33)
#15     AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1106:19)
#16     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:32
8:5)
#17     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
#18     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
#19     AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding
.dart:973:9)
#22     TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#23     AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:960:27)
#24     WidgetTester.pumpWidget.<anonymous closure> (package:flutter_test/src/widget_tester.dart:534:
22)
#27     TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
#28     WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:531:27)
#29     main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:36:18)
#30     main.<anonymous closure> (file:///Users/$USER/development/flutter_firebase_auth_tutorial/t
est/widget_test_userform.dart:15:55)
#31     testWidgets.<anonymous closure>.<anonymous closure> (package:flutter_test/src/widget_tester.d
art:156:29)
<asynchronous suspension>
<asynchronous suspension>
(elided 5 frames from dart:async and package:stack_trace)

════════════════════════════════════════════════════════════════════════════════════════════════════
00:07 +0 -1: See if UserformWidget displays texts [E]
  Test failed. See exception logs above.
  The test description was: See if UserformWidget displays texts

00:07 +0 -1: Some tests failed.
chococigar commented 3 years ago

I was mostly looking into https://stackoverflow.com/questions/51772910/no-material-widget-found-textfield-widgets-require-a-material-widget-ancestor/51773529

chococigar commented 3 years ago

lol apparently even w/o the test there was an exception in debugger mode, idk if it's only local for me

Happens when I try to change profile prefs

W/Firestore( 5069): (21.7.1) [WriteStream]: (5c14136) Stream closed with status: Status{code=NOT_FOUND, description=No document to update: projects/preference-match/databases/(default)/documents/userprofile/ 75ROFfPFD45DGIyIpU3t, cause=null}.
E/flutter ( 5069): [ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: [cloud_firestore/not-found] Some requested document was not found.
E/flutter ( 5069): #0      MethodChannelDocumentReference.update (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:59:7)
E/flutter ( 5069): <asynchronous suspension>
E/flutter ( 5069): #1      FirebaseApi.updateUser (package:firebase_authentication_tutorial/api/firebase_api_users.dart:61:5)
E/flutter ( 5069): <asynchronous suspension>
E/flutter ( 5069): 
chococigar commented 3 years ago

ok idk why but even when we disable the auto login from home_page.dart it still auto-logins to learnmate@gmail.com

    // TODO(chococigar@), DEVTEST remove after dev testing
    // SignInPage().fakeSignin(context);

https://github.com/beer-forest/beer-forest/blob/db42188bedaf4643bba6eef3b7d67a5c9e279411/lib/page/home_page.dart#L24

hschoi1 commented 3 years ago

maybe this thing called auth state persistence has something to do with that? https://firebase.google.com/docs/auth/web/auth-state-persistence

chococigar commented 3 years ago

Maybe. even when cleaning the build cache, autologin with default account persisted.

~/flutter clean
Cleaning Xcode workspace...                                        18.0s
Deleting build...                                                   3.1s
Deleting .dart_tool...                                              17ms
Deleting .packages...                                               15ms
Deleting Generated.xcconfig...                                       4ms
Deleting flutter_export_environment.sh...                            0ms
Deleting .flutter-plugins-dependencies...                          150ms
Deleting .flutter-plugins...                                       134ms
hschoi1 commented 3 years ago

signin and profile saving worked fine til the last commit https://github.com/beer-forest/beer-forest/commit/a4be8a6a7590882e730e9b72103eea38fea590cd before this merge https://github.com/beer-forest/beer-forest/commit/db42188bedaf4643bba6eef3b7d67a5c9e279411

chococigar commented 3 years ago

Just for reference, reseting to commit 5bb055024ce9ca5d5edba27ff997680cf413878e still autologins.

Not sure if this is due to caching issues or a certain commit from long ago.

hschoi1@ confirmed that auto login is not an issue in b/update_user_model.

hschoi1 commented 3 years ago

ok just in case cache messed things up i "cold booted now" and then ran the app after checking out the "update_user_model" bracnh