@graphistry/falcor
Version:
A JavaScript library for efficient data fetching.
44 lines (41 loc) • 1.46 kB
JavaScript
var falcor = require('./../../../falcor.js');
var Model = falcor.Model;
var noOp = function() {};
var LocalDataSource = require('../../data/LocalDataSource');
var sinon = require('sinon');
var expect = require('chai').expect;
var cacheGenerator = require('./../../CacheGenerator');
var strip = require('./../../cleanData').stripDerefAndVersionKeys;
function Cache() {
return cacheGenerator(0, 50);
}
function M() {
return cacheGenerator(0, 1);
}
describe('DataSource and Deref', function() {
it('should get a value from from dataSource when bound.', function(done) {
var model = new Model({cache: M(), source: new LocalDataSource(Cache())});
var onNext = sinon.spy();
toObservable(model.
get(['lolomo', 0, 0, 'item', 'title'])).
flatMap(function(x) {
return model.
deref(x.json.lolomo[0]).
get([1, 'item', 'title']);
}).
doAction(onNext).
doAction(noOp, noOp, function() {
expect(onNext.calledOnce).to.be.ok;
expect(strip(onNext.getCall(0).args[0])).to.deep.equals({
json: {
1: {
item: {
title: 'Video 1'
}
}
}
});
}).
subscribe(noOp, done, done);
});
});