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/browserify/test/dedupe-deps.js
var browserify = require('../');
var test = require('tap').test;

test('identical content gets deduped and the row gets an implicit dep on the original source', function (t) {
  t.plan(1)

  var rows = [];
  browserify()
    .on('dep', [].push.bind(rows))
    .require(require.resolve('./dup'), { entry: true })
    .bundle(check);

  function check(err, src) {
    if (err) return t.fail(err);
    var deduped = rows.filter(function (x) { return x.dedupeIndex });
    var d = deduped[0];

    t.deepEqual(d.deps, { 'dup': d.dedupeIndex }, "adds implicit dep");
  }
})

test('identical content gets deduped with fullPaths', function (t) {
  t.plan(1)

  var rows = [];
  browserify({fullPaths: true})
    .on('dep', [].push.bind(rows))
    .require(require.resolve('./dup'), { entry: true })
    .bundle(check);

  function check(err, src) {
    if (err) return t.fail(err);
    var deduped = rows.filter(function (x) { return x.dedupe });
    var d = deduped[0];

    t.deepEqual(
        d.source,
        'arguments[4]['+ JSON.stringify(d.dedupe) + '][0]'
        + '.apply(exports,arguments)',
        "dedupes content"
    );
  }
})

test('identical content does not get deduped with dedupe option false', function (t) {
  t.plan(1)

  var rows = [];
  browserify({fullPaths: true, dedupe: false})
    .on('dep', [].push.bind(rows))
    .require(require.resolve('./dup'), { entry: true })
    .bundle(check);

  function check(err, src) {
    if (err) return t.fail(err);
    var deduped = rows.filter(function (x) { return x.dedupe });
    t.equal(deduped.length, 0, 'does not dedupe');
  }
})