@@ -218,6 +218,116 @@ describe('Database Functions', () => {
218218 } ) ;
219219 } ) ;
220220
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+
221331 describe ( 'process.env.FIREBASE_CONFIG not set' , ( ) => {
222332 it ( 'should not throw if __trigger is not accessed' , ( ) => {
223333 expect ( ( ) => database . ref ( '/path' ) . onWrite ( ( ) => null ) ) . to . not . throw (
0 commit comments