it('should detect other errors during lstat', () => { var addonLinter = new Linter({_: ['foo']}); addonLinter.handleError = sinon.stub(); var fakeError = new TypeError('soz'); var fakeLstat = () => { return Promise.reject(fakeError); }; return addonLinter.checkFileExists(addonLinter.packagePath, fakeLstat) .then(unexpectedSuccess) .catch((err) => { assert.instanceOf(err, TypeError); assert.include(err.message, 'soz'); }); });
it('should detect an invalid file with ENOENT', () => { var addonLinter = new Linter({_: ['foo']}); addonLinter.handleError = sinon.stub(); var fakeError = new Error('soz'); fakeError.code = 'ENOENT'; var fakeLstat = () => { return Promise.reject(fakeError); }; return addonLinter.checkFileExists(addonLinter.packagePath, fakeLstat) .then(unexpectedSuccess) .catch((err) => { assert.instanceOf(err, Error); assert.include(err.message, 'Path "foo" is not a file'); }); });
it('should reject if not a file', () => { var addonLinter = new Linter({_: ['bar']}); addonLinter.handleError = sinon.stub(); var isFileSpy = sinon.spy(() => { return false; }); var isDirSpy = sinon.spy(() => { return false; }); var fakeLstat = () => { return Promise.resolve({ isFile: isFileSpy, isDirectory: isDirSpy, }); }; return addonLinter.checkFileExists(addonLinter.packagePath, fakeLstat) .then(unexpectedSuccess) .catch((err) => { assert.instanceOf(err, Error); assert.include(err.message, 'Path "bar" is not a file or directory'); assert.equal(isFileSpy.callCount, 1); }); });