UNPKG

3.23 kBJavaScriptView Raw
1'use strict';
2
3module.exports = function (dbType, context) {
4
5 describe(dbType + ': $and', function () {
6
7 it('does and for _id', function () {
8 var db = context.db;
9 return db.bulkDocs([
10 { name: 'mario', _id: 'mario', rank: 5, series: 'mario', debut: 1981 },
11 { name: 'jigglypuff', _id: 'puff', rank: 8, series: 'pokemon', debut: 1996 },
12 { name: 'link', rank: 10, _id: 'link', series: 'zelda', debut: 1986 },
13 { name: 'donkey kong', rank: 7, _id: 'dk', series: 'mario', debut: 1981 },
14 { name: 'pikachu', series: 'pokemon', _id: 'pikachu', rank: 1, debut: 1996 },
15 { name: 'captain falcon', _id: 'falcon', rank: 4, series: 'f-zero', debut: 1990 },
16 { name: 'luigi', rank: 11, _id: 'luigi', series: 'mario', debut: 1983 },
17 { name: 'fox', _id: 'fox', rank: 3, series: 'star fox', debut: 1993 },
18 { name: 'ness', rank: 9, _id: 'ness', series: 'earthbound', debut: 1994 },
19 { name: 'samus', rank: 12, _id: 'samus', series: 'metroid', debut: 1986 },
20 { name: 'yoshi', _id: 'yoshi', rank: 6, series: 'mario', debut: 1990 },
21 { name: 'kirby', _id: 'kirby', series: 'kirby', rank: 2, debut: 1992 }
22 ]).then(function () {
23 return db.find({
24 selector: {$and: [
25 {_id: {$in: ['pikachu', 'puff']}},
26 {_id: {$gt: null}}
27 ]},
28 fields: ["_id"],
29 });
30 }).then(function (resp) {
31 resp.should.deep.equal({
32 docs: [
33 {_id: 'pikachu'},
34 {_id: 'puff'},
35 ]
36 });
37 });
38 });
39
40 it('does and for index', function () {
41 var db = context.db;
42 var index = {
43 "index": {
44 "fields": ["debut"]
45 }
46 };
47 return db.createIndex(index).then(function () {
48 return db.bulkDocs([
49 { name: 'mario', _id: 'mario', rank: 5, series: 'mario', debut: 1981 },
50 { name: 'jigglypuff', _id: 'puff', rank: 8, series: 'pokemon', debut: 1996 },
51 { name: 'link', rank: 10, _id: 'link', series: 'zelda', debut: 1986 },
52 { name: 'donkey kong', rank: 7, _id: 'dk', series: 'mario', debut: 1981 },
53 { name: 'pikachu', series: 'pokemon', _id: 'pikachu', rank: 1, debut: 1996 },
54 { name: 'captain falcon', _id: 'falcon', rank: 4, series: 'f-zero', debut: 1990 },
55 { name: 'luigi', rank: 11, _id: 'luigi', series: 'mario', debut: 1983 },
56 { name: 'fox', _id: 'fox', rank: 3, series: 'star fox', debut: 1993 },
57 { name: 'ness', rank: 9, _id: 'ness', series: 'earthbound', debut: 1994 },
58 { name: 'samus', rank: 12, _id: 'samus', series: 'metroid', debut: 1986 },
59 { name: 'yoshi', _id: 'yoshi', rank: 6, series: 'mario', debut: 1990 },
60 { name: 'kirby', _id: 'kirby', series: 'kirby', rank: 2, debut: 1992 }
61 ]);}).then(function () {
62 return db.find({
63 selector: {$and: [
64 {debut: {$in: [1996]}},
65 {debut: {$gt: null}}
66 ]},
67 fields: ["_id"],
68 });
69 }).then(function (resp) {
70 resp.should.deep.equal({
71 docs: [
72 {_id: 'pikachu'},
73 {_id: 'puff'},
74 ]
75 });
76 });
77 });
78
79 });
80};