source.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. var parser = require('../');
  2. var test = require('tap').test;
  3. var fs = require('fs');
  4. var path = require('path');
  5. var files = {
  6. main: path.join(__dirname, '/files/main.js'),
  7. foo: path.join(__dirname, '/files/foo.js'),
  8. bar: path.join(__dirname, '/files/bar.js'),
  9. extra: path.join(__dirname, '/files/extra.js')
  10. };
  11. var sources = {
  12. foo: fs.readFileSync(files.foo, 'utf8'),
  13. bar: fs.readFileSync(files.bar, 'utf8'),
  14. extra: fs.readFileSync(files.extra, 'utf8'),
  15. main: "console.log(require('./foo')(5)); require('./extra.js')"
  16. };
  17. test('source', function (t) {
  18. t.plan(1);
  19. var p = parser();
  20. p.end({
  21. file: files.main,
  22. source: sources.main,
  23. entry: true
  24. });
  25. var rows = [];
  26. p.on('data', function (row) { rows.push(row) });
  27. p.on('end', function () {
  28. t.same(rows.sort(cmp), [
  29. {
  30. id: files.main,
  31. file: files.main,
  32. source: sources.main,
  33. sortKey: '!' + files.main,
  34. entry: true,
  35. deps: { './foo': files.foo, './extra.js': files.extra }
  36. },
  37. {
  38. id: files.foo,
  39. file: files.foo,
  40. source: sources.foo,
  41. sortKey: '!' + files.main + ':00000000!' + files.foo,
  42. deps: { './bar': files.bar }
  43. },
  44. {
  45. id: files.bar,
  46. file: files.bar,
  47. source: sources.bar,
  48. sortKey: '!' + files.main + ':00000000!' + files.foo +
  49. ':00000000!' + files.bar,
  50. deps: {}
  51. },
  52. {
  53. id: files.extra,
  54. file: files.extra,
  55. source: sources.extra,
  56. sortKey: '!' + files.main + ':00000001!' + files.extra,
  57. deps: {}
  58. },
  59. ].sort(cmp));
  60. });
  61. });
  62. function cmp (a, b) { return a.id < b.id ? -1 : 1 }