dyp

    1.0.1 • Public • Published

    DYP: asserts for large objects

    Fuzzy deep equal for asserting parts of objects

    One object is a subset of the another

    const dyp = require('dyp');
    
    // ok
    dyp({ foo: 1, bar: 2 }, { foo: 1 });
    
    // throws exception
    dyp({ foo: 1, bar: 2 }, { foo: 1, baz: 9 });

    Checks also nested objects

    // ok
    dyp(
        { foo: { a: 1, b: 2 } },
        { foo: { a: 1 } }
    );
    
    // throws exception
    dyp(
        { foo: { a: 1, b: 2 } },
        { foo: { x: 0 } }
    );

    Arrays should keep the same order and size

    const dyp = require('dyp');
    
    // ok
    dyp({ foo: [1, { bar: 2, baz: 3 }] }, { foo: [1, { bar: 2 }] });
    
    // throws exception
    dyp({ foo: [1, { bar: 2, baz: 3 }] }, { foo: [{ bar: 2 }] });
    
    // throws exception
    dyp({ foo: [1, { bar: 2, baz: 3 }] }, { foo: [1, { baz: 9 }] });

    But you can just look for elements inside the array

    const dyp = require('dyp');
    
    // ok
    dyp({
        foo: [{ foo: 1 }, { bar: 2, sasa: 1 }, { baz: 3 }]
    }, {
        foo: dyp.arrayIncludes({ bar: 2 })
    });
    
    // ok
    dyp({
        foo: [{ foo: 1 }, { bar: 2, sasa: 1 }, { baz: 3 }]
    }, {
        foo: dyp.arrayIncludesEvery([
            { baz: 3 }, { bar: 2 },
        ])
    });
    
    // throws exception
    dyp({
        foo: [{ foo: 1 }, { bar: 2, sasa: 1 }, { baz: 3 }]
    }, {
        foo: dyp.arrayIncludes({ sasalele: 2 })
    });

    Or you can check only the size of the array

    const dyp = require('dyp');
    
    // ok
    dyp({ foo: [1, { bar: 2, baz: 3 }] }, { foo: dyp.arrayOfLength(2) });
    
    // throws exception
    dyp({ foo: [1, { bar: 2, baz: 3 }] }, { foo: dyp.arrayOfLength(3) });

    Full example

    const dyp = require('dyp');
    
    const actual = {
        foo: 1,
        bar: 2,
        nested: {
            sasa: 3,
            lele: 4
        },
        list: [1, 2, 3],
        data: [
            { foo: 1 },
            { bar: 2 },
            { baz: 3 }
        ],
        full: [
            { a: 1, x: 1 },
            { a: 2, x: 2 }
        ]
    };
    
    // ok
    dyp(actual, {
        foo: 1,
        nested: {
            sasa: 3
        },
        list: dyp.arrayOfLength(3),
        data: dyp.arrayIncludesEvery([
            { bar: 2 },
            { baz: 3 }
        ]),
        full: [
            { a: 1 },
            { a: 2 }
        ]
    });

    API

    the assertion function dyp(actual, expected[, message]):void

    utility for specifying an array of fixed length dyp.arrayOfLength(length)

    search for element in array dyp.arrayIncludes(element)

    array contains all provided elements dyp.arrayIncludesEvery(elements)

    utility for specifying an object with fixed number of properties dyp.numberOfKeys(keys)

    Install

    npm i dyp

    DownloadsWeekly Downloads

    14

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    11.1 kB

    Total Files

    6

    Last publish

    Collaborators

    • wingbot.ai