find-parent-dir.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. 'use strict';
  2. /*jshint asi: true */
  3. var test = require('tap').test
  4. var path = require('path')
  5. var fs = require('fs')
  6. var findParentDir = require('..')
  7. test('finding .git root relative to the test dir', function (t) {
  8. findParentDir(__dirname, '.git', function (err, dir) {
  9. t.equals(dir, path.resolve(__dirname, '..') + '/')
  10. t.end()
  11. });
  12. })
  13. test('finding this dir relative to the test dir', function (t) {
  14. findParentDir(__dirname, 'find-parent-dir.js', function (err, dir) {
  15. t.equals(dir, path.resolve(__dirname))
  16. t.end()
  17. });
  18. })
  19. test('sync finding .git root relative to the test dir', function (t) {
  20. var dir = findParentDir.sync(__dirname, '.git')
  21. t.equals(dir, path.resolve(__dirname, '..') + '/')
  22. t.end()
  23. })
  24. test('sync finding this dir relative to the test dir', function (t) {
  25. var dir = findParentDir.sync(__dirname, 'find-parent-dir.js')
  26. t.equals(dir, path.resolve(__dirname))
  27. t.end()
  28. })
  29. test('find no dir when file is in the test dir', function(t) {
  30. var filepath = path.join(__dirname, 'shazam.txt')
  31. fs.writeFileSync(filepath, 'shaq attack')
  32. findParentDir('/etc', 'shazam.txt', function (err, dir) {
  33. fs.unlinkSync(filepath)
  34. t.equals(err, null)
  35. t.equals(dir, null)
  36. t.end()
  37. })
  38. })