ajab

1.2.0 • Public • Published

ajab

ajab makes modules' private (not-exported) functions reachable and testable in testing frameworks like jest

installing

install ajab by running npm i ajab --save-dev in terminal

using

If myModule.js contains the following:

module.exports.publicFunction = function (a, b){
    return a + b;
}

function privateFunction(a, b){
    return a * b;
}

const anotherPrivateFunction = (a, b) => {
    return a / b;
}

To test the private functions, in your tests, instead of require, import your module using ajab :

const ajab = required('ajab');
const myModule = ajab('./myModule');

ajab makes your private functions available just like an exported function so you can test them directly:

// in jest:
test("My private function should be testable", () => {
    expect(myModule.privateFunction(2, 4)).toBe(8);
});

module.exports assigned to a function

if module.exports is assigned to a function,

module.exports = function(a, b){ return a + b; }

ajab puts that function in the module.exports.public

// in jest:
test("testing module.exports assigned to a function", () => {
    expect(myModule.public(2, 4)).toBe(6);
});

nested function

ajab also finds functions defined inside the public functions and adds them to module.exports

function publicFunc(){
    const privateFunc = function(){...};
    ...
}

/ajab/

    Package Sidebar

    Install

    npm i ajab

    Weekly Downloads

    0

    Version

    1.2.0

    License

    MIT

    Unpacked Size

    7.76 kB

    Total Files

    4

    Last publish

    Collaborators

    • dorparasti