Skip to content

Commit 35cf44c

Browse files
ST-DDTmdjermanovic
andauthored
feat: output full actual location in rule tester if different (#19904)
* test: output full location in rule tester * refactor: treat lcoation as atomic unit * refactor: use default assertion message * Update lib/rule-tester/rule-tester.js Co-authored-by: Milos Djermanovic <milos.djermanovic@gmail.com> * test: update expected error message --------- Co-authored-by: Milos Djermanovic <milos.djermanovic@gmail.com>
1 parent 40dbe2a commit 35cf44c

File tree

2 files changed

+25
-27
lines changed

2 files changed

+25
-27
lines changed

lib/rule-tester/rule-tester.js

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,35 +1236,34 @@ class RuleTester {
12361236
);
12371237
}
12381238

1239+
const actualLocation = {};
1240+
const expectedLocation = {};
1241+
12391242
if (hasOwnProperty(error, "line")) {
1240-
assert.strictEqual(
1241-
message.line,
1242-
error.line,
1243-
`Error line should be ${error.line}`,
1244-
);
1243+
actualLocation.line = message.line;
1244+
expectedLocation.line = error.line;
12451245
}
12461246

12471247
if (hasOwnProperty(error, "column")) {
1248-
assert.strictEqual(
1249-
message.column,
1250-
error.column,
1251-
`Error column should be ${error.column}`,
1252-
);
1248+
actualLocation.column = message.column;
1249+
expectedLocation.column = error.column;
12531250
}
12541251

12551252
if (hasOwnProperty(error, "endLine")) {
1256-
assert.strictEqual(
1257-
message.endLine,
1258-
error.endLine,
1259-
`Error endLine should be ${error.endLine}`,
1260-
);
1253+
actualLocation.endLine = message.endLine;
1254+
expectedLocation.endLine = error.endLine;
12611255
}
12621256

12631257
if (hasOwnProperty(error, "endColumn")) {
1264-
assert.strictEqual(
1265-
message.endColumn,
1266-
error.endColumn,
1267-
`Error endColumn should be ${error.endColumn}`,
1258+
actualLocation.endColumn = message.endColumn;
1259+
expectedLocation.endColumn = error.endColumn;
1260+
}
1261+
1262+
if (Object.keys(expectedLocation).length > 0) {
1263+
assert.deepStrictEqual(
1264+
actualLocation,
1265+
expectedLocation,
1266+
"Actual error location does not match expected error location.",
12681267
);
12691268
}
12701269

tests/lib/rule-tester/rule-tester.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,7 +1292,7 @@ describe("RuleTester", () => {
12921292
],
12931293
},
12941294
);
1295-
}, /Error line should be 5/u);
1295+
}, "Actual error location does not match expected error location.");
12961296
});
12971297

12981298
it("should not skip line assertion if line is a falsy value", () => {
@@ -1316,12 +1316,11 @@ describe("RuleTester", () => {
13161316
],
13171317
},
13181318
);
1319-
}, /Error line should be 0/u);
1319+
}, "Actual error location does not match expected error location.");
13201320
});
13211321

13221322
it("should throw an error if invalid code specifies wrong column", () => {
1323-
const wrongColumn = 10,
1324-
expectedErrorMessage = "Error column should be 1";
1323+
const wrongColumn = 10;
13251324

13261325
assert.throws(() => {
13271326
ruleTester.run(
@@ -1342,7 +1341,7 @@ describe("RuleTester", () => {
13421341
],
13431342
},
13441343
);
1345-
}, expectedErrorMessage);
1344+
}, "Actual error location does not match expected error location.");
13461345
});
13471346

13481347
it("should throw error for empty error array", () => {
@@ -1398,7 +1397,7 @@ describe("RuleTester", () => {
13981397
],
13991398
},
14001399
);
1401-
}, /Error column should be 0/u);
1400+
}, "Actual error location does not match expected error location.");
14021401
});
14031402

14041403
it("should throw an error if invalid code specifies wrong endLine", () => {
@@ -1423,7 +1422,7 @@ describe("RuleTester", () => {
14231422
],
14241423
},
14251424
);
1426-
}, "Error endLine should be 10");
1425+
}, "Actual error location does not match expected error location.");
14271426
});
14281427

14291428
it("should throw an error if invalid code specifies wrong endColumn", () => {
@@ -1448,7 +1447,7 @@ describe("RuleTester", () => {
14481447
],
14491448
},
14501449
);
1451-
}, "Error endColumn should be 10");
1450+
}, "Actual error location does not match expected error location.");
14521451
});
14531452

14541453
it("should throw an error if invalid code has the wrong number of errors", () => {

0 commit comments

Comments
 (0)