Line data Source code
1 : import * as auth from '@ankoh/dashql-jsonschema/auth.js';
2 : import * as connection from '@ankoh/dashql-jsonschema/connection.js';
3 :
4 : import { sleep } from '../../utils/sleep.js';
5 : import { QueryExecutionResponseStream } from '../../query/query_execution_state.js';
6 : import { SalesforceApiClientInterface, type SalesforceMetadataProgress } from './salesforce_api_client.js';
7 : import { QueryExecutionResponseStreamMock } from '../query_execution_mock.js';
8 :
9 : export interface SalesforceConnectorMockConfig {
10 : enabled: boolean;
11 : pkceChallenge: auth.OAuthPKCEChallenge;
12 : coreAccess: connection.SalesforceCoreAccessToken;
13 : coreUserInfo: connection.SalesforceCoreUserInfo;
14 : dataCloudAccess: connection.SalesforceDataCloudAccessToken;
15 : dataCloudMetadata: connection.SalesforceDataCloudMetadata;
16 : }
17 :
18 1 : export class SalesforceAPIClientMock implements SalesforceApiClientInterface {
19 1 : constructor(protected mock: SalesforceConnectorMockConfig) { }
20 :
21 1 : public async getCoreAccessToken(
22 1 : _authConfig: connection.SalesforceOAuthConfig,
23 1 : _authParams: connection.SalesforceConnectionParams,
24 1 : _authCode: string,
25 1 : _pkceVerifier: string,
26 1 : _cancel: AbortSignal,
27 1 : ): Promise<connection.SalesforceCoreAccessToken> {
28 1 : await sleep(200);
29 1 : return this.mock.coreAccess;
30 1 : }
31 :
32 1 : async getCoreUserInfo(
33 1 : _access: connection.SalesforceCoreAccessToken,
34 1 : _cancel: AbortSignal,
35 1 : ): Promise<connection.SalesforceCoreUserInfo> {
36 1 : await sleep(200);
37 1 : return this.mock.coreUserInfo;
38 1 : }
39 :
40 1 : public async getDataCloudMetadata(
41 1 : _access: connection.SalesforceCoreAccessToken,
42 1 : _dataSpace: string,
43 1 : _cancel: AbortSignal,
44 1 : _onProgress?: (progress: SalesforceMetadataProgress) => void,
45 1 : ): Promise<connection.SalesforceDataCloudMetadata> {
46 1 : await sleep(200);
47 1 : return this.mock.dataCloudMetadata;
48 1 : }
49 :
50 1 : public async getDataCloudAccessToken(
51 1 : _access: connection.SalesforceCoreAccessToken,
52 1 : _cancel: AbortSignal,
53 1 : ): Promise<connection.SalesforceDataCloudAccessToken> {
54 1 : await sleep(200);
55 1 : return this.mock.dataCloudAccess;
56 1 : }
57 :
58 1 : public executeQuery(
59 1 : _scriptText: string,
60 1 : _accessToken: connection.SalesforceDataCloudAccessToken,
61 1 : ): QueryExecutionResponseStream {
62 1 : return new QueryExecutionResponseStreamMock();
63 1 : }
64 1 : }
|