Initial commit
This commit is contained in:
291
node_modules/inspect-parameters-declaration/test/main.test.js
generated
vendored
Normal file
291
node_modules/inspect-parameters-declaration/test/main.test.js
generated
vendored
Normal file
@@ -0,0 +1,291 @@
|
||||
'use strict';
|
||||
|
||||
const assert = require('assert');
|
||||
const { inspectParameters, getParametersNames } = require('../');
|
||||
|
||||
const { testsParametersNames, testsInspectParameters } = getTestData();
|
||||
|
||||
describe('getParametersNames', function() {
|
||||
const tests = testsParametersNames;
|
||||
|
||||
Object.keys(tests).forEach(key => {
|
||||
describe(`${key}`, function() {
|
||||
it(`Must match the expected parameters name`, function() {
|
||||
const allParametersNames = getParametersNames(tests[key].input);
|
||||
assert.deepEqual(allParametersNames, tests[key].expectedResult);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('inspectParameters', function() {
|
||||
const tests = testsInspectParameters;
|
||||
|
||||
Object.keys(tests).forEach(key => {
|
||||
describe(`${key}`, function() {
|
||||
it(`Must match the expected result`, function() {
|
||||
const allParametersNames = inspectParameters(tests[key].input);
|
||||
assert.deepEqual(allParametersNames, tests[key].expectedResult);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
function getTestData() {
|
||||
const testsParametersNames = {
|
||||
arrowWithoutParenthesis: {
|
||||
input: param => console.log(param),
|
||||
expectedResult: ['param']
|
||||
},
|
||||
|
||||
arrowWithParenthesis: {
|
||||
input: (param) => console.log(param),
|
||||
expectedResult: ['param']
|
||||
},
|
||||
|
||||
arrowWithParenthesisWithoutParameters: {
|
||||
input: () => {},
|
||||
expectedResult: []
|
||||
},
|
||||
|
||||
arrowWithParenthesisAndDefaultValues: {
|
||||
input: (param = 'defaultParam', param2 = 'defaultParam') => console.log(param),
|
||||
expectedResult: ['param', 'param2']
|
||||
},
|
||||
|
||||
simpleFunction: {
|
||||
input: function fn(z, k) {},
|
||||
expectedResult: ['z', 'k']
|
||||
},
|
||||
|
||||
simpleFunctionWithoutParameters: {
|
||||
input: function fn() {},
|
||||
expectedResult: []
|
||||
},
|
||||
|
||||
functionExpectingDestructuring: {
|
||||
input: function fn({ a } = {}, b, [d, e, z = "ZZ"] = [1, 2]) {},
|
||||
expectedResult: ['a', 'b', 'd', 'e', 'z']
|
||||
},
|
||||
|
||||
staticMethodFromClass: {
|
||||
input: (() => {
|
||||
class fn {
|
||||
static staticMethod(b, l, a = 'A') {
|
||||
console.log(`bla bla`);
|
||||
}
|
||||
}
|
||||
return fn.staticMethod;
|
||||
})(),
|
||||
expectedResult: ['b', 'l', 'a']
|
||||
},
|
||||
|
||||
complexNonSenseFunction: {
|
||||
input: (option, a = 2,
|
||||
b = { c: 1 }, arr = ([]), arr2 = [1, 2, 3], e = {
|
||||
a: {
|
||||
b: 3,
|
||||
d: ([{}])
|
||||
}
|
||||
}, z) => (a = 2, b = { c: 1 }, arr = [], d = function(z) {}, e = {
|
||||
a: {
|
||||
b: 3,
|
||||
d: x => x
|
||||
}
|
||||
}, fn = d => s, fn2 = d => {
|
||||
return s
|
||||
}),
|
||||
expectedResult: ['option', 'a', 'b', 'arr', 'arr2', 'e', 'z']
|
||||
}
|
||||
};
|
||||
|
||||
const testsInspectParameters = {
|
||||
stringMultipleParametersDeclaration: {
|
||||
input: `[p1 = 1,[p2 = 'P2DEF',[p3]]]=[], [a,b], { z, k, zk: {zz} }={}, zkzkz = 111, [zk,zzk,zzzk],iowu`,
|
||||
expectedResult: [{
|
||||
"parameter": "[p1 = 1,[p2 = 'P2DEF',[p3]]]",
|
||||
"defaultValue": "[]",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "[p1 = 1,[p2 = 'P2DEF',[p3]]]=[]",
|
||||
"destructuredParameters": [{
|
||||
"parameter": "p1",
|
||||
"defaultValue": "1",
|
||||
"declaration": "p1 = 1"
|
||||
}, {
|
||||
"parameter": "p2",
|
||||
"defaultValue": "P2DEF",
|
||||
"declaration": "p2 = 'P2DEF'"
|
||||
}, {
|
||||
"parameter": "p3",
|
||||
"declaration": "p3"
|
||||
}]
|
||||
}, {
|
||||
"parameter": "[a,b]",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "[a,b]",
|
||||
"destructuredParameters": [{
|
||||
"parameter": "a",
|
||||
"declaration": "a"
|
||||
}, {
|
||||
"parameter": "b",
|
||||
"declaration": "b"
|
||||
}]
|
||||
}, {
|
||||
"parameter": "{ z, k, zk: {zz} }",
|
||||
"defaultValue": "{}",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "{ z, k, zk: {zz} }={}",
|
||||
"destructuredParameters": [{
|
||||
"parameter": "z",
|
||||
"declaration": "z"
|
||||
}, {
|
||||
"parameter": "k",
|
||||
"declaration": "k"
|
||||
}, {
|
||||
"parameter": "zz",
|
||||
"declaration": "zz"
|
||||
}]
|
||||
}, {
|
||||
"parameter": "zkzkz",
|
||||
"defaultValue": "111",
|
||||
"declaration": "zkzkz = 111"
|
||||
}, {
|
||||
"parameter": "[zk,zzk,zzzk]",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "[zk,zzk,zzzk]",
|
||||
"destructuredParameters": [{
|
||||
"parameter": "zk",
|
||||
"declaration": "zk"
|
||||
}, {
|
||||
"parameter": "zzk",
|
||||
"declaration": "zzk"
|
||||
}, {
|
||||
"parameter": "zzzk",
|
||||
"declaration": "zzzk"
|
||||
}]
|
||||
}, {
|
||||
"parameter": "iowu",
|
||||
"declaration": "iowu"
|
||||
}]
|
||||
},
|
||||
|
||||
functionMultipleParametersDeclaration: {
|
||||
input: ([p1 = 1,[p2 = 'P2DEF',[p3]]]=[], [a,b], { z, k, zk: {zz} }={}, zkzkz = 111, [zk,zzk,zzzk],iowu) => {},
|
||||
expectedResult: [{
|
||||
"parameter": "[p1 = 1,[p2 = 'P2DEF',[p3]]]",
|
||||
"defaultValue": "[]",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "[p1 = 1,[p2 = 'P2DEF',[p3]]]=[]",
|
||||
"destructuredParameters": [{
|
||||
"parameter": "p1",
|
||||
"defaultValue": "1",
|
||||
"declaration": "p1 = 1"
|
||||
}, {
|
||||
"parameter": "p2",
|
||||
"defaultValue": "P2DEF",
|
||||
"declaration": "p2 = 'P2DEF'"
|
||||
}, {
|
||||
"parameter": "p3",
|
||||
"declaration": "p3"
|
||||
}]
|
||||
}, {
|
||||
"parameter": "[a,b]",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "[a,b]",
|
||||
"destructuredParameters": [{
|
||||
"parameter": "a",
|
||||
"declaration": "a"
|
||||
}, {
|
||||
"parameter": "b",
|
||||
"declaration": "b"
|
||||
}]
|
||||
}, {
|
||||
"parameter": "{ z, k, zk: {zz} }",
|
||||
"defaultValue": "{}",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "{ z, k, zk: {zz} }={}",
|
||||
"destructuredParameters": [{
|
||||
"parameter": "z",
|
||||
"declaration": "z"
|
||||
}, {
|
||||
"parameter": "k",
|
||||
"declaration": "k"
|
||||
}, {
|
||||
"parameter": "zz",
|
||||
"declaration": "zz"
|
||||
}]
|
||||
}, {
|
||||
"parameter": "zkzkz",
|
||||
"defaultValue": "111",
|
||||
"declaration": "zkzkz = 111"
|
||||
}, {
|
||||
"parameter": "[zk,zzk,zzzk]",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "[zk,zzk,zzzk]",
|
||||
"destructuredParameters": [{
|
||||
"parameter": "zk",
|
||||
"declaration": "zk"
|
||||
}, {
|
||||
"parameter": "zzk",
|
||||
"declaration": "zzk"
|
||||
}, {
|
||||
"parameter": "zzzk",
|
||||
"declaration": "zzzk"
|
||||
}]
|
||||
}, {
|
||||
"parameter": "iowu",
|
||||
"declaration": "iowu"
|
||||
}]
|
||||
},
|
||||
|
||||
stringParameterDeclaration: {
|
||||
input: `[p1,[p2 = '',[p3]]]=[]`,
|
||||
expectedResult: [{
|
||||
"parameter": "[p1,[p2 = '',[p3]]]",
|
||||
"defaultValue": "[]",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "[p1,[p2 = '',[p3]]]=[]",
|
||||
"destructuredParameters": [
|
||||
{
|
||||
"parameter": "p1",
|
||||
"declaration": "p1"
|
||||
},
|
||||
{
|
||||
"parameter": "p2",
|
||||
"declaration": "p2 = ''"
|
||||
},
|
||||
{
|
||||
"parameter": "p3",
|
||||
"declaration": "p3"
|
||||
}
|
||||
]
|
||||
}]
|
||||
},
|
||||
|
||||
functionParameterDeclaration: {
|
||||
input: function ([p1,[p2 = '',[p3]]]=[]) { return; },
|
||||
expectedResult: [{
|
||||
"parameter": "[p1,[p2 = '',[p3]]]",
|
||||
"defaultValue": "[]",
|
||||
"expectsDestructuring": true,
|
||||
"declaration": "[p1,[p2 = '',[p3]]]=[]",
|
||||
"destructuredParameters": [
|
||||
{
|
||||
"parameter": "p1",
|
||||
"declaration": "p1"
|
||||
},
|
||||
{
|
||||
"parameter": "p2",
|
||||
"declaration": "p2 = ''"
|
||||
},
|
||||
{
|
||||
"parameter": "p3",
|
||||
"declaration": "p3"
|
||||
}
|
||||
]
|
||||
}]
|
||||
}
|
||||
};
|
||||
|
||||
return { testsParametersNames, testsInspectParameters };
|
||||
}
|
||||
Reference in New Issue
Block a user