@@ -218,6 +218,116 @@ describe('Database Functions', () => {
218
218
} ) ;
219
219
} ) ;
220
220
221
+ describe ( 'handler namespace' , ( ) => {
222
+ describe ( '#onWrite()' , ( ) => {
223
+ it ( 'correctly sets trigger to {}' , ( ) => {
224
+ let cf = functions . handler . database . ref . onWrite ( ( ) => null ) ;
225
+ expect ( cf . __trigger ) . to . deep . equal ( { } ) ;
226
+ } ) ;
227
+
228
+ it ( 'should be able to use the instance entry point' , ( ) => {
229
+ let func = functions . handler . database . instance . ref . onWrite ( ( ) => null ) ;
230
+ expect ( func . __trigger ) . to . deep . equal ( { } ) ;
231
+ } ) ;
232
+
233
+ it ( 'should return a handler that emits events with a proper DataSnapshot' , ( ) => {
234
+ let handler = functions . handler . database . ref . onWrite ( change => {
235
+ return expect ( change . after . val ( ) ) . to . deep . equal ( { foo : 'bar' } ) ;
236
+ } ) ;
237
+
238
+ return handler ( {
239
+ data : {
240
+ data : null ,
241
+ delta : { foo : 'bar' } ,
242
+ } ,
243
+ resource : 'projects/_/instances/subdomains/refs/users' ,
244
+ eventType : 'providers/google.firebase.database/eventTypes/ref.write' ,
245
+ } ) ;
246
+ } ) ;
247
+ } ) ;
248
+
249
+ describe ( '#onCreate()' , ( ) => {
250
+ it ( 'correctly sets trigger to {}' , ( ) => {
251
+ let cf = functions . handler . database . ref . onCreate ( ( ) => null ) ;
252
+ return expect ( cf . __trigger ) . to . deep . equal ( { } ) ;
253
+ } ) ;
254
+
255
+ it ( 'should be able to use the instance entry point' , ( ) => {
256
+ let func = functions . handler . database . instance . ref . onCreate ( ( ) => null ) ;
257
+ expect ( func . __trigger ) . to . deep . equal ( { } ) ;
258
+ } ) ;
259
+
260
+ it ( 'should return a handler that emits events with a proper DataSnapshot' , ( ) => {
261
+ let handler = functions . handler . database . ref . onCreate ( data => {
262
+ return expect ( data . val ( ) ) . to . deep . equal ( { foo : 'bar' } ) ;
263
+ } ) ;
264
+
265
+ return handler ( {
266
+ data : {
267
+ data : null ,
268
+ delta : { foo : 'bar' } ,
269
+ } ,
270
+ resource : 'projects/_/instances/subdomains/refs/users' ,
271
+ eventType : 'providers/google.firebase.database/eventTypes/ref.create' ,
272
+ } ) ;
273
+ } ) ;
274
+ } ) ;
275
+
276
+ describe ( '#onUpdate()' , ( ) => {
277
+ it ( 'correctly sets trigger to {}' , ( ) => {
278
+ let cf = functions . handler . database . ref . onUpdate ( ( ) => null ) ;
279
+ return expect ( cf . __trigger ) . to . deep . equal ( { } ) ;
280
+ } ) ;
281
+
282
+ it ( 'should be able to use the instance entry point' , ( ) => {
283
+ let func = functions . handler . database . instance . ref . onUpdate ( ( ) => null ) ;
284
+ expect ( func . __trigger ) . to . deep . equal ( { } ) ;
285
+ } ) ;
286
+
287
+ it ( 'should return a handler that emits events with a proper DataSnapshot' , ( ) => {
288
+ let handler = functions . handler . database . ref . onUpdate ( change => {
289
+ return expect ( change . after . val ( ) ) . to . deep . equal ( { foo : 'bar' } ) ;
290
+ } ) ;
291
+
292
+ return handler ( {
293
+ data : {
294
+ data : null ,
295
+ delta : { foo : 'bar' } ,
296
+ } ,
297
+ resource : 'projects/_/instances/subdomains/refs/users' ,
298
+ eventType : 'providers/google.firebase.database/eventTypes/ref.update' ,
299
+ } ) ;
300
+ } ) ;
301
+ } ) ;
302
+
303
+ describe ( '#onDelete()' , ( ) => {
304
+ it ( 'correctly sets trigger to {}' , ( ) => {
305
+ let cf = functions . handler . database . ref . onDelete ( ( ) => null ) ;
306
+ return expect ( cf . __trigger ) . to . deep . equal ( { } ) ;
307
+ } ) ;
308
+
309
+ it ( 'should be able to use the instance entry point' , ( ) => {
310
+ let func = functions . handler . database . instance . ref . onDelete ( ( ) => null ) ;
311
+ expect ( func . __trigger ) . to . deep . equal ( { } ) ;
312
+ } ) ;
313
+
314
+ it ( 'should return a handler that emits events with a proper DataSnapshot' , ( ) => {
315
+ let handler = functions . handler . database . ref . onDelete ( data => {
316
+ return expect ( data . val ( ) ) . to . deep . equal ( { foo : 'bar' } ) ;
317
+ } ) ;
318
+
319
+ return handler ( {
320
+ data : {
321
+ data : { foo : 'bar' } ,
322
+ delta : null ,
323
+ } ,
324
+ resource : 'projects/_/instances/subdomains/refs/users' ,
325
+ eventType : 'providers/google.firebase.database/eventTypes/ref.delete' ,
326
+ } ) ;
327
+ } ) ;
328
+ } ) ;
329
+ } ) ;
330
+
221
331
describe ( 'process.env.FIREBASE_CONFIG not set' , ( ) => {
222
332
it ( 'should not throw if __trigger is not accessed' , ( ) => {
223
333
expect ( ( ) => database . ref ( '/path' ) . onWrite ( ( ) => null ) ) . to . not . throw (
0 commit comments