graph-common
Version:
Open Graph API core js lib
59 lines (53 loc) • 2.15 kB
JavaScript
(function() {
'use strict';
var GQL, Query, should;
should = require('should');
GQL = require('../../lib/gql');
Query = require('../../lib/query');
describe('GQL', function() {
describe('parse_line', function() {
return it('should parse GQL line', function(done) {
var line;
line = 'application/forum/topic create { "message": "ahoj" }';
return GQL.parse_line(line, function(query) {
query.should.be["instanceof"](Query);
query.should.have.property('node', 'application/forum/topic');
query.should.have.property('action', 'create');
query.should.have.property('data', '{ "message": "ahoj" }');
return done();
});
});
});
return describe('parse', function() {
return it('should parse GQL sequence', function(done) {
var gql_sequence, n_queries, query_counter;
gql_sequence = ['status read', 'application/forum/topic create { "message": "nazdar" }', 'node create { "name": "echo", "router", "echo" }'];
n_queries = gql_sequence.length;
query_counter = 0;
return GQL.parse(gql_sequence.join('\n'), function(query) {
var _ref;
query.should.be["instanceof"](Query);
should((_ref = query.node) === 'status' || _ref === 'application/forum/topic' || _ref === 'node').be["true"];
if (query.node === 'status') {
query.should.have.property('action', 'read');
should(query.data).be.undefined;
query_counter++;
}
if (query.node === 'application/forum/topic') {
query.should.have.property('action', 'create');
query.should.have.property('data', '{ "message": "nazdar" }');
query_counter++;
}
if (query.node === 'node') {
query.should.have.property('action', 'create');
query.should.have.property('data', '{ "name": "echo", "router", "echo" }');
query_counter++;
}
if (query_counter === n_queries) {
return done();
}
});
});
});
});
}).call(this);