@dereekb/firebase 2.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/package.json +24 -9
- package/src/index.d.ts +0 -1
- package/src/index.js +1 -2
- package/src/index.js.map +1 -1
- package/src/lib/client/firestore/driver.accessor.batch.d.ts +31 -0
- package/src/lib/{firestore/accessor.batch.js → client/firestore/driver.accessor.batch.js} +22 -4
- package/src/lib/client/firestore/driver.accessor.batch.js.map +1 -0
- package/src/lib/client/firestore/driver.accessor.d.ts +2 -0
- package/src/lib/{firestore/accessor.default.d.ts → client/firestore/driver.accessor.default.d.ts} +4 -11
- package/src/lib/{firestore/accessor.default.js → client/firestore/driver.accessor.default.js} +17 -13
- package/src/lib/client/firestore/driver.accessor.default.js.map +1 -0
- package/src/lib/client/firestore/driver.accessor.js +23 -0
- package/src/lib/client/firestore/driver.accessor.js.map +1 -0
- package/src/lib/client/firestore/driver.accessor.transaction.d.ts +31 -0
- package/src/lib/{firestore/accessor.transaction.js → client/firestore/driver.accessor.transaction.js} +22 -4
- package/src/lib/client/firestore/driver.accessor.transaction.js.map +1 -0
- package/src/lib/client/firestore/driver.d.ts +4 -0
- package/src/lib/client/firestore/driver.js +15 -0
- package/src/lib/client/firestore/driver.js.map +1 -0
- package/src/lib/client/firestore/driver.query.d.ts +13 -0
- package/src/lib/client/firestore/driver.query.js +47 -0
- package/src/lib/client/firestore/driver.query.js.map +1 -0
- package/src/lib/client/firestore/firestore.d.ts +5 -0
- package/src/lib/client/firestore/firestore.js +10 -0
- package/src/lib/client/firestore/firestore.js.map +1 -0
- package/src/lib/client/firestore/index.d.ts +4 -0
- package/src/lib/client/firestore/index.js +8 -0
- package/src/lib/client/firestore/index.js.map +1 -0
- package/src/lib/client/function/function.d.ts +28 -0
- package/src/lib/client/function/function.factory.d.ts +40 -0
- package/src/lib/client/function/function.factory.js +36 -0
- package/src/lib/client/function/function.factory.js.map +1 -0
- package/src/lib/client/function/function.js +3 -0
- package/src/lib/client/function/function.js.map +1 -0
- package/src/lib/client/function/index.d.ts +2 -0
- package/src/lib/client/function/index.js +6 -0
- package/src/lib/client/function/index.js.map +1 -0
- package/src/lib/client/index.d.ts +2 -0
- package/src/lib/client/index.js +6 -0
- package/src/lib/client/index.js.map +1 -0
- package/src/lib/common/auth/auth.d.ts +4 -0
- package/src/lib/common/auth/auth.js +3 -0
- package/src/lib/common/auth/auth.js.map +1 -0
- package/src/lib/common/auth/index.d.ts +1 -0
- package/src/lib/common/auth/index.js +5 -0
- package/src/lib/common/auth/index.js.map +1 -0
- package/src/lib/common/firestore/accessor/accessor.batch.d.ts +3 -0
- package/src/lib/common/firestore/accessor/accessor.batch.js +3 -0
- package/src/lib/common/firestore/accessor/accessor.batch.js.map +1 -0
- package/src/lib/common/firestore/accessor/accessor.d.ts +87 -0
- package/src/lib/common/firestore/accessor/accessor.default.d.ts +2 -0
- package/src/lib/common/firestore/accessor/accessor.default.js +3 -0
- package/src/lib/common/firestore/accessor/accessor.default.js.map +1 -0
- package/src/lib/{firestore → common/firestore/accessor}/accessor.js +17 -1
- package/src/lib/common/firestore/accessor/accessor.js.map +1 -0
- package/src/lib/common/firestore/accessor/accessor.transaction.d.ts +3 -0
- package/src/lib/common/firestore/accessor/accessor.transaction.js +3 -0
- package/src/lib/common/firestore/accessor/accessor.transaction.js.map +1 -0
- package/src/lib/common/firestore/accessor/context.batch.d.ts +7 -0
- package/src/lib/common/firestore/accessor/context.batch.js +3 -0
- package/src/lib/common/firestore/accessor/context.batch.js.map +1 -0
- package/src/lib/{firestore → common/firestore/accessor}/context.d.ts +0 -0
- package/src/lib/common/firestore/accessor/context.default.d.ts +5 -0
- package/src/lib/common/firestore/accessor/context.default.js +3 -0
- package/src/lib/common/firestore/accessor/context.default.js.map +1 -0
- package/src/lib/{firestore → common/firestore/accessor}/context.js +0 -0
- package/src/lib/common/firestore/accessor/context.js.map +1 -0
- package/src/lib/common/firestore/accessor/context.transaction.d.ts +7 -0
- package/src/lib/common/firestore/accessor/context.transaction.js +3 -0
- package/src/lib/common/firestore/accessor/context.transaction.js.map +1 -0
- package/src/lib/common/firestore/accessor/document.d.ts +121 -0
- package/src/lib/common/firestore/accessor/document.js +106 -0
- package/src/lib/common/firestore/accessor/document.js.map +1 -0
- package/src/lib/common/firestore/accessor/document.utility.d.ts +43 -0
- package/src/lib/common/firestore/accessor/document.utility.js +74 -0
- package/src/lib/common/firestore/accessor/document.utility.js.map +1 -0
- package/src/lib/{firestore → common/firestore/accessor}/index.d.ts +3 -5
- package/src/lib/common/firestore/accessor/index.js +14 -0
- package/src/lib/common/firestore/accessor/index.js.map +1 -0
- package/src/lib/common/firestore/collection/collection.d.ts +27 -0
- package/src/lib/common/firestore/collection/collection.js +26 -0
- package/src/lib/common/firestore/collection/collection.js.map +1 -0
- package/src/lib/common/firestore/collection/collection.query.d.ts +36 -0
- package/src/lib/common/firestore/collection/collection.query.js +27 -0
- package/src/lib/common/firestore/collection/collection.query.js.map +1 -0
- package/src/lib/common/firestore/collection/index.d.ts +3 -0
- package/src/lib/common/firestore/collection/index.js +7 -0
- package/src/lib/common/firestore/collection/index.js.map +1 -0
- package/src/lib/common/firestore/collection/subcollection.d.ts +25 -0
- package/src/lib/common/firestore/collection/subcollection.js +14 -0
- package/src/lib/common/firestore/collection/subcollection.js.map +1 -0
- package/src/lib/common/firestore/collection/subcollection.single.d.ts +12 -0
- package/src/lib/common/firestore/collection/subcollection.single.js +14 -0
- package/src/lib/common/firestore/collection/subcollection.single.js.map +1 -0
- package/src/lib/common/firestore/context.d.ts +36 -0
- package/src/lib/common/firestore/context.js +36 -0
- package/src/lib/common/firestore/context.js.map +1 -0
- package/src/lib/common/firestore/driver/accessor.d.ts +26 -0
- package/src/lib/common/firestore/driver/accessor.js +3 -0
- package/src/lib/common/firestore/driver/accessor.js.map +1 -0
- package/src/lib/common/firestore/driver/batch.d.ts +22 -0
- package/src/lib/common/firestore/driver/batch.js +3 -0
- package/src/lib/common/firestore/driver/batch.js.map +1 -0
- package/src/lib/common/firestore/driver/driver.d.ts +11 -0
- package/src/lib/common/firestore/driver/driver.js +3 -0
- package/src/lib/common/firestore/driver/driver.js.map +1 -0
- package/src/lib/common/firestore/driver/index.d.ts +6 -0
- package/src/lib/common/firestore/driver/index.js +10 -0
- package/src/lib/common/firestore/driver/index.js.map +1 -0
- package/src/lib/common/firestore/driver/query.d.ts +31 -0
- package/src/lib/common/firestore/driver/query.handler.d.ts +9 -0
- package/src/lib/common/firestore/driver/query.handler.js +26 -0
- package/src/lib/common/firestore/driver/query.handler.js.map +1 -0
- package/src/lib/common/firestore/driver/query.js +3 -0
- package/src/lib/common/firestore/driver/query.js.map +1 -0
- package/src/lib/common/firestore/driver/transaction.d.ts +23 -0
- package/src/lib/common/firestore/driver/transaction.js +3 -0
- package/src/lib/common/firestore/driver/transaction.js.map +1 -0
- package/src/lib/common/firestore/index.d.ts +8 -0
- package/src/lib/common/firestore/index.js +12 -0
- package/src/lib/common/firestore/index.js.map +1 -0
- package/src/lib/common/firestore/query/accumulator.d.ts +24 -0
- package/src/lib/common/firestore/query/accumulator.js +22 -0
- package/src/lib/common/firestore/query/accumulator.js.map +1 -0
- package/src/lib/common/firestore/query/constraint.d.ts +112 -0
- package/src/lib/common/firestore/query/constraint.js +133 -0
- package/src/lib/common/firestore/query/constraint.js.map +1 -0
- package/src/lib/common/firestore/query/index.d.ts +6 -0
- package/src/lib/common/firestore/query/index.js +10 -0
- package/src/lib/common/firestore/query/index.js.map +1 -0
- package/src/lib/{firestore → common/firestore/query}/iterator.d.ts +37 -11
- package/src/lib/common/firestore/query/iterator.js +108 -0
- package/src/lib/common/firestore/query/iterator.js.map +1 -0
- package/src/lib/common/firestore/query/query.d.ts +49 -0
- package/src/lib/common/firestore/query/query.js +37 -0
- package/src/lib/common/firestore/query/query.js.map +1 -0
- package/src/lib/common/firestore/query/query.util.d.ts +16 -0
- package/src/lib/common/firestore/query/query.util.js +27 -0
- package/src/lib/common/firestore/query/query.util.js.map +1 -0
- package/src/lib/common/firestore/query/watcher.d.ts +34 -0
- package/src/lib/common/firestore/query/watcher.js +58 -0
- package/src/lib/common/firestore/query/watcher.js.map +1 -0
- package/src/lib/common/firestore/reference.d.ts +20 -0
- package/src/lib/{firestore → common/firestore}/reference.js +0 -0
- package/src/lib/common/firestore/reference.js.map +1 -0
- package/src/lib/common/firestore/snapshot/index.d.ts +2 -0
- package/src/lib/common/firestore/snapshot/index.js +6 -0
- package/src/lib/common/firestore/snapshot/index.js.map +1 -0
- package/src/lib/common/firestore/snapshot/snapshot.d.ts +13 -0
- package/src/lib/common/firestore/snapshot/snapshot.field.d.ts +25 -0
- package/src/lib/common/firestore/snapshot/snapshot.field.js +57 -0
- package/src/lib/common/firestore/snapshot/snapshot.field.js.map +1 -0
- package/src/lib/common/firestore/snapshot/snapshot.js +35 -0
- package/src/lib/common/firestore/snapshot/snapshot.js.map +1 -0
- package/src/lib/common/firestore/types.d.ts +145 -0
- package/src/lib/common/firestore/types.js +23 -0
- package/src/lib/common/firestore/types.js.map +1 -0
- package/src/lib/common/function/action.d.ts +3 -0
- package/src/lib/common/function/action.js +3 -0
- package/src/lib/common/function/action.js.map +1 -0
- package/src/lib/common/function/index.d.ts +1 -0
- package/src/lib/common/function/index.js +5 -0
- package/src/lib/common/function/index.js.map +1 -0
- package/src/lib/common/index.d.ts +3 -0
- package/src/lib/common/index.js +7 -0
- package/src/lib/common/index.js.map +1 -0
- package/src/lib/index.d.ts +3 -1
- package/src/lib/index.js +3 -1
- package/src/lib/index.js.map +1 -1
- package/src/lib/model/index.d.ts +1 -0
- package/src/lib/model/index.js +5 -0
- package/src/lib/model/index.js.map +1 -0
- package/src/lib/model/user.d.ts +12 -0
- package/src/lib/model/user.js +3 -0
- package/src/lib/model/user.js.map +1 -0
- package/test/CHANGELOG.md +5 -0
- package/test/README.md +11 -0
- package/test/package.json +28 -0
- package/test/src/index.d.ts +1 -0
- package/test/src/index.js +5 -0
- package/test/src/index.js.map +1 -0
- package/test/src/lib/client/firestore.authorized.d.ts +5 -0
- package/{src/test/firebase.context.js → test/src/lib/client/firestore.authorized.js} +4 -4
- package/test/src/lib/client/firestore.authorized.js.map +1 -0
- package/test/src/lib/client/firestore.d.ts +39 -0
- package/test/src/lib/client/firestore.js +90 -0
- package/test/src/lib/client/firestore.js.map +1 -0
- package/test/src/lib/client/firestore.mock.item.fixture.authorized.d.ts +6 -0
- package/test/src/lib/client/firestore.mock.item.fixture.authorized.js +12 -0
- package/test/src/lib/client/firestore.mock.item.fixture.authorized.js.map +1 -0
- package/test/src/lib/client/index.d.ts +3 -0
- package/test/src/lib/client/index.js +7 -0
- package/test/src/lib/client/index.js.map +1 -0
- package/test/src/lib/common/firestore.d.ts +35 -0
- package/test/src/lib/common/firestore.js +50 -0
- package/test/src/lib/common/firestore.js.map +1 -0
- package/test/src/lib/common/firestore.mock.d.ts +14 -0
- package/test/src/lib/common/firestore.mock.item.d.ts +95 -0
- package/test/src/lib/common/firestore.mock.item.fixture.d.ts +21 -0
- package/test/src/lib/common/firestore.mock.item.fixture.js +43 -0
- package/test/src/lib/common/firestore.mock.item.fixture.js.map +1 -0
- package/test/src/lib/common/firestore.mock.item.js +138 -0
- package/test/src/lib/common/firestore.mock.item.js.map +1 -0
- package/test/src/lib/common/firestore.mock.item.query.d.ts +3 -0
- package/test/src/lib/common/firestore.mock.item.query.js +13 -0
- package/test/src/lib/common/firestore.mock.item.query.js.map +1 -0
- package/test/src/lib/common/firestore.mock.js +29 -0
- package/test/src/lib/common/firestore.mock.js.map +1 -0
- package/test/src/lib/common/index.d.ts +8 -0
- package/test/src/lib/common/index.js +12 -0
- package/test/src/lib/common/index.js.map +1 -0
- package/test/src/lib/common/test.driver.accessor.d.ts +17 -0
- package/test/src/lib/common/test.driver.accessor.js +278 -0
- package/test/src/lib/common/test.driver.accessor.js.map +1 -0
- package/test/src/lib/common/test.driver.query.d.ts +7 -0
- package/test/src/lib/common/test.driver.query.js +189 -0
- package/test/src/lib/common/test.driver.query.js.map +1 -0
- package/test/src/lib/common/test.iterator.d.ts +7 -0
- package/test/src/lib/common/test.iterator.js +222 -0
- package/test/src/lib/common/test.iterator.js.map +1 -0
- package/test/src/lib/index.d.ts +2 -0
- package/test/src/lib/index.js +6 -0
- package/test/src/lib/index.js.map +1 -0
- package/src/lib/firestore/accessor.batch.d.ts +0 -23
- package/src/lib/firestore/accessor.batch.js.map +0 -1
- package/src/lib/firestore/accessor.d.ts +0 -62
- package/src/lib/firestore/accessor.default.js.map +0 -1
- package/src/lib/firestore/accessor.js.map +0 -1
- package/src/lib/firestore/accessor.transaction.d.ts +0 -23
- package/src/lib/firestore/accessor.transaction.js.map +0 -1
- package/src/lib/firestore/context.batch.d.ts +0 -9
- package/src/lib/firestore/context.batch.js +0 -19
- package/src/lib/firestore/context.batch.js.map +0 -1
- package/src/lib/firestore/context.default.d.ts +0 -2
- package/src/lib/firestore/context.default.js +0 -13
- package/src/lib/firestore/context.default.js.map +0 -1
- package/src/lib/firestore/context.js.map +0 -1
- package/src/lib/firestore/context.transaction.d.ts +0 -9
- package/src/lib/firestore/context.transaction.js +0 -19
- package/src/lib/firestore/context.transaction.js.map +0 -1
- package/src/lib/firestore/document.d.ts +0 -69
- package/src/lib/firestore/document.js +0 -49
- package/src/lib/firestore/document.js.map +0 -1
- package/src/lib/firestore/firestore.d.ts +0 -29
- package/src/lib/firestore/firestore.js +0 -37
- package/src/lib/firestore/firestore.js.map +0 -1
- package/src/lib/firestore/index.js +0 -16
- package/src/lib/firestore/index.js.map +0 -1
- package/src/lib/firestore/iterator.js +0 -91
- package/src/lib/firestore/iterator.js.map +0 -1
- package/src/lib/firestore/reference.d.ts +0 -13
- package/src/lib/firestore/reference.js.map +0 -1
- package/src/test/firebase.context.d.ts +0 -5
- package/src/test/firebase.context.item.d.ts +0 -41
- package/src/test/firebase.context.item.js +0 -75
- package/src/test/firebase.context.item.js.map +0 -1
- package/src/test/firebase.context.js.map +0 -1
- package/src/test/firebase.d.ts +0 -29
- package/src/test/firebase.js +0 -67
- package/src/test/firebase.js.map +0 -1
- package/src/test/index.d.ts +0 -3
- package/src/test/index.js +0 -7
- package/src/test/index.js.map +0 -1
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeMockItemCollections = exports.MockItemCollections = exports.mockItemSubItemFirestoreCollection = exports.mockItemSubItemCollectionReferenceFactory = exports.mockItemSubItemConverter = exports.mockItemSubItemCollectionPath = exports.MockItemSubItemDocument = exports.mockItemPrivateDataFirestoreCollection = exports.mockItemPrivateDataCollectionReferenceFactory = exports.mockItemPrivateDataConverter = exports.mockItemPrivateDataIdentifier = exports.mockItemPrivateDataCollectionPath = exports.MockItemPrivateDataDocument = exports.mockItemFirestoreCollection = exports.mockItemCollectionReference = exports.mockItemConverter = exports.mockItemCollectionPath = exports.MockItemDocument = void 0;
|
|
4
|
+
const firebase_1 = require("@dereekb/firebase");
|
|
5
|
+
/**
|
|
6
|
+
* FirestoreDocument for MockItem
|
|
7
|
+
*/
|
|
8
|
+
class MockItemDocument extends firebase_1.AbstractFirestoreDocument {
|
|
9
|
+
}
|
|
10
|
+
exports.MockItemDocument = MockItemDocument;
|
|
11
|
+
/**
|
|
12
|
+
* Firestore collection path name.
|
|
13
|
+
*/
|
|
14
|
+
exports.mockItemCollectionPath = 'test';
|
|
15
|
+
/**
|
|
16
|
+
* Used to build a FirestoreDataConverter. Fields are configured via configuration. See the SnapshotConverterFunctions for more info.
|
|
17
|
+
*/
|
|
18
|
+
exports.mockItemConverter = (0, firebase_1.makeSnapshotConverterFunctions)({
|
|
19
|
+
fields: {
|
|
20
|
+
test: (0, firebase_1.firestoreBoolean)({ default: false, defaultBeforeSave: false }),
|
|
21
|
+
value: (0, firebase_1.firestoreString)()
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Used to build a mockItemCollection from a firestore instance with a converter setup.
|
|
26
|
+
*
|
|
27
|
+
* @param firestore
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
function mockItemCollectionReference(context) {
|
|
31
|
+
return context.collection(exports.mockItemCollectionPath).withConverter(exports.mockItemConverter);
|
|
32
|
+
}
|
|
33
|
+
exports.mockItemCollectionReference = mockItemCollectionReference;
|
|
34
|
+
function mockItemFirestoreCollection(firestoreContext) {
|
|
35
|
+
return firestoreContext.firestoreCollection({
|
|
36
|
+
itemsPerPage: 50,
|
|
37
|
+
collection: mockItemCollectionReference(firestoreContext),
|
|
38
|
+
makeDocument: (a, d) => new MockItemDocument(a, d),
|
|
39
|
+
firestoreContext
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
exports.mockItemFirestoreCollection = mockItemFirestoreCollection;
|
|
43
|
+
/**
|
|
44
|
+
* FirestoreDocument for MockItem
|
|
45
|
+
*/
|
|
46
|
+
class MockItemPrivateDataDocument extends firebase_1.AbstractFirestoreDocument {
|
|
47
|
+
}
|
|
48
|
+
exports.MockItemPrivateDataDocument = MockItemPrivateDataDocument;
|
|
49
|
+
/**
|
|
50
|
+
* Firestore collection path name.
|
|
51
|
+
*/
|
|
52
|
+
exports.mockItemPrivateDataCollectionPath = 'private';
|
|
53
|
+
exports.mockItemPrivateDataIdentifier = '0';
|
|
54
|
+
/**
|
|
55
|
+
* Used to build a FirestoreDataConverter. Fields are configured via configuration. See the SnapshotConverterFunctions for more info.
|
|
56
|
+
*/
|
|
57
|
+
exports.mockItemPrivateDataConverter = (0, firebase_1.makeSnapshotConverterFunctions)({
|
|
58
|
+
fields: {
|
|
59
|
+
comments: (0, firebase_1.firestoreString)(),
|
|
60
|
+
createdAt: (0, firebase_1.firestoreDate)({ saveDefaultAsNow: true })
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* Used to build a mockItemCollection from a firestore instance with a converter setup.
|
|
65
|
+
*
|
|
66
|
+
* @param firestore
|
|
67
|
+
* @returns
|
|
68
|
+
*/
|
|
69
|
+
function mockItemPrivateDataCollectionReferenceFactory(context) {
|
|
70
|
+
return (parent) => {
|
|
71
|
+
return context.subcollection(parent.documentRef, exports.mockItemPrivateDataCollectionPath).withConverter(exports.mockItemPrivateDataConverter);
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
exports.mockItemPrivateDataCollectionReferenceFactory = mockItemPrivateDataCollectionReferenceFactory;
|
|
75
|
+
function mockItemPrivateDataFirestoreCollection(firestoreContext) {
|
|
76
|
+
const factory = mockItemPrivateDataCollectionReferenceFactory(firestoreContext);
|
|
77
|
+
return (parent) => {
|
|
78
|
+
return firestoreContext.singleItemFirestoreCollection({
|
|
79
|
+
itemsPerPage: 50,
|
|
80
|
+
collection: factory(parent),
|
|
81
|
+
makeDocument: (a, d) => new MockItemPrivateDataDocument(a, d),
|
|
82
|
+
firestoreContext,
|
|
83
|
+
parent,
|
|
84
|
+
singleItemIdentifier: exports.mockItemPrivateDataIdentifier
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
exports.mockItemPrivateDataFirestoreCollection = mockItemPrivateDataFirestoreCollection;
|
|
89
|
+
/**
|
|
90
|
+
* FirestoreDocument for MockItem
|
|
91
|
+
*/
|
|
92
|
+
class MockItemSubItemDocument extends firebase_1.AbstractFirestoreDocumentWithParent {
|
|
93
|
+
}
|
|
94
|
+
exports.MockItemSubItemDocument = MockItemSubItemDocument;
|
|
95
|
+
/**
|
|
96
|
+
* Firestore collection path name.
|
|
97
|
+
*/
|
|
98
|
+
exports.mockItemSubItemCollectionPath = 'sub';
|
|
99
|
+
/**
|
|
100
|
+
* Used to build a FirestoreDataConverter. Fields are configured via configuration. See the SnapshotConverterFunctions for more info.
|
|
101
|
+
*/
|
|
102
|
+
exports.mockItemSubItemConverter = (0, firebase_1.makeSnapshotConverterFunctions)({
|
|
103
|
+
fields: {
|
|
104
|
+
value: (0, firebase_1.firestoreNumber)()
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
function mockItemSubItemCollectionReferenceFactory(context) {
|
|
108
|
+
return (parent) => {
|
|
109
|
+
return context.subcollection(parent.documentRef, exports.mockItemSubItemCollectionPath).withConverter(exports.mockItemSubItemConverter);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
exports.mockItemSubItemCollectionReferenceFactory = mockItemSubItemCollectionReferenceFactory;
|
|
113
|
+
function mockItemSubItemFirestoreCollection(firestoreContext) {
|
|
114
|
+
const factory = mockItemSubItemCollectionReferenceFactory(firestoreContext);
|
|
115
|
+
return (parent) => {
|
|
116
|
+
return firestoreContext.firestoreCollectionWithParent({
|
|
117
|
+
itemsPerPage: 50,
|
|
118
|
+
collection: factory(parent),
|
|
119
|
+
makeDocument: (a, d) => new MockItemSubItemDocument(parent.documentRef, a, d),
|
|
120
|
+
firestoreContext,
|
|
121
|
+
parent
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
exports.mockItemSubItemFirestoreCollection = mockItemSubItemFirestoreCollection;
|
|
126
|
+
// MARK: Collection
|
|
127
|
+
class MockItemCollections {
|
|
128
|
+
}
|
|
129
|
+
exports.MockItemCollections = MockItemCollections;
|
|
130
|
+
function makeMockItemCollections(firestoreContext) {
|
|
131
|
+
return {
|
|
132
|
+
mockItem: mockItemFirestoreCollection(firestoreContext),
|
|
133
|
+
mockItemPrivateData: mockItemPrivateDataFirestoreCollection(firestoreContext),
|
|
134
|
+
mockItemSubItem: mockItemSubItemFirestoreCollection(firestoreContext)
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
exports.makeMockItemCollections = makeMockItemCollections;
|
|
138
|
+
//# sourceMappingURL=firestore.mock.item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.mock.item.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/test/src/lib/common/firestore.mock.item.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mockItemWithTestValue = exports.mockItemWithValue = void 0;
|
|
4
|
+
const firebase_1 = require("@dereekb/firebase");
|
|
5
|
+
function mockItemWithValue(value) {
|
|
6
|
+
return (0, firebase_1.where)('value', '==', value);
|
|
7
|
+
}
|
|
8
|
+
exports.mockItemWithValue = mockItemWithValue;
|
|
9
|
+
function mockItemWithTestValue(test) {
|
|
10
|
+
return (0, firebase_1.where)('test', '==', test);
|
|
11
|
+
}
|
|
12
|
+
exports.mockItemWithTestValue = mockItemWithTestValue;
|
|
13
|
+
//# sourceMappingURL=firestore.mock.item.query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.mock.item.query.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/test/src/lib/common/firestore.mock.item.query.ts"],"names":[],"mappings":";;;AACA,gDAAoE;AAEpE,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,IAAA,gBAAK,EAAW,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAFD,8CAEC;AAED,SAAgB,qBAAqB,CAAC,IAAa;IACjD,OAAO,IAAA,gBAAK,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAFD,sDAEC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TestFirestoreContextFixture = exports.TestFirestoreInstance = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const test_1 = require("@dereekb/util/test");
|
|
6
|
+
class TestFirestoreInstance {
|
|
7
|
+
constructor(context) {
|
|
8
|
+
this.context = context;
|
|
9
|
+
}
|
|
10
|
+
get firestore() {
|
|
11
|
+
return this.context.firestore;
|
|
12
|
+
}
|
|
13
|
+
clearFirestore() {
|
|
14
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
// return this.context.clearFirestore();
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.TestFirestoreInstance = TestFirestoreInstance;
|
|
20
|
+
class TestFirestoreContextFixture extends test_1.AbstractJestTestContextFixture {
|
|
21
|
+
get firestore() {
|
|
22
|
+
return this.instance.firestore;
|
|
23
|
+
}
|
|
24
|
+
get context() {
|
|
25
|
+
return this.instance.context;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.TestFirestoreContextFixture = TestFirestoreContextFixture;
|
|
29
|
+
//# sourceMappingURL=firestore.mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firestore.mock.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/test/src/lib/common/firestore.mock.ts"],"names":[],"mappings":";;;;AAAA,6CAA4F;AAI5F,MAAa,qBAAqB;IAEhC,YAAqB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;IAAI,CAAC;IAEvD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IAChC,CAAC;IAEK,cAAc;;YAElB,wCAAwC;QAC1C,CAAC;KAAA;CAIF;AAfD,sDAeC;AAED,MAAa,2BAAqF,SAAQ,qCAAiC;IAEzI,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACjC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;CAEF;AAVD,kEAUC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './firestore.mock.item.fixture';
|
|
2
|
+
export * from './firestore.mock.item.query';
|
|
3
|
+
export * from './firestore.mock.item';
|
|
4
|
+
export * from './firestore.mock';
|
|
5
|
+
export * from './firestore';
|
|
6
|
+
export * from './test.driver.accessor';
|
|
7
|
+
export * from './test.driver.query';
|
|
8
|
+
export * from './test.iterator';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./firestore.mock.item.fixture"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./firestore.mock.item.query"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./firestore.mock.item"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./firestore.mock"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./firestore"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./test.driver.accessor"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./test.driver.query"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./test.iterator"), exports);
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/test/src/lib/common/index.ts"],"names":[],"mappings":";;;AAAA,wEAA8C;AAC9C,sEAA4C;AAC5C,gEAAsC;AACtC,2DAAiC;AACjC,sDAA4B;AAC5B,iEAAuC;AACvC,8DAAoC;AACpC,0DAAgC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Transaction, DocumentReference, WriteBatch, FirestoreDocumentDataAccessor, FirestoreContext, FirestoreDocument } from '@dereekb/firebase';
|
|
2
|
+
import { MockItemCollectionFixture } from "./firestore.mock.item.fixture";
|
|
3
|
+
/**
|
|
4
|
+
* Describes accessor driver tests, using a MockItemCollectionFixture.
|
|
5
|
+
*
|
|
6
|
+
* @param f
|
|
7
|
+
*/
|
|
8
|
+
export declare function describeAccessorDriverTests(f: MockItemCollectionFixture): void;
|
|
9
|
+
export interface DescribeAccessorTests<T> {
|
|
10
|
+
context: FirestoreContext;
|
|
11
|
+
accessor: FirestoreDocumentDataAccessor<any>;
|
|
12
|
+
dataForUpdate: () => Partial<T>;
|
|
13
|
+
hasDataFromUpdate: (data: T) => boolean;
|
|
14
|
+
loadDocumentForTransaction: (transaction: Transaction, ref?: DocumentReference<T>) => FirestoreDocument<T>;
|
|
15
|
+
loadDocumentForWriteBatch: (writeBatch: WriteBatch, ref?: DocumentReference<T>) => FirestoreDocument<T>;
|
|
16
|
+
}
|
|
17
|
+
export declare function describeAccessorTests<T>(init: () => DescribeAccessorTests<T>): void;
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.describeAccessorTests = exports.describeAccessorDriverTests = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const rxjs_1 = require("@dereekb/rxjs");
|
|
6
|
+
const firebase_1 = require("@dereekb/firebase");
|
|
7
|
+
/**
|
|
8
|
+
* Describes accessor driver tests, using a MockItemCollectionFixture.
|
|
9
|
+
*
|
|
10
|
+
* @param f
|
|
11
|
+
*/
|
|
12
|
+
function describeAccessorDriverTests(f) {
|
|
13
|
+
describe('FirestoreAccessorDriver', () => {
|
|
14
|
+
const testDocumentCount = 5;
|
|
15
|
+
let firestoreDocumentAccessor;
|
|
16
|
+
let items;
|
|
17
|
+
beforeEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
firestoreDocumentAccessor = f.instance.firestoreCollection.documentAccessor();
|
|
19
|
+
items = yield (0, firebase_1.makeDocuments)(f.instance.firestoreCollection.documentAccessor(), {
|
|
20
|
+
count: testDocumentCount,
|
|
21
|
+
init: (i) => {
|
|
22
|
+
return {
|
|
23
|
+
value: `${i}`,
|
|
24
|
+
test: true
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}));
|
|
29
|
+
describe('MockItem', () => {
|
|
30
|
+
let itemDocument;
|
|
31
|
+
let accessor;
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
itemDocument = items[0];
|
|
34
|
+
accessor = itemDocument.accessor;
|
|
35
|
+
});
|
|
36
|
+
describe('accessor', () => {
|
|
37
|
+
describeAccessorTests(() => ({
|
|
38
|
+
context: f.parent.context,
|
|
39
|
+
accessor,
|
|
40
|
+
dataForUpdate: () => ({ test: false }),
|
|
41
|
+
hasDataFromUpdate: (data) => (data.test === false),
|
|
42
|
+
loadDocumentForTransaction: (transaction, ref) => f.instance.firestoreCollection.documentAccessorForTransaction(transaction).loadDocument(ref),
|
|
43
|
+
loadDocumentForWriteBatch: (writeBatch, ref) => f.instance.firestoreCollection.documentAccessorForWriteBatch(writeBatch).loadDocument(ref),
|
|
44
|
+
}));
|
|
45
|
+
});
|
|
46
|
+
describe('Subcollections', () => {
|
|
47
|
+
describe('singleItemFirestoreCollection (MockItemPrivateData)', () => {
|
|
48
|
+
let mockItemPrivateDataFirestoreCollection;
|
|
49
|
+
let itemPrivateDataDocument;
|
|
50
|
+
let privateDataAccessor;
|
|
51
|
+
let privateSub;
|
|
52
|
+
beforeEach(() => {
|
|
53
|
+
mockItemPrivateDataFirestoreCollection = f.instance.collections.mockItemPrivateData(itemDocument);
|
|
54
|
+
itemPrivateDataDocument = mockItemPrivateDataFirestoreCollection.loadDocument();
|
|
55
|
+
privateDataAccessor = itemPrivateDataDocument.accessor;
|
|
56
|
+
privateSub = new rxjs_1.SubscriptionObject();
|
|
57
|
+
});
|
|
58
|
+
afterEach(() => {
|
|
59
|
+
privateSub.destroy();
|
|
60
|
+
});
|
|
61
|
+
describe('set()', () => {
|
|
62
|
+
it('should create the item', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
let exists = yield privateDataAccessor.exists();
|
|
64
|
+
expect(exists).toBe(false);
|
|
65
|
+
yield privateDataAccessor.set({});
|
|
66
|
+
exists = yield privateDataAccessor.exists();
|
|
67
|
+
expect(exists).toBe(true);
|
|
68
|
+
}));
|
|
69
|
+
});
|
|
70
|
+
describe('with item', () => {
|
|
71
|
+
beforeEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
yield privateDataAccessor.set({});
|
|
73
|
+
}));
|
|
74
|
+
describe('accessor', () => {
|
|
75
|
+
const TEST_COMMENTS = 'test';
|
|
76
|
+
describeAccessorTests(() => ({
|
|
77
|
+
context: f.parent.context,
|
|
78
|
+
accessor: privateDataAccessor,
|
|
79
|
+
dataForUpdate: () => ({ comments: TEST_COMMENTS }),
|
|
80
|
+
hasDataFromUpdate: (data) => (data.comments === TEST_COMMENTS),
|
|
81
|
+
loadDocumentForTransaction: (transaction, ref) => mockItemPrivateDataFirestoreCollection.loadDocumentForTransaction(transaction),
|
|
82
|
+
loadDocumentForWriteBatch: (writeBatch, ref) => mockItemPrivateDataFirestoreCollection.loadDocumentForWriteBatch(writeBatch),
|
|
83
|
+
}));
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe('singleItemFirestoreCollection (MockItemSubItem)', () => {
|
|
88
|
+
let mockItemSubItemFirestoreCollection;
|
|
89
|
+
let subItemAccessor;
|
|
90
|
+
beforeEach(() => {
|
|
91
|
+
mockItemSubItemFirestoreCollection = f.instance.collections.mockItemSubItem(itemDocument);
|
|
92
|
+
subItemAccessor = mockItemSubItemFirestoreCollection.documentAccessor();
|
|
93
|
+
});
|
|
94
|
+
describe('with item', () => {
|
|
95
|
+
let subItemDocument;
|
|
96
|
+
beforeEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
subItemDocument = subItemAccessor.newDocument();
|
|
98
|
+
yield subItemDocument.accessor.set({ value: 0 });
|
|
99
|
+
}));
|
|
100
|
+
describe('accessor', () => {
|
|
101
|
+
const TEST_VALUE = 1234;
|
|
102
|
+
describeAccessorTests(() => ({
|
|
103
|
+
context: f.parent.context,
|
|
104
|
+
accessor: subItemDocument.accessor,
|
|
105
|
+
dataForUpdate: () => ({ value: TEST_VALUE }),
|
|
106
|
+
hasDataFromUpdate: (data) => (data.value === TEST_VALUE),
|
|
107
|
+
loadDocumentForTransaction: (transaction, ref) => mockItemSubItemFirestoreCollection.documentAccessorForTransaction(transaction).loadDocument(ref),
|
|
108
|
+
loadDocumentForWriteBatch: (writeBatch, ref) => mockItemSubItemFirestoreCollection.documentAccessorForWriteBatch(writeBatch).loadDocument(ref),
|
|
109
|
+
}));
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('documentAccessor()', () => {
|
|
116
|
+
describe('loadDocumentForPath()', () => {
|
|
117
|
+
it('should return a document at the given path.', () => {
|
|
118
|
+
const document = firestoreDocumentAccessor.loadDocumentForPath('path');
|
|
119
|
+
expect(document).toBeDefined();
|
|
120
|
+
});
|
|
121
|
+
it('should throw an exception if the path is empty.', () => {
|
|
122
|
+
try {
|
|
123
|
+
firestoreDocumentAccessor.loadDocumentForPath('');
|
|
124
|
+
fail();
|
|
125
|
+
}
|
|
126
|
+
catch (e) {
|
|
127
|
+
expect(e).toBeDefined();
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
it('should throw an exception if the path is undefined.', () => {
|
|
131
|
+
try {
|
|
132
|
+
firestoreDocumentAccessor.loadDocumentForPath(undefined);
|
|
133
|
+
fail();
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
expect(e).toBeDefined();
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
exports.describeAccessorDriverTests = describeAccessorDriverTests;
|
|
144
|
+
function describeAccessorTests(init) {
|
|
145
|
+
let c;
|
|
146
|
+
let sub;
|
|
147
|
+
beforeEach(() => {
|
|
148
|
+
sub = new rxjs_1.SubscriptionObject();
|
|
149
|
+
c = init();
|
|
150
|
+
});
|
|
151
|
+
afterEach(() => {
|
|
152
|
+
sub.destroy();
|
|
153
|
+
});
|
|
154
|
+
describe('stream()', () => {
|
|
155
|
+
it('should return a snapshot stream', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
156
|
+
const result = yield c.accessor.stream();
|
|
157
|
+
expect(result).toBeDefined();
|
|
158
|
+
}));
|
|
159
|
+
it('should emit values on updates from the observable.', (done) => {
|
|
160
|
+
let count = 0;
|
|
161
|
+
sub.subscription = c.accessor.stream().subscribe((item) => {
|
|
162
|
+
count += 1;
|
|
163
|
+
if (count === 1) {
|
|
164
|
+
expect(c.hasDataFromUpdate(item.data())).toBe(false);
|
|
165
|
+
}
|
|
166
|
+
else if (count === 2) {
|
|
167
|
+
expect(c.hasDataFromUpdate(item.data())).toBe(true);
|
|
168
|
+
done();
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
setTimeout(() => {
|
|
172
|
+
c.accessor.update(c.dataForUpdate());
|
|
173
|
+
}, 100);
|
|
174
|
+
});
|
|
175
|
+
describe('in transition context', () => {
|
|
176
|
+
let runTransaction;
|
|
177
|
+
beforeEach(() => {
|
|
178
|
+
runTransaction = c.context.runTransaction;
|
|
179
|
+
});
|
|
180
|
+
it('should not stream values (observable completes immediately)', (done) => {
|
|
181
|
+
runTransaction((transaction) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
182
|
+
const transactionItemDocument = c.loadDocumentForTransaction(transaction, c.accessor.documentRef);
|
|
183
|
+
return new Promise((resolve) => {
|
|
184
|
+
sub.subscription = transactionItemDocument.accessor.stream().subscribe({
|
|
185
|
+
complete: () => {
|
|
186
|
+
resolve();
|
|
187
|
+
done();
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
}));
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
describe('in batch context', () => {
|
|
195
|
+
it('should not stream values (observable completes immediately)', (done) => {
|
|
196
|
+
let writeBatch = c.context.batch();
|
|
197
|
+
const batchItemDocument = c.loadDocumentForWriteBatch(writeBatch, c.accessor.documentRef);
|
|
198
|
+
sub.subscription = batchItemDocument.accessor.stream().subscribe({
|
|
199
|
+
complete: () => {
|
|
200
|
+
done();
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
describe('get()', () => {
|
|
207
|
+
it('should return a snapshot', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
208
|
+
const result = yield c.accessor.get();
|
|
209
|
+
expect(result).toBeDefined();
|
|
210
|
+
expect(result.id).toBeDefined();
|
|
211
|
+
}));
|
|
212
|
+
});
|
|
213
|
+
describe('exists()', () => {
|
|
214
|
+
it('should return true if the document exists', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
215
|
+
const exists = yield c.accessor.exists();
|
|
216
|
+
expect(exists).toBe(true);
|
|
217
|
+
}));
|
|
218
|
+
it('should return false if the document does not exist', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
219
|
+
yield c.accessor.delete();
|
|
220
|
+
const exists = yield c.accessor.exists();
|
|
221
|
+
expect(exists).toBe(false);
|
|
222
|
+
}));
|
|
223
|
+
});
|
|
224
|
+
describe('update()', () => {
|
|
225
|
+
it('should update the data if the document exists.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
226
|
+
const data = c.dataForUpdate();
|
|
227
|
+
yield c.accessor.update(data);
|
|
228
|
+
const snapshot = yield c.accessor.get();
|
|
229
|
+
expect(c.hasDataFromUpdate(snapshot.data())).toBe(true);
|
|
230
|
+
}));
|
|
231
|
+
it('should fail if the document does not exist.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
232
|
+
yield c.accessor.delete();
|
|
233
|
+
const snapshot = yield c.accessor.get();
|
|
234
|
+
expect(snapshot.data()).toBe(undefined);
|
|
235
|
+
const exists = yield c.accessor.exists();
|
|
236
|
+
expect(exists).toBe(false);
|
|
237
|
+
try {
|
|
238
|
+
yield c.accessor.update(c.dataForUpdate());
|
|
239
|
+
fail();
|
|
240
|
+
}
|
|
241
|
+
catch (e) {
|
|
242
|
+
expect(e).toBeDefined();
|
|
243
|
+
}
|
|
244
|
+
}));
|
|
245
|
+
// todo: test that update does not call the converter when setting values.
|
|
246
|
+
});
|
|
247
|
+
describe('set()', () => {
|
|
248
|
+
it('should create the object if it does not exist.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
249
|
+
yield c.accessor.delete();
|
|
250
|
+
let exists = yield c.accessor.exists();
|
|
251
|
+
expect(exists).toBe(false);
|
|
252
|
+
const data = c.dataForUpdate();
|
|
253
|
+
yield c.accessor.set(data);
|
|
254
|
+
exists = yield c.accessor.exists();
|
|
255
|
+
expect(exists).toBe(true);
|
|
256
|
+
const snapshot = yield c.accessor.get();
|
|
257
|
+
expect(c.hasDataFromUpdate(snapshot.data())).toBe(true);
|
|
258
|
+
}));
|
|
259
|
+
it('should update the data on the document for fields that are not undefined.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
260
|
+
const data = c.dataForUpdate();
|
|
261
|
+
yield c.accessor.set(data);
|
|
262
|
+
const snapshot = yield c.accessor.get();
|
|
263
|
+
expect(c.hasDataFromUpdate(snapshot.data())).toBe(true);
|
|
264
|
+
}));
|
|
265
|
+
// todo: test that set calls the converter when setting values.
|
|
266
|
+
});
|
|
267
|
+
describe('delete()', () => {
|
|
268
|
+
it('should delete the document.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
269
|
+
yield c.accessor.delete();
|
|
270
|
+
const snapshot = yield c.accessor.get();
|
|
271
|
+
expect(snapshot.data()).toBe(undefined);
|
|
272
|
+
const exists = yield c.accessor.exists();
|
|
273
|
+
expect(exists).toBe(false);
|
|
274
|
+
}));
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
exports.describeAccessorTests = describeAccessorTests;
|
|
278
|
+
//# sourceMappingURL=test.driver.accessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.driver.accessor.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/test/src/lib/common/test.driver.accessor.ts"],"names":[],"mappings":"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"}
|