Skip to content

Commit 38d44fb

Browse files
committed
✅ Move projections test inside getQuery check
The `getQuery` test option is optional, but the projections tests try to run regardless of whether it's set. This change moves it inside the guard for this option.
1 parent d6fbaef commit 38d44fb

File tree

3 files changed

+110
-110
lines changed

3 files changed

+110
-110
lines changed

test/client/query.js

+38
Original file line numberDiff line numberDiff line change
@@ -172,5 +172,43 @@ module.exports = function(options) {
172172
});
173173
});
174174
});
175+
176+
it('snapshot fetch from query does not advance version of doc with pending ops', function(done) {
177+
var backend = this.backend;
178+
backend.connect(null, null, function(connection1) {
179+
backend.connect(null, null, function(connection2) {
180+
var doc = connection1.get('dogs', 'fido');
181+
var doc2 = connection2.get('dogs', 'fido');
182+
doc.create({name: 'kido'}, function(err) {
183+
if (err) return done(err);
184+
doc2.fetch(function(err) {
185+
if (err) return done(err);
186+
doc2.submitOp({p: ['name', 0], si: 'f'}, function(err) {
187+
if (err) return done(err);
188+
expect(doc2.data).eql({name: 'fkido'});
189+
doc.connection.createFetchQuery('dogs', {}, null, function(err) {
190+
if (err) return done(err);
191+
doc.resume();
192+
});
193+
});
194+
});
195+
});
196+
process.nextTick(function() {
197+
doc.pause();
198+
doc.submitOp({p: ['name', 0], sd: 'k'}, function(err) {
199+
if (err) return done(err);
200+
doc.pause();
201+
doc2.fetch(function(err) {
202+
if (err) return done(err);
203+
expect(doc2.version).equal(3);
204+
expect(doc2.data).eql({name: 'fido'});
205+
done();
206+
});
207+
});
208+
doc.del();
209+
});
210+
});
211+
});
212+
});
175213
});
176214
};

test/client/submit.js

-38
Original file line numberDiff line numberDiff line change
@@ -929,44 +929,6 @@ module.exports = function() {
929929
});
930930
});
931931

932-
it('snapshot fetch from query does not advance version of doc with pending ops', function(done) {
933-
var backend = this.backend;
934-
backend.connect(null, null, function(connection1) {
935-
backend.connect(null, null, function(connection2) {
936-
var doc = connection1.get('dogs', id);
937-
var doc2 = connection2.get('dogs', id);
938-
doc.create({name: 'kido'}, function(err) {
939-
if (err) return done(err);
940-
doc2.fetch(function(err) {
941-
if (err) return done(err);
942-
doc2.submitOp({p: ['name', 0], si: 'f'}, function(err) {
943-
if (err) return done(err);
944-
expect(doc2.data).eql({name: 'fkido'});
945-
doc.connection.createFetchQuery('dogs', {}, null, function(err) {
946-
if (err) return done(err);
947-
doc.resume();
948-
});
949-
});
950-
});
951-
});
952-
process.nextTick(function() {
953-
doc.pause();
954-
doc.submitOp({p: ['name', 0], sd: 'k'}, function(err) {
955-
if (err) return done(err);
956-
doc.pause();
957-
doc2.fetch(function(err) {
958-
if (err) return done(err);
959-
expect(doc2.version).equal(3);
960-
expect(doc2.data).eql({name: 'fido'});
961-
done();
962-
});
963-
});
964-
doc.del();
965-
});
966-
});
967-
});
968-
});
969-
970932
it('passing an error in submit middleware rejects a create and calls back with the erorr', function(done) {
971933
this.backend.use('submit', function(request, next) {
972934
next({message: 'Custom error'});

test/db.js

+72-72
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ module.exports = function(options) {
6161
if (options.getQuery) {
6262
require('./client/query-subscribe')({getQuery: options.getQuery});
6363
require('./client/query')({getQuery: options.getQuery});
64+
require('./client/projections')({getQuery: options.getQuery});
6465
}
6566

66-
require('./client/projections')({getQuery: options.getQuery});
6767
require('./client/submit')();
6868
require('./client/submit-json1')();
6969
require('./client/subscribe')();
@@ -650,111 +650,111 @@ module.exports = function(options) {
650650
});
651651
});
652652

653-
describe('query', function() {
654-
it('query returns data in the collection', function(done) {
655-
var snapshot = {v: 1, type: 'json0', data: {x: 5, y: 6}, m: null};
656-
var db = this.db;
657-
db.commit('testcollection', 'test', {v: 0, create: {}}, snapshot, null, function(err) {
658-
if (err) return done(err);
659-
db.query('testcollection', {x: 5}, null, null, function(err, results) {
653+
if (options.getQuery) {
654+
describe('query', function() {
655+
it('query returns data in the collection', function(done) {
656+
var snapshot = {v: 1, type: 'json0', data: {x: 5, y: 6}, m: null};
657+
var db = this.db;
658+
db.commit('testcollection', 'test', {v: 0, create: {}}, snapshot, null, function(err) {
660659
if (err) return done(err);
661-
delete results[0].id;
662-
expect(results).eql([snapshot]);
663-
done();
660+
db.query('testcollection', {x: 5}, null, null, function(err, results) {
661+
if (err) return done(err);
662+
delete results[0].id;
663+
expect(results).eql([snapshot]);
664+
done();
665+
});
664666
});
665667
});
666-
});
667668

668-
it('query returns nothing when there is no data', function(done) {
669-
this.db.query('testcollection', {x: 5}, null, null, function(err, results) {
670-
if (err) return done(err);
671-
expect(results).eql([]);
672-
done();
669+
it('query returns nothing when there is no data', function(done) {
670+
this.db.query('testcollection', {x: 5}, null, null, function(err, results) {
671+
if (err) return done(err);
672+
expect(results).eql([]);
673+
done();
674+
});
673675
});
674-
});
675676

676-
it('query does not return committed metadata by default', function(done) {
677-
var db = this.db;
678-
commitSnapshotWithMetadata(db, function(err) {
679-
if (err) return done(err);
680-
db.query('testcollection', {x: 5}, null, null, function(err, results) {
677+
it('query does not return committed metadata by default', function(done) {
678+
var db = this.db;
679+
commitSnapshotWithMetadata(db, function(err) {
681680
if (err) return done(err);
682-
expect(results[0].m).equal(null);
683-
done();
681+
db.query('testcollection', {x: 5}, null, null, function(err, results) {
682+
if (err) return done(err);
683+
expect(results[0].m).equal(null);
684+
done();
685+
});
684686
});
685687
});
686-
});
687688

688-
it('query returns metadata when option is true', function(done) {
689-
var db = this.db;
690-
commitSnapshotWithMetadata(db, function(err) {
691-
if (err) return done(err);
692-
db.query('testcollection', {x: 5}, null, {metadata: true}, function(err, results) {
689+
it('query returns metadata when option is true', function(done) {
690+
var db = this.db;
691+
commitSnapshotWithMetadata(db, function(err) {
693692
if (err) return done(err);
694-
expect(results[0].m).eql({test: 3});
695-
done();
693+
db.query('testcollection', {x: 5}, null, {metadata: true}, function(err, results) {
694+
if (err) return done(err);
695+
expect(results[0].m).eql({test: 3});
696+
done();
697+
});
696698
});
697699
});
698700
});
699-
});
700701

701-
describe('projections', function() {
702-
it('query returns only projected fields', function(done) {
703-
if (!this.db.projectsSnapshot) return done();
702+
describe('projections', function() {
703+
it('query returns only projected fields', function(done) {
704+
if (!this.db.projectsSnapshot) return done();
704705

705-
var snapshot = {type: 'json0', v: 1, data: {x: 5, y: 6}};
706-
var db = this.db;
707-
db.commit('testcollection', 'test', {v: 0, create: {}}, snapshot, null, function(err) {
708-
if (err) return done(err);
709-
db.query('testcollection', {x: 5}, {y: true}, null, function(err, results) {
706+
var snapshot = {type: 'json0', v: 1, data: {x: 5, y: 6}};
707+
var db = this.db;
708+
db.commit('testcollection', 'test', {v: 0, create: {}}, snapshot, null, function(err) {
710709
if (err) return done(err);
711-
expect(results).eql([{type: 'json0', v: 1, data: {y: 6}, id: 'test'}]);
712-
done();
710+
db.query('testcollection', {x: 5}, {y: true}, null, function(err, results) {
711+
if (err) return done(err);
712+
expect(results).eql([{type: 'json0', v: 1, data: {y: 6}, id: 'test'}]);
713+
done();
714+
});
713715
});
714716
});
715-
});
716717

717-
it('query returns no data for matching documents if fields is empty', function(done) {
718-
if (!this.db.projectsSnapshot) return done();
718+
it('query returns no data for matching documents if fields is empty', function(done) {
719+
if (!this.db.projectsSnapshot) return done();
719720

720-
var snapshot = {type: 'json0', v: 1, data: {x: 5, y: 6}};
721-
var db = this.db;
722-
db.commit('testcollection', 'test', {v: 0, create: {}}, snapshot, null, function(err) {
723-
if (err) return done(err);
724-
db.query('testcollection', {x: 5}, {}, null, function(err, results) {
721+
var snapshot = {type: 'json0', v: 1, data: {x: 5, y: 6}};
722+
var db = this.db;
723+
db.commit('testcollection', 'test', {v: 0, create: {}}, snapshot, null, function(err) {
725724
if (err) return done(err);
726-
expect(results).eql([{type: 'json0', v: 1, data: {}, id: 'test'}]);
727-
done();
725+
db.query('testcollection', {x: 5}, {}, null, function(err, results) {
726+
if (err) return done(err);
727+
expect(results).eql([{type: 'json0', v: 1, data: {}, id: 'test'}]);
728+
done();
729+
});
728730
});
729731
});
730-
});
731732

732-
it('query does not return committed metadata by default with projection', function(done) {
733-
var db = this.db;
734-
commitSnapshotWithMetadata(db, function(err) {
735-
if (err) return done(err);
736-
db.query('testcollection', {x: 5}, {x: true}, null, function(err, results) {
733+
it('query does not return committed metadata by default with projection', function(done) {
734+
var db = this.db;
735+
commitSnapshotWithMetadata(db, function(err) {
737736
if (err) return done(err);
738-
expect(results[0].m).equal(null);
739-
done();
737+
db.query('testcollection', {x: 5}, {x: true}, null, function(err, results) {
738+
if (err) return done(err);
739+
expect(results[0].m).equal(null);
740+
done();
741+
});
740742
});
741743
});
742-
});
743744

744-
it('query returns metadata when option is true with projection', function(done) {
745-
var db = this.db;
746-
commitSnapshotWithMetadata(db, function(err) {
747-
if (err) return done(err);
748-
db.query('testcollection', {x: 5}, {x: true}, {metadata: true}, function(err, results) {
745+
it('query returns metadata when option is true with projection', function(done) {
746+
var db = this.db;
747+
commitSnapshotWithMetadata(db, function(err) {
749748
if (err) return done(err);
750-
expect(results[0].m).eql({test: 3});
751-
done();
749+
db.query('testcollection', {x: 5}, {x: true}, {metadata: true}, function(err, results) {
750+
if (err) return done(err);
751+
expect(results[0].m).eql({test: 3});
752+
done();
753+
});
752754
});
753755
});
754756
});
755-
});
756757

757-
if (options.getQuery) {
758758
describe('queryPoll', function() {
759759
it('returns data in the collection', function(done) {
760760
var snapshot = {v: 1, type: 'json0', data: {x: 5, y: 6}};

0 commit comments

Comments
 (0)