@graphistry/falcor
Version:
A JavaScript library for efficient data fetching.
44 lines (42 loc) • 1.66 kB
JavaScript
var falcor = require('./../../../falcor.js');
var Model = falcor.Model;
var Rx = require('rx');
var noOp = function() {};
var Observable = Rx.Observable;
var CacheGenerator = require('./../../CacheGenerator');
var toObservable = require('./../../toObs');
var strip = require('./../../cleanData').stripDerefAndVersionKeys;
var sinon = require('sinon');
var expect = require('chai').expect;
describe('Path Syntax', function() {
var model = new Model({cache: CacheGenerator(0, 2)});
it('should accept strings for get.', function(done) {
var onNext = sinon.spy();
toObservable(model.get('lolomo[0][0].item.title', 'lolomo[0][1].item.title')).
doAction(onNext, noOp, function() {
expect(strip(onNext.getCall(0).args[0])).to.deep.equals({
json: {
lolomo: {
0: {
0: {
item: { title: 'Video 0' }
},
1: {
item: { title: 'Video 1' }
}
}
}
}
});
}).
subscribe(noOp, done, done);
});
it('should accept strings for getValue', function(done) {
var onNext = sinon.spy();
toObservable(model.getValue('videos[0].title')).
doAction(onNext, noOp, function() {
expect(onNext.getCall(0).args[0]).to.deep.equals('Video 0');
}).
subscribe(noOp, done, done);
});
});