dedupe-deps-of-deps.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. var sort = require('../');
  2. var test = require('tap').test;
  3. var through = require('through2');
  4. test('dedupe-deps-of-deps', function (t) {
  5. t.plan(1);
  6. var s = sort({ dedupe: true });
  7. var rows = [];
  8. function write (row, enc, next) { rows.push(row); next() }
  9. function end () {
  10. t.deepEqual(rows, [
  11. {
  12. id: '/bar.js',
  13. deps: { baz: '/bar/baz.js' },
  14. source: 'TWO'
  15. },
  16. {
  17. id: '/bar/baz.js',
  18. deps: {},
  19. source: 'THREE'
  20. },
  21. {
  22. id: '/foo.js',
  23. deps: { baz: '/foo/baz.js' },
  24. source: 'TWO',
  25. dedupe: '/bar.js',
  26. sameDeps: true
  27. },
  28. {
  29. id: '/foo/baz.js',
  30. deps: {},
  31. source: 'THREE',
  32. dedupe: '/bar/baz.js',
  33. sameDeps: true
  34. },
  35. {
  36. id: '/main.js',
  37. deps: { './foo': '/foo.js', './bar': '/bar.js' },
  38. source: 'ONE'
  39. }
  40. ]);
  41. }
  42. s.pipe(through.obj(write, end));
  43. s.write({
  44. id: '/main.js',
  45. deps: { './foo': '/foo.js', './bar': '/bar.js' },
  46. source: 'ONE'
  47. });
  48. s.write({
  49. id: '/foo.js',
  50. deps: { baz : '/foo/baz.js' },
  51. source: 'TWO'
  52. });
  53. s.write({
  54. id: '/bar.js',
  55. deps: { baz : '/bar/baz.js' },
  56. source: 'TWO'
  57. });
  58. s.write({
  59. id: '/foo/baz.js',
  60. deps: {},
  61. source: 'THREE'
  62. });
  63. s.write({
  64. id: '/bar/baz.js',
  65. deps: {},
  66. source: 'THREE'
  67. });
  68. s.end();
  69. });