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

feat: flat-rule-tester make sure default config always matches #17585

Merged
merged 5 commits into from Sep 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/rule-tester/flat-rule-tester.js
Expand Up @@ -498,6 +498,7 @@ class FlatRuleTester {
}

const baseConfig = [
{ files: ["**"] }, // Make sure the default config matches for all files
{
plugins: {

Expand Down
78 changes: 78 additions & 0 deletions tests/lib/rule-tester/flat-rule-tester.js
Expand Up @@ -1116,6 +1116,84 @@ describe("FlatRuleTester", () => {
}());
});

it("should allow setting the filename to a non-JavaScript file", () => {
ruleTester.run("", require("../../fixtures/testers/rule-tester/no-test-filename"), {
valid: [
{
code: "var foo = 'bar'",
filename: "somefile.ts"
}
],
invalid: []
});
});

it("should allow setting the filename to a file path without extension", () => {
ruleTester.run("", require("../../fixtures/testers/rule-tester/no-test-filename"), {
valid: [
{
code: "var foo = 'bar'",
filename: "somefile"
},
{
code: "var foo = 'bar'",
filename: "path/to/somefile"
}
],
invalid: []
});
});

it("should allow setting the filename to a file path with extension", () => {
ruleTester.run("", require("../../fixtures/testers/rule-tester/no-test-filename"), {
valid: [
{
code: "var foo = 'bar'",
filename: "path/to/somefile.js"
},
{
code: "var foo = 'bar'",
filename: "src/somefile.ts"
},
{
code: "var foo = 'bar'",
filename: "components/Component.vue"
}
mdjermanovic marked this conversation as resolved.
Show resolved Hide resolved
],
invalid: []
});
});

it("should allow setting the filename to a file path without extension", () => {
ruleTester.run("", require("../../fixtures/testers/rule-tester/no-test-filename"), {
valid: [
{
code: "var foo = 'bar'",
filename: "path/to/somefile"
},
{
code: "var foo = 'bar'",
filename: "src/somefile"
}
],
invalid: []
});
});

it("should keep allowing non-JavaScript files if the default config does not specify files", () => {
FlatRuleTester.setDefaultConfig({ rules: {} });
ruleTester.run("", require("../../fixtures/testers/rule-tester/no-test-filename"), {
valid: [
{
code: "var foo = 'bar'",
filename: "somefile.ts"
}
],
invalid: []
});
FlatRuleTester.resetDefaultConfig();
});

it("should pass-through the options to the rule", () => {
ruleTester.run("no-invalid-args", require("../../fixtures/testers/rule-tester/no-invalid-args"), {
valid: [
Expand Down