]> git.proxmox.com Git - pve-eslint.git/blob - eslint/tests/tools/code-sample-minimizer.js
first commit
[pve-eslint.git] / eslint / tests / tools / code-sample-minimizer.js
1 "use strict";
2
3 const { assert } = require("chai");
4 const reduceBadExampleSize = require("../../tools/code-sample-minimizer");
5
6 describe("reduceBadExampleSize()", () => {
7 it("extracts relevant part of deeply nested code", () => {
8 const initialCode = `
9 if (true) {
10 while (false) {
11 for (let i = 1; i < 10; i++) {
12 let j = foo
13 ? bar
14 : THIS_EXPRESSION_CAUSES_A_BUG
15 }
16 }
17 }
18 `;
19
20 const expectedFinalCode = "THIS_EXPRESSION_CAUSES_A_BUG";
21
22 assert.strictEqual(
23 reduceBadExampleSize({
24 sourceText: initialCode,
25 predicate: code => code.includes("THIS_EXPRESSION_CAUSES_A_BUG")
26 }),
27 expectedFinalCode
28 );
29 });
30
31 it("removes irrelevant parts of AST nodes with many children", () => {
32 const initialCode = `
33 foo;
34 bar;
35 baz;
36 let x = [
37 1,
38 2,
39 ,
40 3,
41 THIS_EXPRESSION_CAUSES_A_BUG,
42 4
43 ]
44 quux;
45 `;
46
47 const expectedFinalCode = "THIS_EXPRESSION_CAUSES_A_BUG";
48
49 assert.strictEqual(
50 reduceBadExampleSize({
51 sourceText: initialCode,
52 predicate: code => code.includes("THIS_EXPRESSION_CAUSES_A_BUG")
53 }),
54 expectedFinalCode
55 );
56 });
57
58 it("removes irrelevant comments from the source code", () => {
59 const initialCode = `
60 var /* aaa */foo = bar;
61 `;
62
63 const expectedFinalCode = "var foo = bar;";
64
65 assert.strictEqual(
66 reduceBadExampleSize({
67 sourceText: initialCode,
68 predicate: code => code.includes("var") && code.includes("foo = bar")
69 }),
70 expectedFinalCode
71 );
72 });
73 });