UNPKG

@hashgraph/solo

Version:

An opinionated CLI tool to deploy and manage private Hedera Networks.

102 lines (101 loc) 6.11 kB
import 'chai-as-promised'; import 'dotenv/config'; import { type ClusterCommand } from '../src/commands/cluster/index.js'; import { type InitCommand } from '../src/commands/init/init.js'; import { type NetworkCommand } from '../src/commands/network.js'; import { type NodeCommand } from '../src/commands/node/index.js'; import { type DependencyManager } from '../src/core/dependency-managers/index.js'; import { type AccountId } from '@hiero-ledger/sdk'; import { type AccountCommand } from '../src/commands/account.js'; import { type SoloLogger } from '../src/core/logging/solo-logger.js'; import { type NodeAlias } from '../src/types/aliases.js'; import { type K8Factory } from '../src/integration/kube/k8-factory.js'; import { type AccountManager } from '../src/core/account-manager.js'; import { type PlatformInstaller } from '../src/core/platform-installer.js'; import { type ProfileManager } from '../src/core/profile-manager.js'; import { type LockManager } from '../src/core/lock/lock-manager.js'; import { type CertificateManager } from '../src/core/certificate-manager.js'; import { type ConfigManager } from '../src/core/config-manager.js'; import { type ChartManager } from '../src/core/chart-manager.js'; import { type PackageDownloader } from '../src/core/package-downloader.js'; import { type KeyManager } from '../src/core/key-manager.js'; import { NamespaceName } from '../src/types/namespace/namespace-name.js'; import { type DeploymentCommand } from '../src/commands/deployment.js'; import { Argv } from './helpers/argv-wrapper.js'; import { type ClusterReferenceName } from '../src/types/index.js'; import { type CommandInvoker } from './helpers/command-invoker.js'; import { type HelmClient } from '../src/integration/helm/helm-client.js'; import { type NodeServiceMapping } from '../src/types/mappings/node-service-mapping.js'; import { type LocalConfigRuntimeState } from '../src/business/runtime-state/config/local/local-config-runtime-state.js'; import { type InstanceOverrides } from '../src/core/dependency-injection/container-init.js'; import { type RemoteConfigRuntimeStateApi } from '../src/business/runtime-state/api/remote-config-runtime-state-api.js'; import { type ComponentFactoryApi } from '../src/core/config/remote/api/component-factory-api.js'; export declare const BASE_TEST_DIR: string; export declare function getTestCluster(): ClusterReferenceName; export declare function getTestLogger(): SoloLogger; export declare function getTestCacheDirectory(testName?: string): string; export declare function getTemporaryDirectory(): string; export declare function deployNetworkTest(argv: Argv): void; export declare function startNodesTest(testName: string, argv: Argv): void; interface TestOptions { logger: SoloLogger; helm: HelmClient; k8Factory: K8Factory; chartManager: ChartManager; configManager: ConfigManager; downloader: PackageDownloader; platformInstaller: PlatformInstaller; depManager: DependencyManager; keyManager: KeyManager; accountManager: AccountManager; cacheDir: string; profileManager: ProfileManager; leaseManager: LockManager; certificateManager: CertificateManager; remoteConfig: RemoteConfigRuntimeStateApi; localConfig: LocalConfigRuntimeState; commandInvoker: CommandInvoker; componentFactory: ComponentFactoryApi; } export interface BootstrapResponse { deployment: string; namespace: NamespaceName; opts: TestOptions; manager: { accountManager: AccountManager; }; cmd: { initCmd: InitCommand; clusterCmd: ClusterCommand; networkCmd: NetworkCommand; nodeCmd: NodeCommand; accountCmd: AccountCommand; deploymentCmd: DeploymentCommand; }; } interface Cmd { k8FactoryArg?: K8Factory; initCmdArg?: InitCommand; clusterCmdArg?: ClusterCommand; networkCmdArg?: NetworkCommand; nodeCmdArg?: NodeCommand; accountCmdArg?: AccountCommand; deploymentCmdArg?: DeploymentCommand; containerOverrides?: InstanceOverrides; } /** Initialize common test variables */ export declare function bootstrapTestVariables(testName: string, argv: Argv, { k8FactoryArg, initCmdArg, clusterCmdArg, networkCmdArg, nodeCmdArg, accountCmdArg, deploymentCmdArg }: Cmd): BootstrapResponse; /** Bootstrap network in a given namespace, then run the test call back providing the bootstrap response */ export declare function endToEndTestSuite(testName: string, argv: Argv, { k8FactoryArg, initCmdArg, clusterCmdArg, networkCmdArg, nodeCmdArg, accountCmdArg, startNodes, containerOverrides, deployNetwork, }: Cmd & { startNodes?: boolean; deployNetwork?: boolean; }, testsCallBack?: (bootstrapResp: BootstrapResponse) => void): void; export declare function queryBalance(accountManager: AccountManager, namespace: NamespaceName, remoteConfig: RemoteConfigRuntimeStateApi, logger: SoloLogger, skipNodeAlias?: NodeAlias): Promise<void>; export declare function balanceQueryShouldSucceed(accountManager: AccountManager, namespace: NamespaceName, remoteConfig: RemoteConfigRuntimeStateApi, logger: SoloLogger, skipNodeAlias?: NodeAlias): void; export declare function createAccount(accountManager: AccountManager, namespace: NamespaceName, remoteConfig: RemoteConfigRuntimeStateApi, logger: SoloLogger, skipNodeAlias?: NodeAlias, expectedAccountId?: AccountId): Promise<void>; export declare function accountCreationShouldSucceed(accountManager: AccountManager, namespace: NamespaceName, remoteConfig: RemoteConfigRuntimeStateApi, logger: SoloLogger, skipNodeAlias?: NodeAlias, expectedAccountId?: AccountId): void; export declare function getNodeAliasesPrivateKeysHash(networkNodeServicesMap: NodeServiceMapping, k8Factory: K8Factory, destinationDirectory: string): Promise<Map<NodeAlias, Map<string, string>>>; export declare const testLocalConfigData: Record<string, unknown>; export { HEDERA_PLATFORM_VERSION as HEDERA_PLATFORM_VERSION_TAG } from '../version.js'; export declare function hederaPlatformSupportsNonZeroRealms(): boolean; export declare function destroyEnabled(): boolean;