The Component Test Helper is a package intended to make React Jest testing far more declaritive
npm install component-test-helper> [!IMPORTANT]
> This is technically not my code. Im just maintaining it
>
> Original Author: https://ryanclements.dev
The Component Test Helper is a package intended to make React Jest testing far more declaritive



[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
[![LinkedIn][linkedin-shield]][linkedin-url]
This is a solution to React frontend testing. This package provides a class, ComponentTestHelper, to be used in Jest React frontend testing use cases. This class allows
the developer to abstract a lot of the tedious, duplicated, testing that often occurs
when attempting to test the frontend, into reusable functions contained within the bounds of a given components "test helper".
To get the package included in your project, follow these steps
using npm:
``bash`
npm i --save-dev component-test-helper
Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.
`typescript`
import ComponentTestHelper from 'component-test-helper'
`typescript
// with a builder
const inputField = new ComponentTestHelper(builder =>
builder.byTestId('inputFieldContainer')
)
// with a custom ComponentTestHelper - builder only necessary if a custructor wasn't supplied
const inputField = new InputFieldTestHelper(builder =>
builder.byTestId('inputFieldContainer')
)
// custom with supplied constructor
const inputField = new InputFieldTestHelper()
`
`typescript
export class InputFieldTestHelper extends ComponentTestHelper {
// define child components to test
readonly input = new ComponentTestHelper(builder =>
builder.byTestId('inputField')
)
// create constructor if you want to hard code the selector for the builder
constructor() {
super(builder => builder.byTestId('inputFieldContainer'))
}
// define methods for acting and expecting on components
async expectToHaveValue(value: string | number | null): Promise
expect(await this.input.get()).toHaveValue(value)
}
}
`
_Check out the examples folder for more details_
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
1. Fork the Project
2. Create your Feature Branch (git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature'
3. Commit your Changes ()git push origin feature/AmazingFeature
4. Push to the Branch ()
5. Open a Pull Request
Distributed under the MIT License. See LICENSE.txt` for more information.
Me - @Triston08227721 - triston95strong@gmail.com
Project Link: https://github.com/Tarmstrong95/component-test-helper
[contributors-shield]: https://img.shields.io/github/contributors/Tarmstrong95/component-test-helper.svg?style=for-the-badge
[contributors-url]: https://github.com/Tarmstrong95/component-test-helper/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/Tarmstrong95/component-test-helper.svg?style=for-the-badge
[forks-url]: https://github.com/Tarmstrong95/component-test-helper/network/members
[stars-shield]: https://img.shields.io/github/stars/Tarmstrong95/component-test-helper.svg?style=for-the-badge
[stars-url]: https://github.com/Tarmstrong95/component-test-helper/stargazers
[issues-shield]: https://img.shields.io/github/issues/Tarmstrong95/component-test-helper.svg?style=for-the-badge
[issues-url]: https://github.com/Tarmstrong95/component-test-helper/issues
[license-shield]: https://img.shields.io/github/license/Tarmstrong95/component-test-helper.svg?style=for-the-badge
[license-url]: https://github.com/Tarmstrong95/component-test-helper/blob/main/LICENSE
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/triston95strong