UNPKG

veendor

Version:

a tool for stroing your npm dependencies in arbitraty storage

56 lines (42 loc) 1.84 kB
const {describe, it, beforeEach, afterEach} = require('mocha'); const chai = require('chai'); const chaiAsPromised = require('chai-as-promised'); const sinon = require('sinon'); const tracer = require('tracer'); const pushBackends = require('../../../lib/install/pushBackends'); const errors = require('../../../lib/errors'); const logger = require('../../../lib/logger'); const helpers = require('../helpers'); const assert = chai.assert; chai.use(chaiAsPromised); describe('pushBackends', function () { let sandbox; let fakeBackends; const fakeSha1 = '1234567890deadbeef1234567890'; let config; beforeEach(function () { sandbox = sinon.sandbox.create(); fakeBackends = [helpers.fakeBackendConfig('fakeBackends[0]'), helpers.fakeBackendConfig('fakeBackends[1]')]; fakeBackends[0].backend.pull = () => Promise.reject(new errors.BundleNotFoundError); fakeBackends[0].push = true; config = { backends: fakeBackends, fallbackToNpm: true, installDiff: true, packageHash: {} }; logger.setLogger(tracer.console({level: 6})); }); afterEach(function () { sandbox.restore(); }); it('failing to push on backends with pushMayFail === true should be ignored', done => { fakeBackends[0].backend.push = () => Promise.reject(new helpers.AnError()); fakeBackends[0].pushMayFail = true; assert.isFulfilled(pushBackends(fakeBackends, fakeSha1, config)).notify(done); }); it('failing to push on backends without pushMayFail === true should reject install', done => { fakeBackends[0].backend.push = () => Promise.reject(new helpers.AnError()); assert.isRejected(pushBackends(fakeBackends, fakeSha1, config), helpers.AnError).notify(done); }); });