over_react_test 2.7.1

  • Readme
  • Changelog
  • Installing
  • 75

OverReact Test #

Pub Build Status Test Coverage Documentation

A library for testing OverReact components.

Using it in your project #

  1. Import it into your test files:

     import 'package:over_react_test/over_react_test.dart';
    
  2. Run your tests:

     $ pub run test test/your_test_file.dart
    

Naming Conventions #

Variables and Types #

UsageActual TypeSuggested Referencing
render and render helper functionsReactComponent |Elementinstance
Component classReactClasstype
VDOM Instance (invoked UiProps)ReactElement-ReactElement or not suffixed
findDomNode, queryByTestId, etc.Elementnode
The Dart componentreact.Component (backed by ReactComponent)dartInstance
Invoked UiFactoryUiPropsbuilder

Example:

test('my test' () {
  var sampleBuilder = Sample();
  var sampleReactElement = sampleBuilder(); // Or var sample = sampleBuilder();
  var instance = render(sampleInstance);
  SampleComponent sampleDartInstance = getDartComponent(instance);
  var sampleNode = findDomNode(instance);
});

Test IDs #

When coming up with test ID strings:

  • DO NOT use spaces; space-delimited strings will be treated as separate test IDs

    Just like CSS class names, you can use multiple test IDs together, and use any one of them to target a given component/node.

  • PREFER following our naming scheme for consistency across projects:

    <library>.<Component>[.<subpart>...].<part>

    We recommend including a library abbreviation and component name within a test ID so that it's easy to track down where that ID came from.

    Namespacing (.<subpart>) can be added however it makes sense.

    Finally, test IDs should be descriptive and useful in the context of tests.

    Examples:

    • wsd.DatepickerPrimitive.goToSelectedButton
    • sox.AbstractDataLayoutGroup.headerBlock.title
  • CONSIDER adding multiple IDs to serve different purposes

    for (var i = 0; i < items.length; i++) {
      // ...
        ..addTestId('foo.Bar.menuItem')
        ..addTestId('foo.Bar.menuItem.$i')
        ..addTestId('foo.Bar.menuItem.${items[i].id}')
      // ...
    }
    

    With the output of above code, you can:

    • target all of the Bar component's menu items using foo.Bar.menuItem
    • target the 4th item using foo.Bar.menuItem.3
    • target the item corresponding to an item with id baz123 using foo.Bar.menuItem.baz123

    This won't always be needed, but it comes in handy in certain cases.

Documentation #

You would never skip reading the docs for a new language you are asked to learn, so please don't skip over reading our API documentation either.

Contributing #

Yes please! (Please read our contributor guidelines first)

Versioning #

The over_react_test library adheres to Semantic Versioning:

  • Any API changes that are not backwards compatible will bump the major version (and reset the minor / patch).
  • Any new functionality that is added in a backwards-compatible manner will bump the minor version (and reset the patch).
  • Any backwards-compatible bug fixes that are added will bump the patch version.

OverReact Test Changelog #

2.0.0 #

New Features

  • Dart 2 compatible!

Breaking Changes

  • The getComponentPropKeys() and testPropForwarding() functions have been removed, as they depended on dart:mirrors. Once there is a Dart-2-only release of over_react, this function will be re-added and will rely on information generated by the builder rather than using mirrors.

  • The commonComponentTests() function no longer calls testPropForwarding() since it has been removed. In other words, the shouldTestPropForwarding parameter is effectively a no-op until testPropForwarding() can be re-added.

1.1.1 #

Bugs Fixed

  • Sync common component test src with the lib it originated from.

1.1.0 #

New Features

  • #11: Add some test utilities that were left in over_react when the library was first created.

1.0.1 #

Misc

  • #8: Update prop error message to make it more DDC friendly

1.0.0 #

Initial public release of library.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  over_react_test: ^2.7.1

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:over_react_test/over_react_test.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
70
Health:
Code health derived from static analysis. [more]
91
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
62
Overall:
Weighted score of the above. [more]
75
Learn more about scoring.

We analyzed this package on Dec 13, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.0
  • pana: 0.13.1+4

Health suggestions

Fix lib/src/over_react_test/common_component_util.dart. (-2.96 points)

Analysis of lib/src/over_react_test/common_component_util.dart reported 6 hints, including:

line 393 col 69: 'UiComponent' is deprecated and shouldn't be used. 4.0.0.

line 413 col 36: 'ReactDartComponentFactoryProxy' is deprecated and shouldn't be used. 6.0.0.

line 423 col 17: 'throwsPropError_Required' is deprecated and shouldn't be used. 3.0.0.

line 434 col 15: 'throwsPropError_Required' is deprecated and shouldn't be used. 3.0.0.

line 499 col 11: 'ReactDartComponentFactoryProxy' is deprecated and shouldn't be used. 6.0.0.

Fix lib/src/over_react_test/react_util.dart. (-2.48 points)

Analysis of lib/src/over_react_test/react_util.dart reported 5 hints:

line 152 col 7: 'Component' is deprecated and shouldn't be used. 6.0.0.

line 343 col 21: 'Component' is deprecated and shouldn't be used. 6.0.0.

line 380 col 50: 'Component' is deprecated and shouldn't be used. 6.0.0.

line 484 col 24: 'Component' is deprecated and shouldn't be used. 6.0.0.

line 487 col 7: 'Component' is deprecated and shouldn't be used. 6.0.0.

Fix lib/src/over_react_test/js_component.dart. (-1.49 points)

Analysis of lib/src/over_react_test/js_component.dart reported 3 hints:

line 19 col 68: 'ReactClassConfig' is deprecated and shouldn't be used. 6.0.0.

line 23 col 30: 'createClass' is deprecated and shouldn't be used. 6.0.0.

line 23 col 42: 'ReactClassConfig' is deprecated and shouldn't be used. 6.0.0.

Fix additional 6 files with analysis or formatting issues. (-2.50 points)

Additional issues in the following files:

  • lib/src/over_react_test/jacket.dart (2 hints)
  • lib/src/over_react_test/wrapper_component.dart (2 hints)
  • lib/src/over_react_test/custom_matchers.dart (1 hint)
  • lib/src/over_react_test/console_log_utils.dart (Run dartfmt to format lib/src/over_react_test/console_log_utils.dart.)
  • lib/src/over_react_test/dom_util.dart (Run dartfmt to format lib/src/over_react_test/dom_util.dart.)
  • lib/src/over_react_test/validation_util.dart (Run dartfmt to format lib/src/over_react_test/validation_util.dart.)

Maintenance issues and suggestions

Make sure dartdoc successfully runs on your package's source files. (-10 points)

exitCode: 255 stdout: parsing /tmp/pub-dartlang-dartdocAVCUOA/pkg/lib/jacket.dart... parsing /tmp/pub-dartlang-dartdocAVCUOA/pkg/lib/over_react_test.dart... parsing /dart-sdk/lib/core/core.dart... parsing /dart-sdk/lib/collection/collection.dart... parsing /dart-sdk/lib/internal/internal.dart... parsing /dart-sdk/lib/async/async.dart... parsing /dart-sdk/lib/convert/convert.dart... parsing /dart-sdk/lib/typed_data/typed_data.dart... parsing /dart-sdk/lib/math/math.dart... parsing /tmp/pub-dartlang-dartdocAVCUOA/pkg/lib/src/over_react_test/jacket.dart... parsing /dart-sdk/lib/html/dart2js/html_dart2js.dart... parsing /dart-sdk/lib/html/html_common/html_common_dart2js.dart... parsing /dart-sdk/lib/web_gl/dart2js/web_gl_dart2js.dart... parsing /dart-sdk/lib/_internal/js_runtime/lib/native_typed_data.dart... parsing /dart-sdk/lib/_internal/js_runtime/lib/interceptors.dart... parsing /dart-sdk/lib/_internal/js_runtime/lib/shared/embedded_names.dart... parsing /dart-sdk/lib/_internal/js_runtime/lib/js_helper.dart... parsing /dart-sdk/lib/_internal/js_runtime/lib/foreign_helper.dart... parsing /dart-sdk/lib/_internal/js_runtime/lib/js_names.dart... parsing /dart-sdk/lib/_internal/js_runtime/lib/rti.dart... [...] parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/collection-1.14.12/lib/src/functions.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/collection-1.14.12/lib/src/iterable_zip.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/collection-1.14.12/lib/src/priority_queue.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/collection-1.14.12/lib/src/queue_list.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/collection-1.14.12/lib/src/union_set.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/collection-1.14.12/lib/src/union_set_controller.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/pub_semver-1.4.2/lib/src/patterns.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/pub_semver-1.4.2/lib/src/version_constraint.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/pub_semver-1.4.2/lib/src/utils.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/pub_semver-1.4.2/lib/src/version_range.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/pub_semver-1.4.2/lib/src/version_union.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/platform_detect-1.4.0/lib/src/navigator.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/platform_detect-1.4.0/lib/src/detect.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/platform_detect-1.4.0/lib/src/operating_system.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/platform_detect-1.4.0/lib/src/support.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/over_react-3.1.6/lib/src/component_declaration/component_base_2.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/over_react-3.1.6/lib/src/util/prop_key_util.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/over_react-3.1.6/lib/src/component_declaration/built_redux_component.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/built_redux-7.5.8/lib/built_redux.dart... parsing /tmp/pub-cache-dirJEJMQX/hosted/pub.dartlang.org/built_redux-7.5.8/lib/src/action.dart... stderr: Documenting over_react_test... Unhandled exception: Stack Overflow #0 TypeParameterElementImpl.name (package:analyzer/src/dart/element/element.dart:7524:3) #1 Member.name (package:analyzer/src/dart/element/member.dart:455:35) #2 new TypeParameterTypeImpl (package:analyzer/src/dart/element/type.dart:2122:32) #3 TypeParameterTypeImpl.withNullability (package:analyzer/src/dart/element/type.dart:2226:12) #4 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:708:19) #5 Dart2TypeSystem._isInterfaceSubtypeOf (package:analyzer/src/generated/type_system.dart:1106:14) #6 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:815:14) #7 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:794:11) #8 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #9 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #10 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:748:13) #11 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #12 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #13 Dart2TypeSystem._isInterfaceSubtypeOf (package:analyzer/src/generated/type_system.dart:1106:14) #14 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:815:14) #15 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:794:11) #16 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #17 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #18 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:748:13) #19 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #20 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #21 Dart2TypeSystem._isInterfaceSubtypeOf (package:analyzer/src/generated/type_system.dart:1106:14) #22 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:815:14) #23 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:794:11) #24 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #25 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #26 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:748:13) #27 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #28 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #29 Dart2TypeSystem._isInterfaceSubtypeOf (package:analyzer/src/generated/type_system.dart:1106:14) #30 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:815:14) #31 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:794:11) #32 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #33 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #34 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:748:13) #35 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #36 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #37 Dart2TypeSystem._isInterfaceSubtypeOf (package:analyzer/src/generated/type_system.dart:1106:14) #38 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:815:14) #39 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:794:11) #40 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #41 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #42 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:748:13) #43 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) ... ... #6256 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #6257 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #6258 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:748:13) #6259 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #6260 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #6261 Dart2TypeSystem._isInterfaceSubtypeOf (package:analyzer/src/generated/type_system.dart:1106:14) #6262 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:815:14) #6263 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:794:11) #6264 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:716:14) #6265 Dart2TypeSystem.isSubtypeOf (package:analyzer/src/generated/type_system.dart:709:14) #6266 _OverrideChecker._findCovariantChecksForMember.

The package description is too short. (-18 points)

Add more detail to the description field of pubspec.yaml. Use 60 to 180 characters to describe the package, what it does, and its target use case.

Maintain an example. (-10 points)

Create a short demo in the example/ directory to show how to use this package.

Common filename patterns include main.dart, example.dart, and over_react_test.dart. Packages with multiple examples should provide example/README.md.

For more information see the pub package layout conventions.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.4.0 <3.0.0
js ^0.6.1+1 0.6.1+1
matcher ^0.12.1+4 0.12.6
over_react ^3.1.3 3.1.6
react ^5.2.1 5.2.1
test ^1.9.1 1.9.4
Transitive dependencies
analyzer 0.38.5 0.39.2+1
args 1.5.2
async 2.4.0
boolean_selector 1.0.5
build 1.2.2
built_collection 4.3.0
built_redux 7.5.8
built_value 7.0.0
charcode 1.1.2
cli_repl 0.2.0+1
collection 1.14.12
colorize 2.0.0
convert 2.1.1
coverage 0.13.3+3
crypto 2.1.4
csslib 0.16.1
dart2_constant 1.0.2+dart2
dart_style 1.3.3
fixnum 0.10.11
front_end 0.1.27 0.1.29
glob 1.2.0
html 0.14.0+3
http 0.12.0+2
http_multi_server 2.1.0
http_parser 3.1.3
intl 0.15.8 0.16.0
io 0.3.3
kernel 0.3.27 0.3.29
logging 0.11.3+2
meta 1.1.8
mime 0.9.6+3
multi_server_socket 1.0.2
node_interop 1.0.3
node_io 1.0.1+2
node_preamble 1.4.8
package_config 1.1.0
package_resolver 1.0.10
path 1.6.4
platform_detect 1.4.0
pool 1.4.0
pub_semver 1.4.2
quiver 2.1.2+1
redux 3.0.0 4.0.0
redux_dev_tools 0.4.0 0.5.1
sass 1.23.7
shelf 0.7.5
shelf_packages_handler 1.0.4
shelf_static 0.2.8
shelf_web_socket 0.2.3
source_gen 0.9.4+6
source_map_stack_trace 1.1.5
source_maps 0.10.8
source_span 1.5.5
stack_trace 1.9.3
stream_channel 2.0.0
stream_transform 0.0.20 1.1.0
string_scanner 1.0.5
term_glyph 1.1.0
test_api 0.2.11
test_core 0.2.15
transformer_utils 0.2.3
tuple 1.0.3
typed_data 1.1.6
vm_service 2.1.3
w_common 1.20.1
w_flux 2.10.6
watcher 0.9.7+13
web_socket_channel 1.1.0
yaml 2.2.0
Dev dependencies
build_runner ^1.7.1
build_test ^0.10.9
build_web_compilers ^2.5.1
dart_dev ^2.2.0
dependency_validator ^1.4.0
pedantic ^1.8.0 1.9.0