pve-eslint/eslint/tests/tools/code-sample-minimizer.js
Thomas Lamprecht 609c276fc2 import 8.3.0 source
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-12-01 13:39:06 +01:00

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
);
});
});