UNPKG

fireproof

Version:
154 lines (104 loc) 2.89 kB
'use strict'; describe('onDisconnect', function() { var fireproof; beforeEach(function() { fireproof = new Fireproof(firebase); }); describe('#set', function() { it('promises to set the ref to the specified value on disconnect', function(done) { fireproof .child('odSet') .onDisconnect() .set(true) .then(function() { Firebase.goOffline(); Firebase.goOnline(); return fireproof.child('odSet'); }) .then(function(snap) { expect(snap.val()).to.equal(true); }) .then(done, done); }); }); describe('#remove', function() { it('promises to remove the data at specified ref on disconnect', function(done) { fireproof .child('odSet') .onDisconnect() .remove() .then(function() { Firebase.goOffline(); Firebase.goOnline(); return fireproof.child('odSet'); }) .then(function(snap) { expect(snap.val()).to.equal(null); }) .then(done, done); }); }); describe('#setWithPriority', function() { it('promises to set the ref to a value/priority on disconnect', function(done) { fireproof .child('odSet') .onDisconnect() .setWithPriority(true, 5) .then(function() { Firebase.goOffline(); Firebase.goOnline(); return fireproof.child('odSet'); }) .then(function(snap) { expect(snap.val()).to.equal(true); expect(snap.getPriority()).to.equal(5); }) .then(done, done); }); }); describe('#update', function() { it('promises to update the ref with the given values on disconnect', function(done) { fireproof .child('odUpdate') .set({ foo: 'bar', baz: 'quux' }) .then(function() { return fireproof .child('odUpdate') .onDisconnect() .update({ baz: 'bells', whistles: true }); }) .then(function() { Firebase.goOffline(); Firebase.goOnline(); return fireproof.child('odUpdate'); }) .then(function(snap) { expect(snap.val()).to.deep.equal({ foo: 'bar', baz: 'bells', whistles: true }); }) .then(done, done); }); }); describe('#cancel', function() { it('promises to cancel all onDisconnect operations at the ref', function(done) { fireproof.child('odCancel') .onDisconnect().set({ foo: 'bar '}) .then(function() { return fireproof.child('odCancel') .onDisconnect().cancel(); }) .then(function() { Firebase.goOffline(); Firebase.goOnline(); return fireproof.child('odCancel'); }) .then(function(snap) { expect(snap.val()).to.equal(null); }) .then(done, done); }); }); });