test-reporter/__tests__/__outputs__/provider-test-results.md
2022-11-13 13:19:47 +01:00

14 KiB

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