Tests failed

❌ fixtures/external/flutter/provider-test-results.json

269 tests were completed in 0ms with 268 passed, 1 failed and 0 skipped. |Test suite|Passed|Failed|Skipped|Time| |:---|---:|---:|---:|---:| |test/builder_test.dart|24✔️|||402ms| |test/change_notifier_provider_test.dart|10✔️|||306ms| |test/consumer_test.dart|18✔️|||340ms| |test/context_test.dart|31✔️|||698ms| |test/future_provider_test.dart|10✔️|||305ms| |test/inherited_provider_test.dart|81✔️|||1s| |test/listenable_provider_test.dart|16✔️|||353ms| |test/listenable_proxy_provider_test.dart|12✔️|||373ms| |test/multi_provider_test.dart|3✔️|||198ms| |test/provider_test.dart|11✔️|||306ms| |test/proxy_provider_test.dart|16✔️|||438ms| |test/reassemble_test.dart|3✔️|||221ms| |test/selector_test.dart|17✔️|||364ms| |test/stateful_provider_test.dart|4✔️|||254ms| |test/stream_provider_test.dart|8✔️|||282ms| |test/value_listenable_provider_test.dart|4✔️|1❌||327ms|

✔️ test/builder_test.dart

ChangeNotifierProvider
  ✔️ default
  ✔️ .value
ListenableProvider
  ✔️ default
  ✔️ .value
Provider
  ✔️ default
  ✔️ .value
ProxyProvider
  ✔️ 0
  ✔️ 1
  ✔️ 2
  ✔️ 3
  ✔️ 4
  ✔️ 5
  ✔️ 6
MultiProvider
  ✔️ with 1 ChangeNotifierProvider default
  ✔️ with 2 ChangeNotifierProvider default
  ✔️ with ListenableProvider default
  ✔️ with Provider default
  ✔️ with ProxyProvider0
  ✔️ with ProxyProvider1
  ✔️ with ProxyProvider2
  ✔️ with ProxyProvider3
  ✔️ with ProxyProvider4
  ✔️ with ProxyProvider5
  ✔️ with ProxyProvider6

✔️ test/change_notifier_provider_test.dart

✔️ Use builder property, not child
ChangeNotifierProvider
  ✔️ value
  ✔️ builder
  ✔️ builder1
  ✔️ builder2
  ✔️ builder3
  ✔️ builder4
  ✔️ builder5
  ✔️ builder6
  ✔️ builder0

✔️ test/consumer_test.dart

consumer
  ✔️ obtains value from Provider<T>
  ✔️ crashed with no builder
  ✔️ can be used inside MultiProvider
consumer2
  ✔️ obtains value from Provider<T>
  ✔️ crashed with no builder
  ✔️ can be used inside MultiProvider
consumer3
  ✔️ obtains value from Provider<T>
  ✔️ crashed with no builder
  ✔️ can be used inside MultiProvider
consumer4
  ✔️ obtains value from Provider<T>
  ✔️ crashed with no builder
  ✔️ can be used inside MultiProvider
consumer5
  ✔️ obtains value from Provider<T>
  ✔️ crashed with no builder
  ✔️ can be used inside MultiProvider
consumer6
  ✔️ obtains value from Provider<T>
  ✔️ crashed with no builder
  ✔️ can be used inside MultiProvider

✔️ test/context_test.dart

✔️ watch in layoutbuilder
✔️ select in layoutbuilder
✔️ cannot select in listView
✔️ watch in listView
✔️ watch in gridView
✔️ clears select dependencies for all dependents
BuildContext
  ✔️ internal selected value is updated
  ✔️ create can use read without being lazy
  ✔️ watch can be used inside InheritedProvider.update
  ✔️ select doesn't fail if it loads a provider that depends on other providers
  ✔️ don't call old selectors if the child rebuilds individually
  ✔️ selects throws inside click handlers
  ✔️ select throws if try to read dynamic
  ✔️ select throws ProviderNotFoundException
  ✔️ select throws if watch called inside the callback from build
  ✔️ select throws if read called inside the callback from build
  ✔️ select throws if select called inside the callback from build
  ✔️ select throws if read called inside the callback on dependency change
  ✔️ select throws if watch called inside the callback on dependency change
  ✔️ select throws if select called inside the callback on dependency change
  ✔️ can call read inside didChangeDependencies
  ✔️ select cannot be called inside didChangeDependencies
  ✔️ select in initState throws
  ✔️ watch in initState throws
  ✔️ read in initState works
  ✔️ consumer can be removed and selector stops to be called
  ✔️ context.select deeply compares maps
  ✔️ context.select deeply compares lists
  ✔️ context.select deeply compares iterables
  ✔️ context.select deeply compares sets
  ✔️ context.watch listens to value changes

✔️ test/future_provider_test.dart

✔️ works with MultiProvider
✔️ (catchError) previous future completes after transition is no-op
✔️ previous future completes after transition is no-op
✔️ transition from future to future preserve state
✔️ throws if future has error and catchError is missing
✔️ calls catchError if present and future has error
✔️ works with null
✔️ create and dispose future with builder
✔️ FutureProvider() crashes if builder is null
FutureProvider()
  ✔️ crashes if builder is null

✔️ test/inherited_provider_test.dart

✔️ regression test #377
✔️ rebuild on dependency flags update
✔️ properly update debug flags if a create triggers another deferred create
✔️ properly update debug flags if a create triggers another deferred create
✔️ properly update debug flags if an update triggers another create/update
✔️ properly update debug flags if a create triggers another create/update
✔️ Provider.of(listen: false) outside of build works when it loads a provider
✔️ new value is available in didChangeDependencies
✔️ builder receives the current value and updates independently from `update`
✔️ builder can _not_ rebuild when provider updates
✔️ builder rebuilds if provider is recreated
✔️ provider.of throws if listen:true outside of the widget tree
✔️ InheritedProvider throws if no child is provided with default constructor
✔️ InheritedProvider throws if no child is provided with value constructor
✔️ DeferredInheritedProvider throws if no child is provided with default constructor
✔️ DeferredInheritedProvider throws if no child is provided with value constructor
✔️ startListening markNeedsNotifyDependents
✔️ InheritedProvider can be subclassed
✔️ DeferredInheritedProvider can be subclassed
✔️ can be used with MultiProvider
✔️ throw if the widget ctor changes
✔️ InheritedProvider lazy loading can be disabled
✔️ InheritedProvider.value lazy loading can be disabled
✔️ InheritedProvider subclass don't have to specify default lazy value
✔️ DeferredInheritedProvider lazy loading can be disabled
✔️ DeferredInheritedProvider.value lazy loading can be disabled
✔️ selector
✔️ can select multiple types from same provider
✔️ can select same type on two different providers
✔️ can select same type twice on same provider
✔️ Provider.of has a proper error message if context is null
diagnostics
  ✔️ InheritedProvider.value
  ✔️ InheritedProvider doesn't break lazy loading
  ✔️ InheritedProvider show if listening
  ✔️ DeferredInheritedProvider.value
  ✔️ DeferredInheritedProvider
InheritedProvider.value()
  ✔️ markNeedsNotifyDependents during startListening is noop
  ✔️ startListening called again when create returns new value
  ✔️ startListening
  ✔️ stopListening not called twice if rebuild doesn't have listeners
  ✔️ removeListener cannot be null
  ✔️ pass down current value
  ✔️ default updateShouldNotify
  ✔️ custom updateShouldNotify
InheritedProvider()
  ✔️ hasValue
  ✔️ provider calls update if rebuilding only due to didChangeDependencies
  ✔️ provider notifying dependents doesn't call update
  ✔️ update can call Provider.of with listen:true
  ✔️ update lazy loaded can call Provider.of with listen:true
  ✔️ markNeedsNotifyDependents during startListening is noop
  ✔️ update can obtain parent of the same type than self
  ✔️ _debugCheckInvalidValueType
  ✔️ startListening
  ✔️ startListening called again when create returns new value
  ✔️ stopListening not called twice if rebuild doesn't have listeners
  ✔️ removeListener cannot be null
  ✔️ fails if initialValueBuilder calls inheritFromElement/inheritFromWiggetOfExactType
  ✔️ builder is called on every rebuild and after a dependency change
  ✔️ builder with no updateShouldNotify use ==
  ✔️ builder calls updateShouldNotify callback
  ✔️ initialValue is transmitted to valueBuilder
  ✔️ calls builder again if dependencies change
  ✔️ exposes initialValue if valueBuilder is null
  ✔️ call dispose on unmount
  ✔️ builder unmount, dispose not called if value never read
  ✔️ call dispose after new value
  ✔️ valueBuilder works without initialBuilder
  ✔️ calls initialValueBuilder lazily once
  ✔️ throws if both builder and initialBuilder are missing
DeferredInheritedProvider.value()
  ✔️ hasValue
  ✔️ startListening
  ✔️ stopListening cannot be null
  ✔️ startListening doesn't need setState if already initialized
  ✔️ setState without updateShouldNotify
  ✔️ setState with updateShouldNotify
  ✔️ startListening never leave the widget uninitialized
  ✔️ startListening called again on controller change
DeferredInheritedProvider()
  ✔️ create can't call inherited widgets
  ✔️ creates the value lazily
  ✔️ dispose
  ✔️ dispose no-op if never built

✔️ test/listenable_provider_test.dart

ListenableProvider
  ✔️ works with MultiProvider
  ✔️ asserts that the created notifier can have listeners
  ✔️ don't listen again if listenable instance doesn't change
  ✔️ works with null (default)
  ✔️ works with null (create)
  ✔️ stateful create called once
  ✔️ dispose called on unmount
  ✔️ dispose can be null
  ✔️ changing listenable rebuilds descendants
  ✔️ rebuilding with the same provider don't rebuilds descendants
  ✔️ notifylistener rebuilds descendants
ListenableProvider value constructor
  ✔️ pass down key
  ✔️ changing the Listenable instance rebuilds dependents
ListenableProvider stateful constructor
  ✔️ called with context
  ✔️ pass down key
  ✔️ throws if create is null

✔️ test/listenable_proxy_provider_test.dart

ListenableProxyProvider
  ✔️ throws if update is missing
  ✔️ asserts that the created notifier has no listener
  ✔️ asserts that the created notifier has no listener after rebuild
  ✔️ rebuilds dependendents when listeners are called
  ✔️ update returning a new Listenable disposes the previously created value and update dependents
  ✔️ disposes of created value
ListenableProxyProvider variants
  ✔️ ListenableProxyProvider
  ✔️ ListenableProxyProvider2
  ✔️ ListenableProxyProvider3
  ✔️ ListenableProxyProvider4
  ✔️ ListenableProxyProvider5
  ✔️ ListenableProxyProvider6

✔️ test/multi_provider_test.dart

MultiProvider
  ✔️ throw if providers is null
  ✔️ MultiProvider children can only access parent providers
  ✔️ MultiProvider.providers with ignored child

✔️ test/provider_test.dart

✔️ works with MultiProvider
Provider.of
  ✔️ throws if T is dynamic
  ✔️ listen defaults to true when building widgets
  ✔️ listen defaults to false outside of the widget tree
  ✔️ listen:false doesn't trigger rebuild
  ✔️ listen:true outside of the widget tree throws
Provider
  ✔️ throws if the provided value is a Listenable/Stream
  ✔️ debugCheckInvalidValueType can be disabled
  ✔️ simple usage
  ✔️ throws an error if no provider found
  ✔️ update should notify

✔️ test/proxy_provider_test.dart

ProxyProvider
  ✔️ throws if the provided value is a Listenable/Stream
  ✔️ debugCheckInvalidValueType can be disabled
  ✔️ create creates initial value
  ✔️ consume another providers
  ✔️ rebuild descendants if value change
  ✔️ call dispose when unmounted with the latest result
  ✔️ don't rebuild descendants if value doesn't change
  ✔️ pass down updateShouldNotify
  ✔️ works with MultiProvider
  ✔️ update callback can trigger descendants setState synchronously
  ✔️ throws if update is null
ProxyProvider variants
  ✔️ ProxyProvider2
  ✔️ ProxyProvider3
  ✔️ ProxyProvider4
  ✔️ ProxyProvider5
  ✔️ ProxyProvider6

✔️ test/reassemble_test.dart

✔️ ReassembleHandler
✔️ unevaluated create
✔️ unevaluated create

✔️ test/selector_test.dart

✔️ asserts that builder/selector are not null
✔️ Deep compare maps by default
✔️ Deep compare iterables by default
✔️ Deep compare sets by default
✔️ Deep compare lists by default
✔️ custom shouldRebuid
✔️ passes `child` and `key`
✔️ calls builder if the callback changes
✔️ works with MultiProvider
✔️ don't call builder again if it rebuilds but selector returns the same thing
✔️ call builder again if it rebuilds abd selector returns the a different variable
✔️ Selector
✔️ Selector2
✔️ Selector3
✔️ Selector4
✔️ Selector5
✔️ Selector6

✔️ test/stateful_provider_test.dart

✔️ asserts
✔️ works with MultiProvider
✔️ calls create only once
✔️ dispose

✔️ test/stream_provider_test.dart

✔️ works with MultiProvider
✔️ transition from stream to stream preserve state
✔️ throws if stream has error and catchError is missing
✔️ calls catchError if present and stream has error
✔️ works with null
✔️ StreamProvider() crashes if builder is null
StreamProvider()
  ✔️ create and dispose stream with builder
  ✔️ crashes if builder is null

❌ test/value_listenable_provider_test.dart

valueListenableProvider
  ✔️ rebuilds when value change
  ✔️ don't rebuild dependents by default
  ✔️ pass keys
  ✔️ don't listen again if stream instance doesn't change
  ❌ pass updateShouldNotify
	The following TestFailure object was thrown running a test:
	  Expected: <2>
	  Actual: <1>
	Unexpected number of calls