mirror of
https://git.proxmox.com/git/pve-eslint
synced 2025-08-14 22:43:25 +00:00
82 lines
2.3 KiB
JavaScript
82 lines
2.3 KiB
JavaScript
"use strict";
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Requirements
|
|
//------------------------------------------------------------------------------
|
|
|
|
const { assert } = require("chai");
|
|
const reduceBadExampleSize = require("../../tools/code-sample-minimizer");
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Tests
|
|
//------------------------------------------------------------------------------
|
|
|
|
describe("reduceBadExampleSize()", () => {
|
|
it("extracts relevant part of deeply nested code", () => {
|
|
const initialCode = `
|
|
if (true) {
|
|
while (false) {
|
|
for (let i = 1; i < 10; i++) {
|
|
let j = foo
|
|
? bar
|
|
: THIS_EXPRESSION_CAUSES_A_BUG
|
|
}
|
|
}
|
|
}
|
|
`;
|
|
|
|
const expectedFinalCode = "THIS_EXPRESSION_CAUSES_A_BUG";
|
|
|
|
assert.strictEqual(
|
|
reduceBadExampleSize({
|
|
sourceText: initialCode,
|
|
predicate: code => code.includes("THIS_EXPRESSION_CAUSES_A_BUG")
|
|
}),
|
|
expectedFinalCode
|
|
);
|
|
});
|
|
|
|
it("removes irrelevant parts of AST nodes with many children", () => {
|
|
const initialCode = `
|
|
foo;
|
|
bar;
|
|
baz;
|
|
let x = [
|
|
1,
|
|
2,
|
|
,
|
|
3,
|
|
THIS_EXPRESSION_CAUSES_A_BUG,
|
|
4
|
|
]
|
|
quux;
|
|
`;
|
|
|
|
const expectedFinalCode = "THIS_EXPRESSION_CAUSES_A_BUG";
|
|
|
|
assert.strictEqual(
|
|
reduceBadExampleSize({
|
|
sourceText: initialCode,
|
|
predicate: code => code.includes("THIS_EXPRESSION_CAUSES_A_BUG")
|
|
}),
|
|
expectedFinalCode
|
|
);
|
|
});
|
|
|
|
it("removes irrelevant comments from the source code", () => {
|
|
const initialCode = `
|
|
var /* aaa */foo = bar;
|
|
`;
|
|
|
|
const expectedFinalCode = "var foo = bar;";
|
|
|
|
assert.strictEqual(
|
|
reduceBadExampleSize({
|
|
sourceText: initialCode,
|
|
predicate: code => code.includes("var") && code.includes("foo = bar")
|
|
}),
|
|
expectedFinalCode
|
|
);
|
|
});
|
|
});
|