firestore-in-memory
Version:
A drop-in, in-memory implementation of Firestore useful for testing
39 lines (29 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _splitNextDocRef = _interopRequireDefault(require("./splitNextDocRef"));
var _getChild = _interopRequireDefault(require("./getChild"));
var _cloneForSnapshot = _interopRequireDefault(require("./cloneForSnapshot"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const getDocument = (fsDocument, createMockFirestoreDocument) => (ref, mockData = undefined) => {
const {
refName,
remainingRef
} = (0, _splitNextDocRef.default)(ref);
const child = (0, _getChild.default)(fsDocument, createMockFirestoreDocument, {
exists: Boolean(mockData)
}, refName);
if (remainingRef) {
return getDocument(child, createMockFirestoreDocument)(remainingRef, mockData);
}
if (mockData) {
const duplicatedDocument = (0, _cloneForSnapshot.default)(child, createMockFirestoreDocument);
duplicatedDocument.documentData = mockData;
return duplicatedDocument;
}
return child;
};
var _default = getDocument;
exports.default = _default;