| 'use strict'; |
| |
| var fileSyncCmp = require('../'); |
| |
| var assert = require('assert'); |
| var fs = require('fs'); |
| |
| var tmp = require('tmp'); |
| tmp.setGracefulCleanup(); |
| |
| var Q = require('q'); |
| |
| var fsWrite = Q.nfbind(fs.write); |
| var tmpFile = Q.nfbind(tmp.file); |
| |
| function write (fd, buf) { |
| return fsWrite(fd, buf, 0, buf.length, null); |
| } |
| |
| |
| describe('equalFiles', function () { |
| var pathA, pathB; |
| var fdA, fdB; |
| |
| beforeEach(function () { |
| return Q.all([tmpFile(), tmpFile()]).spread(function (a, b) { |
| pathA = a[0]; |
| pathB = b[0]; |
| fdA = a[1]; |
| fdB = b[1]; |
| }); |
| }); |
| |
| it('should handle empty files', function () { |
| assert(fileSyncCmp.equalFiles(pathA, pathB)); |
| }); |
| |
| it('should handle equal content', function () { |
| var buf = new Buffer('File content\n'); |
| var writes = [write(fdA, buf), write(fdB, buf)]; |
| return Q.all(writes).then(function () { |
| assert(fileSyncCmp.equalFiles(pathA, pathB)); |
| }); |
| }); |
| |
| it('should handle non-equal content', function () { |
| var bufA = new Buffer('Some text\n'); |
| var bufB = new Buffer('Other text\n'); |
| var writes = [write(fdA, bufA), write(fdB, bufB)]; |
| return Q.all(writes).then(function () { |
| assert(!fileSyncCmp.equalFiles(pathA, pathB)); |
| }); |
| }); |
| }); |