Add salesforce query validation in integration tests (#20209)
This commit is contained in:
+2
-1
@@ -107,7 +107,8 @@
|
||||
"typescript": "^4.9.4",
|
||||
"vitest": "^2.1.1",
|
||||
"vitest-fetch-mock": "^0.3.0",
|
||||
"vitest-mock-extended": "^2.0.2"
|
||||
"vitest-mock-extended": "^2.0.2",
|
||||
"@jetstreamapp/soql-parser-js": "^6.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@daily-co/daily-js": "^0.59.0",
|
||||
|
||||
@@ -948,7 +948,7 @@ export default class SalesforceCRMService implements CRM {
|
||||
log.info("Querying first account matching email domain", safeStringify({ emailDomain }));
|
||||
// First check if an account has the same website as the email domain of the attendee
|
||||
const accountQuery = await conn.query(
|
||||
`SELECT Id, OwnerId, Owner.Email FROM Account WHERE Website IN (${this.getAllPossibleAccountWebsiteFromEmailDomain(
|
||||
`SELECT Id, OwnerId, Owner.Email, Owner.Website FROM Account WHERE Website IN (${this.getAllPossibleAccountWebsiteFromEmailDomain(
|
||||
emailDomain
|
||||
)}) LIMIT 1`
|
||||
);
|
||||
@@ -963,7 +963,13 @@ export default class SalesforceCRMService implements CRM {
|
||||
|
||||
log.info(
|
||||
"Found account matching email domain",
|
||||
safeStringify({ emailDomain, accountWebsite: account.Website, accountId: account.Id })
|
||||
safeStringify({
|
||||
emailDomain,
|
||||
accountWebsite: account.Website,
|
||||
accountOwnerEmail: account.Owner?.Email,
|
||||
accountOwnerId: account.OwnerId,
|
||||
accountId: account.Id,
|
||||
})
|
||||
);
|
||||
|
||||
return {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { parseQuery, composeQuery } from "@jetstreamapp/soql-parser-js";
|
||||
import { vi } from "vitest";
|
||||
|
||||
import logger from "@calcom/lib/logger";
|
||||
@@ -43,7 +44,11 @@ export const createSalesforceMock = () => {
|
||||
};
|
||||
|
||||
// Query parser and responder
|
||||
const handleQuery = (query: string) => {
|
||||
const handleQuery = (rawQuery: string) => {
|
||||
const parsedQuery = parseQuery(rawQuery);
|
||||
// Validated Query
|
||||
const query = composeQuery(parsedQuery);
|
||||
|
||||
// Simple SOQL parser
|
||||
console.log({ query });
|
||||
const fromMatch = query.match(/FROM\s+(\w+)/i);
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"dependencies": {
|
||||
"@calcom/lib": "*",
|
||||
"@calcom/prisma": "*",
|
||||
"@jetstreamapp/soql-parser-js": "^6.1.0",
|
||||
"@jsforce/jsforce-node": "^3.6.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -3492,6 +3492,7 @@ __metadata:
|
||||
"@calcom/lib": "*"
|
||||
"@calcom/prisma": "*"
|
||||
"@calcom/types": "*"
|
||||
"@jetstreamapp/soql-parser-js": ^6.1.0
|
||||
"@jsforce/jsforce-node": ^3.6.3
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
@@ -5946,6 +5947,19 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@jetstreamapp/soql-parser-js@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@jetstreamapp/soql-parser-js@npm:6.1.0"
|
||||
dependencies:
|
||||
chevrotain: ^10.5.0
|
||||
commander: ^2.20.3
|
||||
lodash.get: ^4.4.2
|
||||
bin:
|
||||
soql-parser-js: bin/soql-parser-js
|
||||
checksum: 4110e2c19c29ff8ae60efa70bd5ae1f81dca289af0fdc8fd29e8f9e03171c1b5beadfb57d8a39506b8d9e909dd0d3fb21408a06c2238661fc4dd4a9d60fc4142
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@jimp/bmp@npm:^0.16.1":
|
||||
version: 0.16.1
|
||||
resolution: "@jimp/bmp@npm:0.16.1"
|
||||
@@ -17809,6 +17823,7 @@ __metadata:
|
||||
dependencies:
|
||||
"@changesets/cli": ^2.26.1
|
||||
"@daily-co/daily-js": ^0.59.0
|
||||
"@jetstreamapp/soql-parser-js": ^6.1.0
|
||||
"@next/third-parties": ^14.2.5
|
||||
"@playwright/test": ^1.45.3
|
||||
"@snaplet/copycat": ^4.1.0
|
||||
@@ -18817,7 +18832,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"commander@npm:^2.20.0, commander@npm:^2.7.1, commander@npm:^2.9.0":
|
||||
"commander@npm:^2.20.0, commander@npm:^2.20.3, commander@npm:^2.7.1, commander@npm:^2.9.0":
|
||||
version: 2.20.3
|
||||
resolution: "commander@npm:2.20.3"
|
||||
checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e
|
||||
|
||||
Reference in New Issue
Block a user