Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 33 additions & 21 deletions apps/oxlint/test/rule_tester.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1458,8 +1458,9 @@ describe("RuleTester", () => {
const tester = new RuleTester();
tester.run("no-foo", simpleRule, {
valid: [
// Default is now unambiguous: no ESM syntax -> script -> with is allowed
// Default = unambiguous
"with (obj) {}",
"import x from 'foo';",
{
code: "with (obj) {}",
languageOptions: { sourceType: "script" },
Expand Down Expand Up @@ -1493,6 +1494,7 @@ describe("RuleTester", () => {
null,
null,
null,
null,
[Error: Parsing failed],
[Error: Parsing failed],
null,
Expand Down Expand Up @@ -2600,9 +2602,6 @@ describe("RuleTester", () => {
});

describe("ignoreNonFatalErrors", () => {
// Note: `function f(x, x) {}` is only an error in strict/module mode.
// With unambiguous parsing, we need to explicitly set sourceType: "module"
// to trigger the duplicate parameter error.
it("default (off)", () => {
const tester = new RuleTester({
languageOptions: { sourceType: "module" },
Expand All @@ -2623,12 +2622,13 @@ describe("RuleTester", () => {
it("set globally", () => {
RuleTester.setDefaultConfig({
languageOptions: {
sourceType: "module",
parserOptions: { ignoreNonFatalErrors: false },
},
});

const tester = new RuleTester();
const tester = new RuleTester({
languageOptions: { sourceType: "module" },
});
tester.run("no-foo", simpleRule, {
valid: ["function f(x, x) {}"],
invalid: [],
Expand Down Expand Up @@ -2663,7 +2663,6 @@ describe("RuleTester", () => {
it("set in `RuleTester` options, overriding global setting", () => {
RuleTester.setDefaultConfig({
languageOptions: {
sourceType: "module",
parserOptions: { ignoreNonFatalErrors: true },
},
});
Expand All @@ -2687,13 +2686,14 @@ describe("RuleTester", () => {
});

it("set in individual test cases", () => {
const tester = new RuleTester();
const tester = new RuleTester({
languageOptions: { sourceType: "module" },
});
tester.run("no-foo", simpleRule, {
valid: [
{
code: "function f(x, x) {}",
languageOptions: {
sourceType: "module",
parserOptions: { ignoreNonFatalErrors: false },
},
},
Expand All @@ -2711,18 +2711,18 @@ describe("RuleTester", () => {
it("set in individual test cases, overriding global setting", () => {
RuleTester.setDefaultConfig({
languageOptions: {
sourceType: "module",
parserOptions: { ignoreNonFatalErrors: true },
},
});

const tester = new RuleTester();
const tester = new RuleTester({
languageOptions: { sourceType: "module" },
});
tester.run("no-foo", simpleRule, {
valid: [
{
code: "function f(x, x) {}",
languageOptions: {
sourceType: "module",
parserOptions: { ignoreNonFatalErrors: false },
},
},
Expand All @@ -2749,7 +2749,6 @@ describe("RuleTester", () => {
{
code: "function f(x, x) {}",
languageOptions: {
sourceType: "module",
parserOptions: { ignoreNonFatalErrors: false },
},
},
Expand All @@ -2771,7 +2770,9 @@ describe("RuleTester", () => {
languageOptions: { parserOptions: { ignoreNonFatalErrors: true } },
});

const tester = new RuleTester();
const tester = new RuleTester({
languageOptions: { sourceType: "module" },
});
tester.run("no-foo", simpleRule, {
valid: ["function f(x, x) {}"],
invalid: [],
Expand All @@ -2782,7 +2783,10 @@ describe("RuleTester", () => {

it("set in `RuleTester` options", () => {
const tester = new RuleTester({
languageOptions: { parserOptions: { ignoreNonFatalErrors: true } },
languageOptions: {
sourceType: "module",
parserOptions: { ignoreNonFatalErrors: true },
},
});
tester.run("no-foo", simpleRule, {
valid: ["function f(x, x) {}"],
Expand All @@ -2798,7 +2802,10 @@ describe("RuleTester", () => {
});

const tester = new RuleTester({
languageOptions: { parserOptions: { ignoreNonFatalErrors: true } },
languageOptions: {
sourceType: "module",
parserOptions: { ignoreNonFatalErrors: true },
},
});
tester.run("no-foo", simpleRule, {
valid: ["function f(x, x) {}"],
Expand All @@ -2809,7 +2816,9 @@ describe("RuleTester", () => {
});

it("set in individual test cases", () => {
const tester = new RuleTester();
const tester = new RuleTester({
languageOptions: { sourceType: "module" },
});
tester.run("no-foo", simpleRule, {
valid: [
{
Expand All @@ -2828,7 +2837,9 @@ describe("RuleTester", () => {
languageOptions: { parserOptions: { ignoreNonFatalErrors: false } },
});

const tester = new RuleTester();
const tester = new RuleTester({
languageOptions: { sourceType: "module" },
});
tester.run("no-foo", simpleRule, {
valid: [
{
Expand All @@ -2844,7 +2855,10 @@ describe("RuleTester", () => {

it("set in individual test cases, overriding `RuleTester` options", () => {
const tester = new RuleTester({
languageOptions: { parserOptions: { ignoreNonFatalErrors: false } },
languageOptions: {
sourceType: "module",
parserOptions: { ignoreNonFatalErrors: false },
},
});
tester.run("no-foo", simpleRule, {
valid: [
Expand All @@ -2861,8 +2875,6 @@ describe("RuleTester", () => {
});

it("mixed across test cases", () => {
// Note: duplicate params are only an error in strict/module mode.
// Need to set sourceType: "module" to trigger the error.
const tester = new RuleTester({
languageOptions: { sourceType: "module" },
});
Expand Down
Loading