[tests][database] more snapshot tests

This commit is contained in:
Salakar 2018-04-22 02:04:18 +01:00
parent 41da682c65
commit 093280c732
2 changed files with 61 additions and 88 deletions

View File

@ -1,19 +1,18 @@
const { setDatabaseContents } = TestHelpers.database;
// TODO use testRunId in refs to prevent multiple test instances interfering with each other
describe('database()', () => {
describe('Snapshot', () => {
before(() => setDatabaseContents());
it('should provide a functioning val() method', async () => {
const { Array } = bridge.context.window;
const snapshot = await firebase
.database()
.ref('tests/types/array')
.once('value');
snapshot.val.should.be.a.Function();
// eslint-disable-next-line
snapshot.val().should.eql(new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9));
snapshot.val().should.eql(bridge.Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]));
});
it('should provide a functioning child() method', async () => {
@ -32,100 +31,74 @@ describe('database()', () => {
});
// TODO refactor
// it('should provide a functioning hasChild() method', () =>
// new Promise((resolve, reject) => {
// const successCb = tryCatch(snapshot => {
// snapshot.hasChild.should.be.a.Function();
// snapshot.hasChild('foo').should.equal(true);
// snapshot.hasChild('baz').should.equal(false);
// resolve();
// }, reject);
it('should provide a functioning hasChild() method', async () => {
const snapshot = await firebase
.database()
.ref('tests/types/object')
.once('value');
// firebase
// .database()
// .ref('tests/types/object')
// .once('value', successCb, reject);
// }));
snapshot.hasChild.should.be.a.Function();
snapshot.hasChild('foo').should.equal(true);
snapshot.hasChild('baz').should.equal(false);
});
// it('should provide a functioning hasChildren() method', () =>
// new Promise((resolve, reject) => {
// const successCb = tryCatch(snapshot => {
// snapshot.hasChildren.should.be.a.Function();
// snapshot.hasChildren().should.equal(true);
// snapshot
// .child('foo')
// .hasChildren()
// .should.equal(false);
// resolve();
// }, reject);
it('should provide a functioning hasChildren() method', async () => {
const snapshot = await firebase
.database()
.ref('tests/types/object')
.once('value');
// firebase
// .database()
// .ref('tests/types/object')
// .once('value', successCb, reject);
// }));
snapshot.hasChildren.should.be.a.Function();
snapshot.hasChildren().should.equal(true);
snapshot
.child('foo')
.hasChildren()
.should.equal(false);
});
// it('should provide a functioning exists() method', () =>
// new Promise((resolve, reject) => {
// const successCb = tryCatch(snapshot => {
// snapshot.exists.should.be.a.Function();
// snapshot.exists().should.equal(false);
// resolve();
// }, reject);
it('should provide a functioning exists() method', async () => {
const snapshot = await firebase
.database()
.ref('tests/types/object/baz/daz')
.once('value');
// firebase
// .database()
// .ref('tests/types/object/baz/daz')
// .once('value', successCb, reject);
// }));
snapshot.exists.should.be.a.Function();
snapshot.exists().should.equal(false);
});
// it('should provide a functioning getPriority() method', () =>
// new Promise((resolve, reject) => {
// const successCb = tryCatch(snapshot => {
// snapshot.getPriority.should.be.a.Function();
// snapshot.getPriority().should.equal(666);
// snapshot.val().should.eql({ foo: 'bar' });
// resolve();
// }, reject);
it('should provide a functioning getPriority() method', async () => {
const ref = firebase.database().ref('tests/priority');
const snapshot = await ref.once('value');
snapshot.getPriority.should.be.a.Function();
snapshot.getPriority().should.equal(666);
snapshot.val().should.eql(bridge.Object({ foo: 'bar' }));
});
// const ref = firebase.database().ref('tests/priority');
// ref.once('value', successCb, reject);
// }));
it('should provide a functioning forEach() method', async () => {
const snapshot = await firebase
.database()
.ref('tests/types/array')
.once('value');
// it('should provide a functioning forEach() method', () =>
// // TODO this doesn't really test that the key order returned is in correct order
// new Promise((resolve, reject) => {
// const successCb = tryCatch(snapshot => {
// let total = 0;
// snapshot.forEach.should.be.a.Function();
// snapshot.forEach(childSnapshot => {
// const val = childSnapshot.val();
// total += val;
// return val === 3; // stop iteration after key 3
// });
let total = 0;
snapshot.forEach.should.be.a.Function();
snapshot.forEach(childSnapshot => {
const val = childSnapshot.val();
total += val;
return val === 3; // stop iteration after key 3
});
// total.should.equal(6); // 0 + 1 + 2 + 3 = 6
// resolve();
// }, reject);
total.should.equal(6); // 0 + 1 + 2 + 3 = 6
});
// firebase
// .database()
// .ref('tests/types/array')
// .once('value', successCb, reject);
// }));
it('should provide a key property', async () => {
const snapshot = await firebase
.database()
.ref('tests/types/array')
.once('value');
// it('should provide a key property', () =>
// new Promise((resolve, reject) => {
// const successCb = tryCatch(snapshot => {
// snapshot.key.should.be.a.String();
// snapshot.key.should.equal('array');
// resolve();
// }, reject);
// firebase
// .database()
// .ref('tests/types/array')
// .once('value', successCb, reject);
// }));
snapshot.key.should.be.a.String();
snapshot.key.should.equal('array');
});
});
});

View File

@ -1,8 +1,8 @@
const { setDatabaseContents } = TestHelpers.database;
// TODO use testRunId in refs to prevent multiple test instances interfering with each other
describe('database()', () => {
before(() => setDatabaseContents());
// TODO use testRunId in refs to prevent multiple test instances interfering with each other
describe('ref.transaction()', () => {
it('increments a value', async () => {
let valueBefore = 1;