UNPKG

regard

Version:

Sugar-interface to access multiple data sources.

61 lines (52 loc) 1.76 kB
var _ = require('lodash'), AbstractManager = require('../../lib/managers/abstract'), Chai = require('chai'), ConnectorsManager = require('../../lib/managers/connectors'), File = require('easy-file'), Fs = require('fs'); var clazz = ConnectorsManager, expect = Chai.expect, foo, bar; var BAD_CONNECTOR_PATH = __dirname+'/../../lib/connectors/bad'; function createBadConnector() { File.write(BAD_CONNECTOR_PATH, 'foo:bar'); } function removeBadConnector() { Fs.unlinkSync(BAD_CONNECTOR_PATH); } describe('ConnectorsManager', function () { before(createBadConnector); after(removeBadConnector); beforeEach(function () { foo = clazz(); }); it('should return ConnectorsManager instance', function () { foo = clazz(); expect(foo).is.be.instanceof(AbstractManager); expect(foo).is.be.instanceof(ConnectorsManager); foo = new clazz(); expect(foo).is.be.instanceof(AbstractManager); expect(foo).is.be.instanceof(ConnectorsManager); }); it('should return a core connector', function () { expect(foo.core()).to.not.be.ok; expect(foo.core('foo')).to.not.be.ok; expect(foo.core('fs')).to.be.a('function'); expect(_.partial(foo.core, 'bad')).to.throw(); }); it('should resolve endpoint connector', function () { var FsConnector = foo.core('fs'); bar = {}; expect(foo.resolve(bar)).to.not.be.ok; bar.connector = FsConnector; expect(foo.resolve(bar)).to.be.ok; bar.connector = 'fs'; expect(foo.resolve(bar)).to.not.be.ok; foo.add(FsConnector()); expect(foo.resolve(bar)).to.be.ok; bar.connector = undefined; expect(foo.resolve(bar)).to.not.be.ok; bar.parent = {connector:'fs'}; expect(foo.resolve(bar)).to.be.ok; }); });