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

test: Add FlatESLint tests with missing config files #17164

Merged
merged 2 commits into from May 29, 2023
Merged

Conversation

mdjermanovic
Copy link
Member

Prerequisites checklist

What is the purpose of this pull request? (put an "X" next to an item)

[ ] Documentation update
[ ] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[x] Other, please explain:

While reviewing #17142, I noticed we didn't have tests where eslint.config.js is missing. In particular, a test that would confirm that FlatESLint lint methods should throw if a config file was not found.

What changes did you make? (Give an overview)

Added a few tests for FlatESLint#lintText() and FlatESLint#lintFiles().

Is there anything you'd like reviewers to focus on?

@mdjermanovic mdjermanovic added accepted There is consensus among the team that this change meets the criteria for inclusion chore This change is not user-facing labels May 8, 2023
@mdjermanovic mdjermanovic requested a review from a team as a code owner May 8, 2023 09:43
@netlify
Copy link

netlify bot commented May 8, 2023

Deploy Preview for docs-eslint ready!

Name Link
🔨 Latest commit 1b2058d
🔍 Latest deploy log https://app.netlify.com/sites/docs-eslint/deploys/645cbc959b7b950008481c63
😎 Deploy Preview https://deploy-preview-17164--docs-eslint.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

Copy link
Member

@nzakas nzakas left a comment

Choose a reason for hiding this comment

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

The tests look good. Just left a couple suggestions.

cwd: getFixturePath(""),
overrideConfigFile: "does-not-exist.js"
});
await assert.rejects(() => eslint.lintText("var foo = 'bar';"));
Copy link
Member

Choose a reason for hiding this comment

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

Should we add the message check here too?

Suggested change
await assert.rejects(() => eslint.lintText("var foo = 'bar';"));
await assert.rejects(() => eslint.lintText("var foo = 'bar';"), /Could not find config file/u);

Copy link
Member Author

Choose a reason for hiding this comment

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

This is a system error thrown by fs.stat():

Error: ENOENT: no such file or directory, stat 'path/to/temp/eslint/fixtures/does-not-exist.js'.

I wanted to avoid checking error messages that we don't generate.

Perhaps /ENOENT/u?

Copy link
Member

Choose a reason for hiding this comment

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

Maybe {code: "ENOENT"}? Looks more accurate to me. We can even add a checker function that asserts the code and uses a regex on the message property. (docs: https://nodejs.org/api/assert.html#assertrejectsasyncfn-error-message)

Copy link
Member

Choose a reason for hiding this comment

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

I think anything that checks the expected error message is fine. I just want to make sure we are getting the error we're expecting. I'm agnostic as to the approach.

Copy link
Member Author

Choose a reason for hiding this comment

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

Added { code: "ENOENT" }, thanks for the suggestion!

cwd: getFixturePath(),
overrideConfigFile: "does-not-exist.js"
});
await assert.rejects(() => eslint.lintFiles("undef*.js"));
Copy link
Member

Choose a reason for hiding this comment

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

Same, do we want to check the message?

Suggested change
await assert.rejects(() => eslint.lintFiles("undef*.js"));
await assert.rejects(() => eslint.lintFiles("undef*.js"), /Could not find config file/u);

Copy link
Member

Choose a reason for hiding this comment

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

I concur. We should check the error code and message when viable as any error can mask actual errors code (working or test).

Copy link
Member Author

Choose a reason for hiding this comment

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

Added { code: "ENOENT" }

Copy link
Member

@BYK BYK left a comment

Choose a reason for hiding this comment

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

LGTM but will leave approving to @nzakas for this as I'm not sure if he wanted an explicit check on the message (and not just the code)

Copy link
Member

@aladdin-add aladdin-add left a comment

Choose a reason for hiding this comment

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

LGTM.

@github-actions
Copy link

Hi everyone, it looks like we lost track of this pull request. Please review and see what the next steps are. This pull request will auto-close in 7 days without an update.

@github-actions github-actions bot added the Stale label May 22, 2023
@Rec0iL99 Rec0iL99 removed the Stale label May 22, 2023
@Rec0iL99
Copy link
Member

Not stale. All reviews have been resolved. Waiting for @nzakas's final review.

Copy link
Member

@nzakas nzakas left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks

@nzakas nzakas merged commit f67d298 into main May 29, 2023
22 checks passed
@nzakas nzakas deleted the test-noconfigfile branch May 29, 2023 18:48
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Jun 8, 2023
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`8.41.0` -> `8.42.0`](https://renovatebot.com/diffs/npm/eslint/8.41.0/8.42.0) |

---

### Release Notes

<details>
<summary>eslint/eslint</summary>

### [`v8.42.0`](https://github.com/eslint/eslint/releases/tag/v8.42.0)

[Compare Source](eslint/eslint@v8.41.0...v8.42.0)

#### Features

-   [`b8448ff`](eslint/eslint@b8448ff) feat: correct no-useless-return behaviour in try statements ([#&#8203;16996](eslint/eslint#16996)) (Nitin Kumar)

#### Bug Fixes

-   [`a589636`](eslint/eslint@a589636) fix: Config with `ignores` and without `files` should not always apply ([#&#8203;17181](eslint/eslint#17181)) (Milos Djermanovic)
-   [`c4fad17`](eslint/eslint@c4fad17) fix: Correct ignore message for "node_modules" subfolders ([#&#8203;17217](eslint/eslint#17217)) (Francesco Trotta)

#### Documentation

-   [`01d7142`](eslint/eslint@01d7142) docs: Update README (GitHub Actions Bot)
-   [`e5182b7`](eslint/eslint@e5182b7) docs: Update README (GitHub Actions Bot)

#### Chores

-   [`6ca5b7c`](eslint/eslint@6ca5b7c) chore: upgrade [@&#8203;eslint/js](https://github.com/eslint/js)[@&#8203;8](https://github.com/8).42.0 ([#&#8203;17236](eslint/eslint#17236)) (Milos Djermanovic)
-   [`67fc5e7`](eslint/eslint@67fc5e7) chore: package.json update for [@&#8203;eslint/js](https://github.com/eslint/js) release (ESLint Jenkins)
-   [`0892412`](eslint/eslint@0892412) refactor: remove `Identifier` listener in no-irregular-whitespace ([#&#8203;17235](eslint/eslint#17235)) (Milos Djermanovic)
-   [`f67d298`](eslint/eslint@f67d298) test: Add `FlatESLint` tests with missing config files ([#&#8203;17164](eslint/eslint#17164)) (Milos Djermanovic)
-   [`5b68d51`](eslint/eslint@5b68d51) chore: Fix `fixedsize` attribute in code path analysis DOT debug output ([#&#8203;17202](eslint/eslint#17202)) (Milos Djermanovic)
-   [`37432f2`](eslint/eslint@37432f2) chore: update descriptions in key-spacing tests ([#&#8203;17195](eslint/eslint#17195)) (Milos Djermanovic)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTMuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMy4wIiwidGFyZ2V0QnJhbmNoIjoiZGV2ZWxvcCJ9-->

Co-authored-by: cabr2-bot <cabr2.help@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1923
Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org>
Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
@eslint-github-bot eslint-github-bot bot locked and limited conversation to collaborators Nov 26, 2023
@eslint-github-bot eslint-github-bot bot added the archived due to age This issue has been archived; please open a new issue for any further discussion label Nov 26, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
accepted There is consensus among the team that this change meets the criteria for inclusion archived due to age This issue has been archived; please open a new issue for any further discussion chore This change is not user-facing
Projects
Status: Complete
Development

Successfully merging this pull request may close these issues.

None yet

5 participants