下面的我的匹配器似乎收到了预期的实例,但失败了。任何人都可以理解这个结果并解释如何使其通过吗?
// 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);
});
来自package.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",