LCOV - code coverage report
Current view: top level - dashql-app/src/connections/salesforce - salesforce_connector.tsx Coverage Total Hit
Test: DashQL 915828b Lines: 100.0 % 35 35
Test Date: 2026-11-06 19:30:32

            Line data    Source code
       1              : import * as React from 'react';
       2              : 
       3              : import { SalesforceApiClient, SalesforceApiClientInterface } from './salesforce_api_client.js';
       4              : import { SalesforceAPIClientMock } from './salesforce_api_client_mock.js';
       5              : import { mockSalesforceAuthFlow as mockSalesforceSetup } from './salesforce_connection_setup_mock.js';
       6              : import { SalesforceSetupApi, createSalesforceSetup } from './salesforce_connection_setup.js';
       7              : import { useAppConfig } from '../../config/app_config.js';
       8              : import { useHttpClient } from '../../platform/http/http_client_provider.js';
       9              : import { useLogger } from '../../platform/logger/logger_provider.js';
      10              : import { useHyperHttpClient } from '../hyper/hyperdb_grpc_client_provider.js';
      11              : import { usePlatformType } from '../../platform/platform_type.js';
      12              : import { usePlatformEventListener } from '../../platform/events/event_listener_provider.js';
      13              : 
      14            1 : const API_CTX = React.createContext<SalesforceApiClientInterface | null>(null);
      15            1 : const SETUP_CTX = React.createContext<SalesforceSetupApi | null>(null);
      16              : 
      17              : 
      18              : interface Props {
      19              :     children: React.ReactElement;
      20              : }
      21              : 
      22            1 : export const SalesforceConnector: React.FC<Props> = (props: Props) => {
      23            1 :     const logger = useLogger();
      24            1 :     const config = useAppConfig();
      25            1 :     const connectorConfig = config?.connectors?.salesforce;
      26            1 :     const forceReLogin = config?.settings?.forceReLogin ?? false;
      27            1 :     const httpClient = useHttpClient();
      28            1 :     const hyperHttpClient = useHyperHttpClient();
      29            1 :     const platformType = usePlatformType();
      30            1 :     const appEvents = usePlatformEventListener();
      31              : 
      32            1 :     const [api, setup] = React.useMemo(() => {
      33            1 :         if (!connectorConfig) {
      34            1 :             return [null, null];
      35            1 :         } else if (connectorConfig.mock?.enabled) {
      36            1 :             const api = new SalesforceAPIClientMock(connectorConfig.mock);
      37            1 :             const setup = mockSalesforceSetup(api, connectorConfig, logger);
      38            1 :             return [api, setup];
      39            1 :         } else if (!httpClient || !hyperHttpClient) {
      40            1 :             return [null, null];
      41            1 :         } else {
      42            1 :             const api = new SalesforceApiClient(logger, httpClient);
      43            1 :             const setup = createSalesforceSetup(hyperHttpClient, api, platformType, appEvents, connectorConfig, forceReLogin, logger);
      44            1 :             return [api, setup];
      45            1 :         }
      46            1 :     }, [connectorConfig, httpClient, hyperHttpClient, platformType, appEvents, forceReLogin]);
      47              : 
      48            1 :     return (
      49            1 :         <API_CTX.Provider value={api}>
      50            1 :             <SETUP_CTX.Provider value={setup}>
      51            1 :                 {props.children}
      52            1 :             </SETUP_CTX.Provider>
      53            1 :         </API_CTX.Provider>
      54              :     );
      55            1 : };
      56              : 
      57            1 : export const useSalesforceAPI = (): SalesforceApiClientInterface => React.useContext(API_CTX)!;
      58            1 : export const useSalesforceSetup = () => React.useContext(SETUP_CTX!);
        

Generated by: LCOV version 2.0-1