Мое сопоставление ниже, похоже, получает ожидаемый экземпляр, но не удается. Может кто-нибудь разобраться в этом результате и объяснить, как заставить его пройти?
// class FirestoreConnection in the same named .ts file
protected buildQueryUpToWhereClauseChain(priorQuery: any, whereClauses: WhereDefinition[]): admin.firestore.Query {
let preparedWheresQuery: admin.firestore.Query = priorQuery;
if (whereClauses.length > 0) {
preparedWheresQuery = whereClauses
.reduce((accumulatedQuery, {column, operator, value}) => {
return accumulatedQuery.where(column, operator, value);
}, priorQuery);
}
return preparedWheresQuery;
}
Тест на расширенный класс выше:
test('builds .where() query', () => {
const openFirestoreConnection = new OpenFirestoreConnection('testdomain.shopify.com', createTestDatabase(null));
const startingQuery = openFirestoreConnection.database
.collection("collectionName")
.where("storeId", "==", openFirestoreConnection.shopDomain);
const whereClauses: WhereDefinition[] = [{
column: "testColumn"
, operator: '=='
, value: "testValue"
}, {
column: "testColumn2"
, operator: '<='
, value: "testValue2"
}];
const builtQuery = openFirestoreConnection.buildQueryUpToWhereClauseChain(startingQuery, whereClauses);
// Expected constructor: Query. Received constructor: Query
expect(builtQuery).toBeInstanceOf(admin.firestore.Query);
});
Из пакета. json
// dependencies
"firebase-admin": "^8.8.0",
"firebase-functions": "^3.3.0",
// devDependencies
"@types/jest": "^24.0.23",
"jest": "^24.9.0",
"ts-jest": "^24.2.0",