1import { runTestsCore, mkRuntestsCli, ethRuntestsCli, optsFromCli } from '../../deployF/testsF/runTestsCoreAI.mts'2import { mkDualDeploy } from '../../deployF/testsF/dualDeployActionAI.mts'3import { runHealthgqlSuite, publicipSuiteConfig } from '../../deployF/testsF/genericSuiteRunnersAI.mts'4import { frameworkSuiteConfigs } from '../../deployF/testsF/baseTestConfigAI.mts'5import { appCfgCtx, getAppCfg} from '../../deployF/k8sF/ctxF/appCfgCtxF.mts'6import { parseCli } from '../../serverF/cliArgAI.mts'8import { printTestHistory } from '../../deployF/testsF/recordTestResultAI.mts'9import { ethpaySuiteConfig } from '../../serverF/ethpayF/testsF/ethpayTestsAI.mts'10import { donateSuiteConfig } from './donateSuiteF.mts'11import { donateIpfsSuiteConfig } from './donateIpfsSuiteAI.mts'12import { wrapDbEnv } from '../../deployF/wrapDbEnvF.mts'13import * as localAppCfg from '../binF/appCfgF.mjs'14import { fundtestwallet } from '../binF/fundTestWalletAI.mjs'15import { donateSmokeOverlay, donateProdOverlay } from '../binF/donateCfgF.mjs'16import type { SuiteConfig, RunTestsCoreConfig } from '../../deployF/testsF/runTestsCoreAI.mts'18const suiteConfigs: SuiteConfig[] = [19 ...frameworkSuiteConfigs,20 { name: 'healthgql', runner: runHealthgqlSuite, deps: [] },21 ethpaySuiteConfig,22 donateSuiteConfig,23 donateIpfsSuiteConfig,24 publicipSuiteConfig,25]27const allSuites = suiteConfigs.map(s => s.name)28const prodVerifySuites = ['healthgql', 'deployverify']30const getConfig = async () => {31 return { allSuites, localAppCfg, suiteConfigs, wrapDbEnv: wrapDbEnv as RunTestsCoreConfig['wrapDbEnv'], preDeployedTests: fundtestwallet }32}34const runtestsCli = { ...mkRuntestsCli(allSuites), ...ethRuntestsCli }36export const runtests = async () => {38 if (cli.history) {40 printTestHistory({ ep, suites: cli.suite })41 return42 }43 const config = await getConfig()44 const opts = optsFromCli(cli, allSuites)45 const result = await runTestsCore({ config, opts })46 if (!result.allPassed) process.exit(1)47}48runtests.cliSchema = runtestsCli50export const testdeploy = mkDualDeploy({51 getTestConfig: getConfig,52 smokeOverlay: donateSmokeOverlay,53 prodOverlay: donateProdOverlay,54 smokeSuites: allSuites,55 prodVerifySuites,56})