@@ -23,6 +23,105 @@ describe('Parse.Query testing', () => {
23
23
} ) ;
24
24
} ) ;
25
25
26
+ it ( "notEqualTo with Relation is working" , function ( done ) {
27
+ var user = new Parse . User ( ) ;
28
+ user . setPassword ( "asdf" ) ;
29
+ user . setUsername ( "zxcv" ) ;
30
+
31
+ var user1 = new Parse . User ( ) ;
32
+ user1 . setPassword ( "asdf" ) ;
33
+ user1 . setUsername ( "qwerty" ) ;
34
+
35
+ var user2 = new Parse . User ( ) ;
36
+ user2 . setPassword ( "asdf" ) ;
37
+ user2 . setUsername ( "asdf" ) ;
38
+
39
+ var Cake = Parse . Object . extend ( "Cake" ) ;
40
+ var cake1 = new Cake ( ) ;
41
+ var cake2 = new Cake ( ) ;
42
+ var cake3 = new Cake ( ) ;
43
+
44
+
45
+ user . signUp ( ) . then ( function ( ) {
46
+ return user1 . signUp ( ) ;
47
+ } ) . then ( function ( ) {
48
+ return user2 . signUp ( ) ;
49
+ } ) . then ( function ( ) {
50
+ var relLike1 = cake1 . relation ( "liker" ) ;
51
+ relLike1 . add ( [ user , user1 ] ) ;
52
+
53
+ var relDislike1 = cake1 . relation ( "hater" ) ;
54
+ relDislike1 . add ( user2 ) ;
55
+ return cake1 . save ( ) ;
56
+ } ) . then ( function ( ) {
57
+ var rellike2 = cake2 . relation ( "liker" ) ;
58
+ rellike2 . add ( [ user , user1 ] ) ;
59
+
60
+ var relDislike2 = cake2 . relation ( "hater" ) ;
61
+ relDislike2 . add ( user2 ) ;
62
+
63
+ return cake2 . save ( ) ;
64
+ } ) . then ( function ( ) {
65
+ var rellike3 = cake3 . relation ( "liker" ) ;
66
+ rellike3 . add ( user ) ;
67
+
68
+ var relDislike3 = cake3 . relation ( "hater" ) ;
69
+ relDislike3 . add ( [ user1 , user2 ] ) ;
70
+ return cake3 . save ( ) ;
71
+ } ) . then ( function ( ) {
72
+ var query = new Parse . Query ( Cake ) ;
73
+ // User2 likes nothing so we should receive 0
74
+ query . equalTo ( "liker" , user2 ) ;
75
+ return query . find ( ) . then ( function ( results ) {
76
+ equal ( results . length , 0 ) ;
77
+ } ) ;
78
+ } ) . then ( function ( ) {
79
+ var query = new Parse . Query ( Cake ) ;
80
+ // User1 likes two of three cakes
81
+ query . equalTo ( "liker" , user1 ) ;
82
+ return query . find ( ) . then ( function ( results ) {
83
+ // It should return 2 -> cake 1 and cake 2
84
+ equal ( results . length , 2 ) ;
85
+ } ) ;
86
+ } ) . then ( function ( ) {
87
+ var query = new Parse . Query ( Cake ) ;
88
+ // We want to know which cake the user1 is not appreciating -> cake3
89
+ query . notEqualTo ( "liker" , user1 ) ;
90
+ return query . find ( ) . then ( function ( results ) {
91
+ // Should return 1 -> the cake 3
92
+ equal ( results . length , 1 ) ;
93
+ } ) ;
94
+ } ) . then ( function ( ) {
95
+ var query = new Parse . Query ( Cake ) ;
96
+ // User2 is a hater of everything so we should receive 0
97
+ query . notEqualTo ( "hater" , user2 ) ;
98
+ return query . find ( ) . then ( function ( results ) {
99
+ equal ( results . length , 0 ) ;
100
+ } ) ;
101
+ } ) . then ( function ( ) {
102
+ var query = new Parse . Query ( Cake ) ;
103
+ // Only cake3 is liked by user
104
+ query . notContainedIn ( "liker" , [ user1 ] ) ;
105
+ return query . find ( ) . then ( function ( results ) {
106
+ equal ( results . length , 1 ) ;
107
+ } ) ;
108
+ } ) . then ( function ( ) {
109
+ var query = new Parse . Query ( Cake ) ;
110
+ // All the users
111
+ query . containedIn ( "liker" , [ user , user1 , user2 ] ) ;
112
+ // Exclude user 1
113
+ query . notEqualTo ( "liker" , user1 ) ;
114
+ // Only cake3 is liked only by user1
115
+ return query . find ( ) . then ( function ( results ) {
116
+ equal ( results . length , 1 ) ;
117
+ let cake = results [ 0 ] ;
118
+ expect ( cake . id ) . toBe ( cake3 . id ) ;
119
+ } ) ;
120
+ } ) . then ( function ( ) {
121
+ done ( ) ;
122
+ } )
123
+ } ) ;
124
+
26
125
it ( "query with limit" , function ( done ) {
27
126
var baz = new TestObject ( { foo : 'baz' } ) ;
28
127
var qux = new TestObject ( { foo : 'qux' } ) ;
0 commit comments