Skip to content

Conversation

@michaelfaith
Copy link
Contributor

@michaelfaith michaelfaith commented Feb 16, 2025

Contributing to #32240, this change creates a suite of e2e test fixtures for the eslint react hooks plugin, one for each major version of eslint from 6-9 (latest).

Each fixture has an index.js with examples of valid code and invalid code (an assortment pulled from the unit tests). For the invalid code, I've used inline disables so that lint runs cleanly. But we're running lint with the --report-unused-disable-directives option, which will error out if those disables are in there but the plugin isn't correct reporting an error. So this covers both positive cases and negative cases.

For each fixture, there's a build script to build the plugin from the root, and a lint script to run lint on that fixture.

This change creates a suite of e2e test fixtures for the eslint react hooks plugin, one for each major version of eslint from 6-9 (latest).

Each fixture has an `index.js` with examples of valid code and invalid code (an assortment pulled from the unit tests).  For the invalid code, I've used inline disables so that lint runs cleaning.  But we're running lint with the `--report-unused-disable-directives`, which will error out if those disables are in there but the plugin isn't correct reporting an error.  So this covers both positive cases and negative cases.

For each fixture, there's a `build` script to build the plugin from the root, and a `lint` to run lint on that fixture.
@michaelfaith michaelfaith marked this pull request as ready for review February 16, 2025 18:09
@poteto poteto merged commit 037b25c into facebook:main Feb 16, 2025
193 of 194 checks passed
poteto added a commit that referenced this pull request Feb 16, 2025
…pe declarations (#32240)

<!--
  Thanks for submitting a pull request!
We appreciate you spending the time to work on these changes. Please
provide enough information so that others can review your pull request.
The three fields below are mandatory.

Before submitting a pull request, please make sure the following is
done:

1. Fork [the repository](https://github.com/facebook/react) and create
your branch from `main`.
  2. Run `yarn` in the repository root.
3. If you've fixed a bug or added code that should be tested, add tests!
4. Ensure the test suite passes (`yarn test`). Tip: `yarn test --watch
TestName` is helpful in development.
5. Run `yarn test --prod` to test in the production environment. It
supports the same options as `yarn test`.
6. If you need a debugger, run `yarn test --debug --watch TestName`,
open `chrome://inspect`, and press "Inspect".
7. Format your code with
[prettier](https://github.com/prettier/prettier) (`yarn prettier`).
8. Make sure your code lints (`yarn lint`). Tip: `yarn linc` to only
check changed files.
  9. Run the [Flow](https://flowtype.org/) type checks (`yarn flow`).
  10. If you haven't already, complete the CLA.

Learn more about contributing:
https://reactjs.org/docs/how-to-contribute.html
-->

## Summary

This change converts the eslint hooks plugin to typescript, which also
allows us to include type declarations in the package, for those using
[typescript eslint
configs](https://eslint.org/blog/2025/01/eslint-v9.18.0-released/#stable-typescript-configuration-file-support).

### Constituent changes that should land before this one

- [x] ~#32276
- [x] #32279
- [x] #32283
- [x] #32393
- [x] #32396

Closes #30119

---------

Co-authored-by: Lauren Tan <[email protected]>
github-actions bot pushed a commit that referenced this pull request Feb 16, 2025
…pe declarations (#32240)

<!--
  Thanks for submitting a pull request!
We appreciate you spending the time to work on these changes. Please
provide enough information so that others can review your pull request.
The three fields below are mandatory.

Before submitting a pull request, please make sure the following is
done:

1. Fork [the repository](https://github.com/facebook/react) and create
your branch from `main`.
  2. Run `yarn` in the repository root.
3. If you've fixed a bug or added code that should be tested, add tests!
4. Ensure the test suite passes (`yarn test`). Tip: `yarn test --watch
TestName` is helpful in development.
5. Run `yarn test --prod` to test in the production environment. It
supports the same options as `yarn test`.
6. If you need a debugger, run `yarn test --debug --watch TestName`,
open `chrome://inspect`, and press "Inspect".
7. Format your code with
[prettier](https://github.com/prettier/prettier) (`yarn prettier`).
8. Make sure your code lints (`yarn lint`). Tip: `yarn linc` to only
check changed files.
  9. Run the [Flow](https://flowtype.org/) type checks (`yarn flow`).
  10. If you haven't already, complete the CLA.

Learn more about contributing:
https://reactjs.org/docs/how-to-contribute.html
-->

## Summary

This change converts the eslint hooks plugin to typescript, which also
allows us to include type declarations in the package, for those using
[typescript eslint
configs](https://eslint.org/blog/2025/01/eslint-v9.18.0-released/#stable-typescript-configuration-file-support).

### Constituent changes that should land before this one

- [x] ~#32276
- [x] #32279
- [x] #32283
- [x] #32393
- [x] #32396

Closes #30119

---------

Co-authored-by: Lauren Tan <[email protected]>

DiffTrain build for [5adf402](5adf402)
@michaelfaith michaelfaith deleted the test/eslint-plugin-e2e-fixutres branch February 16, 2025 19:20
michaelfaith added a commit to michaelfaith/react that referenced this pull request Feb 16, 2025
This change adds a workflow for PR builds, that runs the e2e tests for `eslint-plugin-react-hooks` created in facebook#32396
michaelfaith added a commit to michaelfaith/react that referenced this pull request Feb 16, 2025
This change adds a workflow for PR builds, that runs the e2e tests for `eslint-plugin-react-hooks` created in facebook#32396
michaelfaith added a commit to michaelfaith/react that referenced this pull request Feb 16, 2025
This change adds a workflow for PR builds, that runs the e2e tests for `eslint-plugin-react-hooks` created in facebook#32396
michaelfaith added a commit to michaelfaith/react that referenced this pull request Feb 16, 2025
This change adds a workflow for PR builds, that runs the e2e tests for `eslint-plugin-react-hooks` created in facebook#32396
michaelfaith added a commit to michaelfaith/react that referenced this pull request Feb 16, 2025
This change adds a workflow for PR builds, that runs the e2e tests for `eslint-plugin-react-hooks` created in facebook#32396
michaelfaith added a commit to michaelfaith/react that referenced this pull request Feb 16, 2025
This change adds a workflow for PR builds, that runs the e2e tests for `eslint-plugin-react-hooks` created in facebook#32396
michaelfaith added a commit to michaelfaith/react that referenced this pull request Feb 16, 2025
This change adds a workflow for PR builds, that runs the e2e tests for `eslint-plugin-react-hooks` created in facebook#32396
michaelfaith added a commit to michaelfaith/react that referenced this pull request Feb 16, 2025
This change adds a workflow for PR builds, that runs the e2e tests for `eslint-plugin-react-hooks` created in facebook#32396
poteto pushed a commit that referenced this pull request Feb 16, 2025
This change adds a workflow for PR builds, that runs the e2e tests for
`eslint-plugin-react-hooks` created in #32396

![screenshot of ci tests
running](https://github.com/user-attachments/assets/307a878c-92b5-44cf-84f2-3b21979b262a)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants