Praman — Agent-First SAP UI5 Test Automation Plugin - v1.2.0
    Preparing search index...

    Function defineConfig

    • Type helper for Praman config files — returns input unchanged.

      Parameters

      • input: {
            ai?: {
                anthropicApiKey?: string;
                apiKey?: string;
                apiVersion?: string;
                deployment?: string;
                endpoint?: string;
                maxTokens?: number;
                model?: string;
                provider?: "openai" | "azure-openai" | "anthropic";
                temperature?: number;
            };
            auth?: {
                baseUrl?: string;
                client?: string;
                language?: string;
                password?: string;
                strategy?: "custom"
                | "btp-saml"
                | "basic"
                | "office365";
                username?: string;
            };
            captureFailureArtifacts?: boolean;
            controlDiscoveryTimeout?: number;
            controlTreeCapture?: {
                enabled?: boolean;
                maxControls?: number;
                maxDepth?: number;
            };
            defaultMatchSubclasses?: boolean;
            discoveryStrategies?: ("direct-id" | "recordreplay" | "registry")[];
            ignoreAutoWaitUrls?: string[];
            interactionStrategy?: "ui5-native" | "dom-first" | "opa5";
            logLevel?: "error" | "debug" | "warn" | "info" | "verbose";
            odataTracing?: { enabled?: boolean; urlPatterns?: string[] };
            opa5?: { autoWait?: boolean; debug?: boolean; interactionTimeout?: number };
            preferVisibleControls?: boolean;
            selectors?: {
                defaultTimeout?: number;
                preferVisibleControls?: boolean;
                skipStabilityWait?: boolean;
            };
            skipStabilityWait?: boolean;
            telemetry?: {
                batchTimeout?: number;
                connectionString?: string;
                endpoint?: string;
                exporter?: "otlp"
                | "azure-monitor"
                | "jaeger";
                maxQueueSize?: number;
                metrics?: boolean;
                openTelemetry?: boolean;
                protocol?: "http" | "grpc";
                resourceAttributes?: Record<string, string>;
                serviceName?: string;
            };
            ui5WaitTimeout?: number;
        }

        Config input to pass through.

        • Optionalai?: {
              anthropicApiKey?: string;
              apiKey?: string;
              apiVersion?: string;
              deployment?: string;
              endpoint?: string;
              maxTokens?: number;
              model?: string;
              provider?: "openai" | "azure-openai" | "anthropic";
              temperature?: number;
          }
        • Optionalauth?: {
              baseUrl?: string;
              client?: string;
              language?: string;
              password?: string;
              strategy?: "custom" | "btp-saml" | "basic" | "office365";
              username?: string;
          }
          • OptionalbaseUrl?: string
          • Optionalclient?: string
          • Optionallanguage?: string
          • Optionalpassword?: string
          • Optionalstrategy?: "custom" | "btp-saml" | "basic" | "office365"

            Auth strategy for SAP login.

            • basic: On-premise form-based login (onprem-strategy)
            • btp-saml: BTP Cloud SAML via IAS (cloud-saml-strategy)
            • office365: Microsoft 365 / Azure AD SSO (office365-strategy)
            • custom: User-provided login function

            For API-based, certificate, or multi-tenant auth, see the authentication guide — these are configured programmatically.

          • Optionalusername?: string
        • OptionalcaptureFailureArtifacts?: boolean

          Whether to auto-capture diagnostic artifacts (screenshot, control tree, page context) on test failure.

          When true (default), the failure artifacts fixture automatically attaches a screenshot (PNG), UI5 control tree snapshot (JSON), and page metadata (JSON) to the test report on any test failure. Set to false to disable.

        • OptionalcontrolDiscoveryTimeout?: number
        • OptionalcontrolTreeCapture?: { enabled?: boolean; maxControls?: number; maxDepth?: number }
        • OptionaldefaultMatchSubclasses?: boolean

          Default value for matchSubclasses on selectors that don't specify it.

        • OptionaldiscoveryStrategies?: ("direct-id" | "recordreplay" | "registry")[]
        • OptionalignoreAutoWaitUrls?: string[]
        • OptionalinteractionStrategy?: "ui5-native" | "dom-first" | "opa5"
        • OptionallogLevel?: "error" | "debug" | "warn" | "info" | "verbose"
        • OptionalodataTracing?: { enabled?: boolean; urlPatterns?: string[] }
        • Optionalopa5?: { autoWait?: boolean; debug?: boolean; interactionTimeout?: number }
        • OptionalpreferVisibleControls?: boolean
        • Optionalselectors?: {
              defaultTimeout?: number;
              preferVisibleControls?: boolean;
              skipStabilityWait?: boolean;
          }
          • OptionaldefaultTimeout?: number

            Use top-level controlDiscoveryTimeout instead.

          • OptionalpreferVisibleControls?: boolean
          • OptionalskipStabilityWait?: boolean
        • OptionalskipStabilityWait?: boolean
        • Optionaltelemetry?: {
              batchTimeout?: number;
              connectionString?: string;
              endpoint?: string;
              exporter?: "otlp" | "azure-monitor" | "jaeger";
              maxQueueSize?: number;
              metrics?: boolean;
              openTelemetry?: boolean;
              protocol?: "http" | "grpc";
              resourceAttributes?: Record<string, string>;
              serviceName?: string;
          }
          • OptionalbatchTimeout?: number
          • OptionalconnectionString?: string

            Azure Monitor connection string. Required when exporter is 'azure-monitor'.

          • Optionalendpoint?: string
          • Optionalexporter?: "otlp" | "azure-monitor" | "jaeger"
          • OptionalmaxQueueSize?: number
          • Optionalmetrics?: boolean
          • OptionalopenTelemetry?: boolean
          • Optionalprotocol?: "http" | "grpc"
          • OptionalresourceAttributes?: Record<string, string>
          • OptionalserviceName?: string
        • Optionalui5WaitTimeout?: number

      Returns {
          ai?: {
              anthropicApiKey?: string;
              apiKey?: string;
              apiVersion?: string;
              deployment?: string;
              endpoint?: string;
              maxTokens?: number;
              model?: string;
              provider?: "openai" | "azure-openai" | "anthropic";
              temperature?: number;
          };
          auth?: {
              baseUrl?: string;
              client?: string;
              language?: string;
              password?: string;
              strategy?: "custom"
              | "btp-saml"
              | "basic"
              | "office365";
              username?: string;
          };
          captureFailureArtifacts?: boolean;
          controlDiscoveryTimeout?: number;
          controlTreeCapture?: {
              enabled?: boolean;
              maxControls?: number;
              maxDepth?: number;
          };
          defaultMatchSubclasses?: boolean;
          discoveryStrategies?: ("direct-id" | "recordreplay" | "registry")[];
          ignoreAutoWaitUrls?: string[];
          interactionStrategy?: "ui5-native" | "dom-first" | "opa5";
          logLevel?: "error" | "debug" | "warn" | "info" | "verbose";
          odataTracing?: { enabled?: boolean; urlPatterns?: string[] };
          opa5?: { autoWait?: boolean; debug?: boolean; interactionTimeout?: number };
          preferVisibleControls?: boolean;
          selectors?: {
              defaultTimeout?: number;
              preferVisibleControls?: boolean;
              skipStabilityWait?: boolean;
          };
          skipStabilityWait?: boolean;
          telemetry?: {
              batchTimeout?: number;
              connectionString?: string;
              endpoint?: string;
              exporter?: "otlp"
              | "azure-monitor"
              | "jaeger";
              maxQueueSize?: number;
              metrics?: boolean;
              openTelemetry?: boolean;
              protocol?: "http" | "grpc";
              resourceAttributes?: Record<string, string>;
              serviceName?: string;
          };
          ui5WaitTimeout?: number;
      }

      The input unchanged.

      • Optionalai?: {
            anthropicApiKey?: string;
            apiKey?: string;
            apiVersion?: string;
            deployment?: string;
            endpoint?: string;
            maxTokens?: number;
            model?: string;
            provider?: "openai" | "azure-openai" | "anthropic";
            temperature?: number;
        }
      • Optionalauth?: {
            baseUrl?: string;
            client?: string;
            language?: string;
            password?: string;
            strategy?: "custom" | "btp-saml" | "basic" | "office365";
            username?: string;
        }
        • OptionalbaseUrl?: string
        • Optionalclient?: string
        • Optionallanguage?: string
        • Optionalpassword?: string
        • Optionalstrategy?: "custom" | "btp-saml" | "basic" | "office365"

          Auth strategy for SAP login.

          • basic: On-premise form-based login (onprem-strategy)
          • btp-saml: BTP Cloud SAML via IAS (cloud-saml-strategy)
          • office365: Microsoft 365 / Azure AD SSO (office365-strategy)
          • custom: User-provided login function

          For API-based, certificate, or multi-tenant auth, see the authentication guide — these are configured programmatically.

        • Optionalusername?: string
      • OptionalcaptureFailureArtifacts?: boolean

        Whether to auto-capture diagnostic artifacts (screenshot, control tree, page context) on test failure.

        When true (default), the failure artifacts fixture automatically attaches a screenshot (PNG), UI5 control tree snapshot (JSON), and page metadata (JSON) to the test report on any test failure. Set to false to disable.

      • OptionalcontrolDiscoveryTimeout?: number
      • OptionalcontrolTreeCapture?: { enabled?: boolean; maxControls?: number; maxDepth?: number }
      • OptionaldefaultMatchSubclasses?: boolean

        Default value for matchSubclasses on selectors that don't specify it.

      • OptionaldiscoveryStrategies?: ("direct-id" | "recordreplay" | "registry")[]
      • OptionalignoreAutoWaitUrls?: string[]
      • OptionalinteractionStrategy?: "ui5-native" | "dom-first" | "opa5"
      • OptionallogLevel?: "error" | "debug" | "warn" | "info" | "verbose"
      • OptionalodataTracing?: { enabled?: boolean; urlPatterns?: string[] }
      • Optionalopa5?: { autoWait?: boolean; debug?: boolean; interactionTimeout?: number }
      • OptionalpreferVisibleControls?: boolean
      • Optionalselectors?: {
            defaultTimeout?: number;
            preferVisibleControls?: boolean;
            skipStabilityWait?: boolean;
        }
        • OptionaldefaultTimeout?: number

          Use top-level controlDiscoveryTimeout instead.

        • OptionalpreferVisibleControls?: boolean
        • OptionalskipStabilityWait?: boolean
      • OptionalskipStabilityWait?: boolean
      • Optionaltelemetry?: {
            batchTimeout?: number;
            connectionString?: string;
            endpoint?: string;
            exporter?: "otlp" | "azure-monitor" | "jaeger";
            maxQueueSize?: number;
            metrics?: boolean;
            openTelemetry?: boolean;
            protocol?: "http" | "grpc";
            resourceAttributes?: Record<string, string>;
            serviceName?: string;
        }
        • OptionalbatchTimeout?: number
        • OptionalconnectionString?: string

          Azure Monitor connection string. Required when exporter is 'azure-monitor'.

        • Optionalendpoint?: string
        • Optionalexporter?: "otlp" | "azure-monitor" | "jaeger"
        • OptionalmaxQueueSize?: number
        • Optionalmetrics?: boolean
        • OptionalopenTelemetry?: boolean
        • Optionalprotocol?: "http" | "grpc"
        • OptionalresourceAttributes?: Record<string, string>
        • OptionalserviceName?: string
      • Optionalui5WaitTimeout?: number

      Used in praman.config.ts for IDE autocomplete and type checking.

      Returns the input unchanged (identity function for type inference).

      // praman.config.ts
      import { defineConfig } from 'playwright-praman';
      export default defineConfig({ logLevel: 'debug' });