55'use strict' ;
66
77const Parse = require ( 'parse/node' ) ;
8+ const rp = require ( 'request-promise' ) ;
9+
10+ const masterKeyHeaders = {
11+ 'X-Parse-Application-Id' : 'test' ,
12+ 'X-Parse-Rest-API-Key' : 'test' ,
13+ 'X-Parse-Master-Key' : 'test'
14+ }
15+
16+ const masterKeyOptions = {
17+ headers : masterKeyHeaders ,
18+ json : true
19+ }
820
921describe ( 'Parse.Query testing' , ( ) => {
1022 it ( "basic query" , function ( done ) {
@@ -570,6 +582,38 @@ describe('Parse.Query testing', () => {
570582 } ) ;
571583 } ) ;
572584
585+ it ( "lessThan zero queries" , ( done ) => {
586+ const makeBoxedNumber = ( i ) => {
587+ return new BoxedNumber ( { number : i } ) ;
588+ } ;
589+ const numbers = [ - 3 , - 2 , - 1 , 0 , 1 ] ;
590+ const boxedNumbers = numbers . map ( makeBoxedNumber ) ;
591+ Parse . Object . saveAll ( boxedNumbers ) . then ( ( ) => {
592+ const query = new Parse . Query ( BoxedNumber ) ;
593+ query . lessThan ( 'number' , 0 ) ;
594+ return query . find ( ) ;
595+ } ) . then ( ( results ) => {
596+ equal ( results . length , 3 ) ;
597+ done ( ) ;
598+ } ) ;
599+ } ) ;
600+
601+ it ( "lessThanOrEqualTo zero queries" , ( done ) => {
602+ const makeBoxedNumber = ( i ) => {
603+ return new BoxedNumber ( { number : i } ) ;
604+ } ;
605+ const numbers = [ - 3 , - 2 , - 1 , 0 , 1 ] ;
606+ const boxedNumbers = numbers . map ( makeBoxedNumber ) ;
607+ Parse . Object . saveAll ( boxedNumbers ) . then ( ( ) => {
608+ const query = new Parse . Query ( BoxedNumber ) ;
609+ query . lessThanOrEqualTo ( 'number' , 0 ) ;
610+ return query . find ( ) ;
611+ } ) . then ( ( results ) => {
612+ equal ( results . length , 4 ) ;
613+ done ( ) ;
614+ } ) ;
615+ } ) ;
616+
573617 it ( "greaterThan queries" , function ( done ) {
574618 const makeBoxedNumber = function ( i ) {
575619 return new BoxedNumber ( { number : i } ) ;
@@ -606,6 +650,38 @@ describe('Parse.Query testing', () => {
606650 } ) ;
607651 } ) ;
608652
653+ it ( "greaterThan zero queries" , ( done ) => {
654+ const makeBoxedNumber = ( i ) => {
655+ return new BoxedNumber ( { number : i } ) ;
656+ } ;
657+ const numbers = [ - 3 , - 2 , - 1 , 0 , 1 ] ;
658+ const boxedNumbers = numbers . map ( makeBoxedNumber ) ;
659+ Parse . Object . saveAll ( boxedNumbers ) . then ( ( ) => {
660+ const query = new Parse . Query ( BoxedNumber ) ;
661+ query . greaterThan ( 'number' , 0 ) ;
662+ return query . find ( ) ;
663+ } ) . then ( ( results ) => {
664+ equal ( results . length , 1 ) ;
665+ done ( ) ;
666+ } ) ;
667+ } ) ;
668+
669+ it ( "greaterThanOrEqualTo zero queries" , ( done ) => {
670+ const makeBoxedNumber = ( i ) => {
671+ return new BoxedNumber ( { number : i } ) ;
672+ } ;
673+ const numbers = [ - 3 , - 2 , - 1 , 0 , 1 ] ;
674+ const boxedNumbers = numbers . map ( makeBoxedNumber ) ;
675+ Parse . Object . saveAll ( boxedNumbers ) . then ( ( ) => {
676+ const query = new Parse . Query ( BoxedNumber ) ;
677+ query . greaterThanOrEqualTo ( 'number' , 0 ) ;
678+ return query . find ( ) ;
679+ } ) . then ( ( results ) => {
680+ equal ( results . length , 2 ) ;
681+ done ( ) ;
682+ } ) ;
683+ } ) ;
684+
609685 it ( "lessThanOrEqualTo greaterThanOrEqualTo queries" , function ( done ) {
610686 const makeBoxedNumber = function ( i ) {
611687 return new BoxedNumber ( { number : i } ) ;
@@ -662,6 +738,101 @@ describe('Parse.Query testing', () => {
662738 } ) ;
663739 } ) ;
664740
741+ it ( "notEqualTo zero queries" , ( done ) => {
742+ const makeBoxedNumber = ( i ) => {
743+ return new BoxedNumber ( { number : i } ) ;
744+ } ;
745+ const numbers = [ - 3 , - 2 , - 1 , 0 , 1 ] ;
746+ const boxedNumbers = numbers . map ( makeBoxedNumber ) ;
747+ Parse . Object . saveAll ( boxedNumbers ) . then ( ( ) => {
748+ const query = new Parse . Query ( BoxedNumber ) ;
749+ query . notEqualTo ( 'number' , 0 ) ;
750+ return query . find ( ) ;
751+ } ) . then ( ( results ) => {
752+ equal ( results . length , 4 ) ;
753+ done ( ) ;
754+ } ) ;
755+ } ) ;
756+
757+ it ( "equalTo zero queries" , ( done ) => {
758+ const makeBoxedNumber = ( i ) => {
759+ return new BoxedNumber ( { number : i } ) ;
760+ } ;
761+ const numbers = [ - 3 , - 2 , - 1 , 0 , 1 ] ;
762+ const boxedNumbers = numbers . map ( makeBoxedNumber ) ;
763+ Parse . Object . saveAll ( boxedNumbers ) . then ( ( ) => {
764+ const query = new Parse . Query ( BoxedNumber ) ;
765+ query . equalTo ( 'number' , 0 ) ;
766+ return query . find ( ) ;
767+ } ) . then ( ( results ) => {
768+ equal ( results . length , 1 ) ;
769+ done ( ) ;
770+ } ) ;
771+ } ) ;
772+
773+ it ( "number equalTo boolean queries" , ( done ) => {
774+ const makeBoxedNumber = ( i ) => {
775+ return new BoxedNumber ( { number : i } ) ;
776+ } ;
777+ const numbers = [ - 3 , - 2 , - 1 , 0 , 1 ] ;
778+ const boxedNumbers = numbers . map ( makeBoxedNumber ) ;
779+ Parse . Object . saveAll ( boxedNumbers ) . then ( ( ) => {
780+ const query = new Parse . Query ( BoxedNumber ) ;
781+ query . equalTo ( 'number' , false ) ;
782+ return query . find ( ) ;
783+ } ) . then ( ( results ) => {
784+ equal ( results . length , 0 ) ;
785+ done ( ) ;
786+ } ) ;
787+ } ) ;
788+
789+ it ( "equalTo false queries" , ( done ) => {
790+ const obj1 = new TestObject ( { field : false } ) ;
791+ const obj2 = new TestObject ( { field : true } ) ;
792+ Parse . Object . saveAll ( [ obj1 , obj2 ] ) . then ( ( ) => {
793+ const query = new Parse . Query ( TestObject ) ;
794+ query . equalTo ( 'field' , false ) ;
795+ return query . find ( ) ;
796+ } ) . then ( ( results ) => {
797+ equal ( results . length , 1 ) ;
798+ done ( ) ;
799+ } ) ;
800+ } ) ;
801+
802+ it ( "where $eq false queries (rest)" , ( done ) => {
803+ const options = Object . assign ( { } , masterKeyOptions , {
804+ body : {
805+ where : { field : { $eq : false } } ,
806+ }
807+ } ) ;
808+ const obj1 = new TestObject ( { field : false } ) ;
809+ const obj2 = new TestObject ( { field : true } ) ;
810+ Parse . Object . saveAll ( [ obj1 , obj2 ] ) . then ( ( ) => {
811+ rp . get ( Parse . serverURL + '/classes/TestObject' , options )
812+ . then ( ( resp ) => {
813+ equal ( resp . results . length , 1 ) ;
814+ done ( ) ;
815+ } ) ;
816+ } )
817+ } ) ;
818+
819+ it ( "where $eq null queries (rest)" , ( done ) => {
820+ const options = Object . assign ( { } , masterKeyOptions , {
821+ body : {
822+ where : { field : { $eq : null } } ,
823+ }
824+ } ) ;
825+ const obj1 = new TestObject ( { field : false } ) ;
826+ const obj2 = new TestObject ( { field : null } ) ;
827+ Parse . Object . saveAll ( [ obj1 , obj2 ] ) . then ( ( ) => {
828+ rp . get ( Parse . serverURL + '/classes/TestObject' , options )
829+ . then ( ( resp ) => {
830+ equal ( resp . results . length , 1 ) ;
831+ done ( ) ;
832+ } ) ;
833+ } )
834+ } ) ;
835+
665836 it ( "containedIn queries" , function ( done ) {
666837 const makeBoxedNumber = function ( i ) {
667838 return new BoxedNumber ( { number : i } ) ;
@@ -680,6 +851,40 @@ describe('Parse.Query testing', () => {
680851 } ) ;
681852 } ) ;
682853
854+ it ( "containedIn false queries" , ( done ) => {
855+ const makeBoxedNumber = ( i ) => {
856+ return new BoxedNumber ( { number : i } ) ;
857+ } ;
858+ const numbers = [ - 3 , - 2 , - 1 , 0 , 1 ] ;
859+ const boxedNumbers = numbers . map ( makeBoxedNumber ) ;
860+ Parse . Object . saveAll ( boxedNumbers ) . then ( ( ) => {
861+ const query = new Parse . Query ( BoxedNumber ) ;
862+ query . containedIn ( 'number' , false ) ;
863+ return query . find ( ) ;
864+ } ) . then ( done . fail ) . catch ( ( error ) => {
865+ equal ( error . code , Parse . Error . INVALID_JSON ) ;
866+ equal ( error . message , 'bad $in value' ) ;
867+ done ( ) ;
868+ } ) ;
869+ } ) ;
870+
871+ it ( "notContainedIn false queries" , ( done ) => {
872+ const makeBoxedNumber = ( i ) => {
873+ return new BoxedNumber ( { number : i } ) ;
874+ } ;
875+ const numbers = [ - 3 , - 2 , - 1 , 0 , 1 ] ;
876+ const boxedNumbers = numbers . map ( makeBoxedNumber ) ;
877+ Parse . Object . saveAll ( boxedNumbers ) . then ( ( ) => {
878+ const query = new Parse . Query ( BoxedNumber ) ;
879+ query . notContainedIn ( 'number' , false ) ;
880+ return query . find ( ) ;
881+ } ) . then ( done . fail ) . catch ( ( error ) => {
882+ equal ( error . code , Parse . Error . INVALID_JSON ) ;
883+ equal ( error . message , 'bad $nin value' ) ;
884+ done ( ) ;
885+ } ) ;
886+ } ) ;
887+
683888 it ( "notContainedIn queries" , function ( done ) {
684889 const makeBoxedNumber = function ( i ) {
685890 return new BoxedNumber ( { number : i } ) ;
0 commit comments