Skip to content

Commit 9e08172

Browse files
committed
WIP: fix several code signature problems, add test files
1 parent 1223678 commit 9e08172

File tree

8 files changed

+792
-42
lines changed

8 files changed

+792
-42
lines changed

src/database/api/Query.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,10 @@ export class Query {
217217
* @param context
218218
* @return {!firebase.Promise}
219219
*/
220-
once(eventType: string, userCallback?: (a: DataSnapshot, b?: string) => any,
221-
cancelOrContext?, context?: Object) {
220+
once(eventType: string,
221+
userCallback?: (a: DataSnapshot, b?: string) => any,
222+
cancelOrContext?,
223+
context?: Object): Promise<DataSnapshot> {
222224
validateArgCount('Query.once', 1, 4, arguments.length);
223225
validateEventType('Query.once', 1, eventType, false);
224226
validateCallback('Query.once', 2, userCallback, true);

src/database/api/onDisconnect.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -26,70 +26,70 @@ export class OnDisconnect {
2626
}
2727

2828
/**
29-
* @param {function(?Error)=} opt_onComplete
29+
* @param {function(?Error)=} onComplete
3030
* @return {!firebase.Promise}
3131
*/
32-
cancel(opt_onComplete) {
32+
cancel(onComplete?) {
3333
validateArgCount('OnDisconnect.cancel', 0, 1, arguments.length);
34-
validateCallback('OnDisconnect.cancel', 1, opt_onComplete, true);
34+
validateCallback('OnDisconnect.cancel', 1, onComplete, true);
3535
const deferred = new Deferred();
36-
this.repo_.onDisconnectCancel(this.path_, deferred.wrapCallback(opt_onComplete));
36+
this.repo_.onDisconnectCancel(this.path_, deferred.wrapCallback(onComplete));
3737
return deferred.promise;
3838
}
3939

4040
/**
41-
* @param {function(?Error)=} opt_onComplete
41+
* @param {function(?Error)=} onComplete
4242
* @return {!firebase.Promise}
4343
*/
44-
remove(opt_onComplete) {
44+
remove(onComplete?) {
4545
validateArgCount('OnDisconnect.remove', 0, 1, arguments.length);
4646
validateWritablePath('OnDisconnect.remove', this.path_);
47-
validateCallback('OnDisconnect.remove', 1, opt_onComplete, true);
47+
validateCallback('OnDisconnect.remove', 1, onComplete, true);
4848
const deferred = new Deferred();
49-
this.repo_.onDisconnectSet(this.path_, null, deferred.wrapCallback(opt_onComplete));
49+
this.repo_.onDisconnectSet(this.path_, null, deferred.wrapCallback(onComplete));
5050
return deferred.promise;
5151
}
5252

5353
/**
5454
* @param {*} value
55-
* @param {function(?Error)=} opt_onComplete
55+
* @param {function(?Error)=} onComplete
5656
* @return {!firebase.Promise}
5757
*/
58-
set(value, opt_onComplete) {
58+
set(value, onComplete?) {
5959
validateArgCount('OnDisconnect.set', 1, 2, arguments.length);
6060
validateWritablePath('OnDisconnect.set', this.path_);
6161
validateFirebaseDataArg('OnDisconnect.set', 1, value, this.path_, false);
62-
validateCallback('OnDisconnect.set', 2, opt_onComplete, true);
62+
validateCallback('OnDisconnect.set', 2, onComplete, true);
6363
const deferred = new Deferred();
64-
this.repo_.onDisconnectSet(this.path_, value, deferred.wrapCallback(opt_onComplete));
64+
this.repo_.onDisconnectSet(this.path_, value, deferred.wrapCallback(onComplete));
6565
return deferred.promise;
6666
}
6767

6868
/**
6969
* @param {*} value
7070
* @param {number|string|null} priority
71-
* @param {function(?Error)=} opt_onComplete
71+
* @param {function(?Error)=} onComplete
7272
* @return {!firebase.Promise}
7373
*/
74-
setWithPriority(value, priority, opt_onComplete) {
74+
setWithPriority(value, priority, onComplete?) {
7575
validateArgCount('OnDisconnect.setWithPriority', 2, 3, arguments.length);
7676
validateWritablePath('OnDisconnect.setWithPriority', this.path_);
7777
validateFirebaseDataArg('OnDisconnect.setWithPriority',
7878
1, value, this.path_, false);
7979
validatePriority('OnDisconnect.setWithPriority', 2, priority, false);
80-
validateCallback('OnDisconnect.setWithPriority', 3, opt_onComplete, true);
80+
validateCallback('OnDisconnect.setWithPriority', 3, onComplete, true);
8181

8282
const deferred = new Deferred();
83-
this.repo_.onDisconnectSetWithPriority(this.path_, value, priority, deferred.wrapCallback(opt_onComplete));
83+
this.repo_.onDisconnectSetWithPriority(this.path_, value, priority, deferred.wrapCallback(onComplete));
8484
return deferred.promise;
8585
}
8686

8787
/**
8888
* @param {!Object} objectToMerge
89-
* @param {function(?Error)=} opt_onComplete
89+
* @param {function(?Error)=} onComplete
9090
* @return {!firebase.Promise}
9191
*/
92-
update(objectToMerge, opt_onComplete) {
92+
update(objectToMerge, onComplete?) {
9393
validateArgCount('OnDisconnect.update', 1, 2, arguments.length);
9494
validateWritablePath('OnDisconnect.update', this.path_);
9595
if (Array.isArray(objectToMerge)) {
@@ -105,9 +105,9 @@ export class OnDisconnect {
105105
}
106106
validateFirebaseMergeDataArg('OnDisconnect.update', 1, objectToMerge,
107107
this.path_, false);
108-
validateCallback('OnDisconnect.update', 2, opt_onComplete, true);
108+
validateCallback('OnDisconnect.update', 2, onComplete, true);
109109
const deferred = new Deferred();
110-
this.repo_.onDisconnectUpdate(this.path_, objectToMerge, deferred.wrapCallback(opt_onComplete));
110+
this.repo_.onDisconnectUpdate(this.path_, objectToMerge, deferred.wrapCallback(onComplete));
111111
return deferred.promise;
112112
}
113113
}

tests/database/connection.test.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,8 @@
11
import { expect } from "chai";
2-
import { ConnectionTarget } from "../../src/database/api/test_access";
3-
import { TEST_PROJECT } from "./helpers/util";
2+
import { TEST_PROJECT, testRepoInfo } from "./helpers/util";
43
import { Connection } from "../../src/database/realtime/Connection";
54

65
describe('Connection', () => {
7-
function testRepoInfo(url) {
8-
const regex = /https:\/\/(.*).firebaseio.com/;
9-
const match = url.match(regex);
10-
if (!match) throw new Error('Couldnt get Namespace from passed URL');
11-
const [,ns] = match;
12-
return new ConnectionTarget(`${ns}.firebaseio.com`, false, ns, false);
13-
}
146
it('return the session id', function(done) {
157
new Connection('1',
168
testRepoInfo(TEST_PROJECT.databaseURL),

tests/database/helpers/events.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ function rawPath(firebaseRef) {
3131
* @param {string=} opt_helperName
3232
* @return {{waiter: waiter, watchesInitializedWaiter: watchesInitializedWaiter, unregister: unregister, addExpectedEvents: addExpectedEvents}}
3333
*/
34-
export function eventTestHelper(pathAndEvents, helperName?, eventAccumulator?: EventAccumulator | EventAccumulator[]) {
34+
export function eventTestHelper(pathAndEvents, helperName?) {
3535
var expectedPathAndEvents = [];
3636
var actualPathAndEvents = [];
3737
var pathEventListeners = {};
@@ -46,16 +46,6 @@ export function eventTestHelper(pathAndEvents, helperName?, eventAccumulator?: E
4646
// Get the ref of where the snapshot came from.
4747
var ref = type === 'value' ? snap.ref : snap.ref.parent;
4848

49-
if (eventAccumulator) {
50-
if (Array.isArray(eventAccumulator)) {
51-
eventAccumulator.forEach(ea => {
52-
ea.addEvent();
53-
})
54-
} else {
55-
eventAccumulator.addEvent();
56-
}
57-
}
58-
5949
actualPathAndEvents.push([rawPath(ref), [type, snap.key]]);
6050

6151
if (!pathEventListeners[ref].initialized) {

tests/database/helpers/util.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import '../../../src/database';
44
import { Reference } from "../../../src/database/api/Reference";
55
import { Query } from "../../../src/database/api/Query";
66
import { expect } from "chai";
7+
import { ConnectionTarget } from "../../../src/database/api/test_access";
8+
79

810
export const TEST_PROJECT = require('../../config/project.json');
911

@@ -211,3 +213,11 @@ export function buildObjFromKey(key) {
211213
}
212214
return obj;
213215
};
216+
217+
export function testRepoInfo(url) {
218+
const regex = /https:\/\/(.*).firebaseio.com/;
219+
const match = url.match(regex);
220+
if (!match) throw new Error('Couldnt get Namespace from passed URL');
221+
const [,ns] = match;
222+
return new ConnectionTarget(`${ns}.firebaseio.com`, false, ns, false);
223+
}

0 commit comments

Comments
 (0)