HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/buyercall/node_modules/deps-sort/test/dedupe-deps-of-deps.js
var sort = require('../');
var test = require('tap').test;
var through = require('through2');

test('dedupe-deps-of-deps', function (t) {
    t.plan(1);
    var s = sort({ dedupe: true });
    var rows = [];
    function write (row, enc, next) { rows.push(row); next() }
    function end () {
        t.deepEqual(rows, [
            {
                id: '/bar.js',
                deps: { baz: '/bar/baz.js' },
                source: 'TWO'
            },
            {
                id: '/bar/baz.js',
                deps: {},
                source: 'THREE'
            },
            {
                id: '/foo.js',
                deps: { baz: '/foo/baz.js' },
                source: 'TWO',
                dedupe: '/bar.js',
                sameDeps: true
            },
            {
                id: '/foo/baz.js',
                deps: {},
                source: 'THREE',
                dedupe: '/bar/baz.js',
                sameDeps: true
            },
            {
                id: '/main.js',
                deps: { './foo': '/foo.js', './bar': '/bar.js' },
                source: 'ONE'
            }
        ]);
    }
    s.pipe(through.obj(write, end));
    
    s.write({
        id: '/main.js',
        deps: { './foo': '/foo.js', './bar': '/bar.js' },
        source: 'ONE'
    });
    s.write({
        id: '/foo.js',
        deps: { baz : '/foo/baz.js' },
        source: 'TWO'
    });
    s.write({
        id: '/bar.js',
        deps: { baz : '/bar/baz.js' },
        source: 'TWO'
    });
    s.write({
        id: '/foo/baz.js',
        deps: {},
        source: 'THREE'
    });
    s.write({
        id: '/bar/baz.js',
        deps: {},
        source: 'THREE'
    });
    s.end();
});