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

Adding a CONTRIBUTING file with a strategy for implementing tests #774

Merged
merged 2 commits into from
Dec 1, 2023

Conversation

VictorCLLucas
Copy link
Contributor

Changes

Introduction of a CONTRIBUTING.md file to IPG-Automotive/react-ui where the definition of which test framework will be used to perform tests on components

Author checklist before assigning a reviewer

  • Reviewed my own code-diff.
  • Branch has been run in docker.
  • PR assigned to me or an appropriate delegate.
  • Relevant labels added to the PR.
  • Appropriate tests have been added.
  • Lint and test workflows pass.

@VictorCLLucas VictorCLLucas added the documentation Improvements or additions to documentation label Nov 28, 2023
@VictorCLLucas VictorCLLucas self-assigned this Nov 28, 2023

Playwright tests should be added when you need to test the functionality of your application in a real browser environment. These tests are essential for assessing your application in an actual browser setting. They are ideal for scenarios involving user interactions, DOM testing, and other browser-dependent functionalities. Playwright is particularly effective for end-to-end testing, ensuring the user's overall experience with the application is as intended.

On the other hand, Jest tests are more suitable for unit testing JavaScript or TypeScript code. These tests focus on evaluating individual functions or components in isolation, bypassing the need for a browser. Jest tests are generally quicker and more concentrated, perfect for examining the internal logic of your application's code.
Copy link
Contributor

@mattcorner mattcorner Nov 29, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should maybe expand on this a bit more with some examples. As a UI component library it kind of reads like everything should be a playwright test unless its a plain javascript utility function, but its more subtle than that.

Some examples of valid Jest tests that I can think of:

  • Testing react hooks that do not interact with the dom. e.g. useVehicleSelection
  • Testing components with no / little user interactivity e.g. Copyright
  • Testing component styling e.g. ColorModeToggle

Listing some examples here will hopefully paint a better picture for developers when deciding which testing framework to use. We should include some good playwright case example too. e.g.

Some strong cases for Playwright tests that I can think of:

  • Testing interactions that rely on browser dom functionality such as clientWidth. e.g. TextOverflowTooltip which is untestable in jest.
  • Testing component workflows that rely on a lot of user inteaction e.g. VehicleSelect

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great suggestion that did not occur to us. Thanks Matt. I'll add it in.

@VictorCLLucas VictorCLLucas merged commit b1558a8 into main Dec 1, 2023
3 checks passed
@VictorCLLucas VictorCLLucas deleted the documentation/defining-contributing-file branch December 1, 2023 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants