@@ -71,3 +71,65 @@ describe('exports', function () {
71
71
assert ( JSDataRethinkDB . version )
72
72
} )
73
73
} )
74
+
75
+ describe ( 'RethinkDBAdapter#find' , function ( ) {
76
+ it ( 'should allow subset of fields to be returned' , function ( ) {
77
+ const User = this . $$User
78
+ let props = { name : 'John' , age : 30 , role : 'admin' , password : 'foo' , address : { state : 'TX' , zip : 12345 } }
79
+ let user
80
+ assert . debug ( 'create' , User . name , props )
81
+ return this . $$adapter . create ( User , props )
82
+ . then ( ( _user ) => {
83
+ user = _user
84
+
85
+ return this . $$adapter . find ( User , user [ User . idAttribute ] , { fields : User . idAttribute } )
86
+ } )
87
+ . then ( ( _user ) => {
88
+ assert . objectsEqual ( _user , {
89
+ [ User . idAttribute ] : user [ User . idAttribute ]
90
+ } , 'only ID was selected' )
91
+
92
+ return this . $$adapter . find ( User , user [ User . idAttribute ] , { fields : [ User . idAttribute , 'age' ] } )
93
+ } )
94
+ . then ( ( _user ) => {
95
+ assert . objectsEqual ( _user , {
96
+ [ User . idAttribute ] : user [ User . idAttribute ] ,
97
+ age : user . age
98
+ } , 'only ID and age were selected' )
99
+ } )
100
+ } )
101
+ } )
102
+
103
+ describe ( 'RethinkDBAdapter#findAll' , function ( ) {
104
+ it ( 'should allow subset of fields to be returned' , function ( ) {
105
+ const User = this . $$User
106
+ let props = { name : 'John' , age : 30 , role : 'dev' , password : 'foo' , address : { state : 'TX' , zip : 12345 } }
107
+ let props2 = { name : 'Sally' , age : 28 , role : 'admin' , password : 'bar' , address : { state : 'MA' , zip : 54321 } }
108
+ let users
109
+ assert . debug ( 'create' , User . name , [ props , props2 ] )
110
+ return this . $$adapter . createMany ( User , [ props , props2 ] )
111
+ . then ( ( _users ) => {
112
+ users = _users
113
+
114
+ return this . $$adapter . findAll ( User , { orderBy : 'name' } , { fields : User . idAttribute } )
115
+ } )
116
+ . then ( ( _users ) => {
117
+ assert . objectsEqual ( _users , [ {
118
+ [ User . idAttribute ] : users [ 0 ] [ User . idAttribute ]
119
+ } , {
120
+ [ User . idAttribute ] : users [ 1 ] [ User . idAttribute ]
121
+ } ] , 'only ID was selected' )
122
+
123
+ return this . $$adapter . findAll ( User , { orderBy : 'name' } , { fields : [ User . idAttribute , 'age' ] } )
124
+ } )
125
+ . then ( ( _users ) => {
126
+ assert . objectsEqual ( _users , [ {
127
+ [ User . idAttribute ] : users [ 0 ] [ User . idAttribute ] ,
128
+ age : users [ 0 ] . age
129
+ } , {
130
+ [ User . idAttribute ] : users [ 1 ] [ User . idAttribute ] ,
131
+ age : users [ 1 ] . age
132
+ } ] , 'only ID and age were selected' )
133
+ } )
134
+ } )
135
+ } )
0 commit comments