var path = require('path'); var Q = require('q'); var fs = require('fs'); var expect = require('expect.js'); var helpers = require('../helpers'); var createLink = require('../../lib/util/createLink'); describe('createLink', function() { var srcDir = new helpers.TempDir({ someFile: 'Hello World', someDirectory: { otherFile: 'Hello World' } }); var dstDir = new helpers.TempDir(); beforeEach(function() { srcDir.prepare(); dstDir.prepare(); }); it('creates a symlink to a file', function() { var src = path.join(srcDir.path, 'someFile'), dst = path.join(dstDir.path, 'someFile'); return createLink(src, dst).then(function() { return Q.nfcall(fs.readlink, dst).then(function(linkString) { expect(linkString).to.be.equal(src); }); }); }); it('throws an error when destination already exists', function() { var src = path.join(srcDir.path, 'someFile'), dst = path.join(dstDir.path); var deferred = Q.defer(); createLink(src, dst) .catch(function(err) { expect(err.code).to.be.equal('EEXIST'); deferred.resolve(); }) .then(function() { deferred.reject(); }); return deferred.promise; }); });