taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit f57659f98cf5cba0c806e87caec8d069f656a6e2
parent 18d0581dbab41f8f37262cc082752a50928f75ec
Author: Florian Dold <florian@dold.me>
Date:   Mon, 28 Apr 2025 20:00:48 +0200

harness: allow specifying comma-separated list of test globs

Diffstat:
Mpackages/taler-harness/src/integrationtests/testrunner.ts | 35+++++++++++++++++++++++------------
1 file changed, 23 insertions(+), 12 deletions(-)

diff --git a/packages/taler-harness/src/integrationtests/testrunner.ts b/packages/taler-harness/src/integrationtests/testrunner.ts @@ -41,8 +41,8 @@ import { runCurrencyScopeTest } from "./test-currency-scope.js"; import { runDenomLostTest } from "./test-denom-lost.js"; import { runDenomUnofferedTest } from "./test-denom-unoffered.js"; import { runDepositFaultTest } from "./test-deposit-fault.js"; -import { runDepositTest } from "./test-deposit.js"; import { runDepositMergeTest } from "./test-deposit-merge.js"; +import { runDepositTest } from "./test-deposit.js"; import { runExchangeDepositTest } from "./test-exchange-deposit.js"; import { runExchangeManagementFaultTest } from "./test-exchange-management-fault.js"; import { runExchangeManagementTest } from "./test-exchange-management.js"; @@ -66,6 +66,8 @@ import { runKycExchangeWalletTest } from "./test-kyc-exchange-wallet.js"; import { runKycFormWithdrawalTest } from "./test-kyc-form-withdrawal.js"; import { runKycMerchantActivateBankAccountTest } from "./test-kyc-merchant-activate-bank-account.js"; import { runKycMerchantAggregateTest } from "./test-kyc-merchant-aggregate.js"; +import { runKycMerchantDepositRewriteTest } from "./test-kyc-merchant-deposit-rewrite.js"; +import { runKycMerchantDepositTest } from "./test-kyc-merchant-deposit.js"; import { runKycNewMeasureTest } from "./test-kyc-new-measure.js"; import { runKycNewMeasuresProgTest } from "./test-kyc-new-measures-prog.js"; import { runKycPeerPullTest } from "./test-kyc-peer-pull.js"; @@ -95,16 +97,17 @@ import { runPaymentFaultTest } from "./test-payment-fault.js"; import { runPaymentForgettableTest } from "./test-payment-forgettable.js"; import { runPaymentIdempotencyTest } from "./test-payment-idempotency.js"; import { runPaymentMultipleTest } from "./test-payment-multiple.js"; +import { runPaymentShareIdempotencyTest } from "./test-payment-share-idempotency.js"; import { runPaymentShareTest } from "./test-payment-share.js"; import { runPaymentTemplateTest } from "./test-payment-template.js"; import { runPaymentTransientTest } from "./test-payment-transient.js"; import { runPaymentZeroTest } from "./test-payment-zero.js"; import { runPaymentTest } from "./test-payment.js"; import { runPaywallFlowTest } from "./test-paywall-flow.js"; -import { runPeerPullTest } from "./test-peer-pull.js"; -import { runPeerPushTest } from "./test-peer-push.js"; import { runPeerPullLargeTest } from "./test-peer-pull-large.js"; +import { runPeerPullTest } from "./test-peer-pull.js"; import { runPeerPushLargeTest } from "./test-peer-push-large.js"; +import { runPeerPushTest } from "./test-peer-push.js"; import { runPeerRepairTest } from "./test-peer-repair.js"; import { runRefundAutoTest } from "./test-refund-auto.js"; import { runRefundGoneTest } from "./test-refund-gone.js"; @@ -141,6 +144,7 @@ import { runWalletNotificationsTest } from "./test-wallet-notifications.js"; import { runWalletObservabilityTest } from "./test-wallet-observability.js"; import { runWalletRefreshErrorsTest } from "./test-wallet-refresh-errors.js"; import { runWalletRefreshTest } from "./test-wallet-refresh.js"; +import { runWalletTokensTest } from "./test-wallet-tokens.js"; import { runWalletTransactionsTest } from "./test-wallet-transactions.js"; import { runWalletWirefeesTest } from "./test-wallet-wirefees.js"; import { runWallettestingTest } from "./test-wallettesting.js"; @@ -159,10 +163,6 @@ import { runWithdrawalHugeTest } from "./test-withdrawal-huge.js"; import { runWithdrawalIdempotentTest } from "./test-withdrawal-idempotent.js"; import { runWithdrawalManualTest } from "./test-withdrawal-manual.js"; import { runWithdrawalPrepareTest } from "./test-withdrawal-prepare.js"; -import { runKycMerchantDepositRewriteTest } from "./test-kyc-merchant-deposit-rewrite.js"; -import { runKycMerchantDepositTest } from "./test-kyc-merchant-deposit.js"; -import { runWalletTokensTest } from "./test-wallet-tokens.js"; -import { runPaymentShareIdempotencyTest } from "./test-payment-share-idempotency.js"; /** * Test runner. @@ -321,7 +321,7 @@ const allTests: TestMainFunction[] = [ export interface TestRunSpec { includePattern?: string; suiteSpec?: string; - testDir?: string, + testDir?: string; dryRun?: boolean; failFast?: boolean; waitOnFail?: boolean; @@ -409,11 +409,11 @@ export async function runTests(spec: TestRunSpec) { } catch (e) { // Ignore } - fs.mkdirSync(testRootDir) + fs.mkdirSync(testRootDir); } else { testRootDir = fs.mkdtempSync( path.join(os.tmpdir(), "taler-integrationtests-"), - ) + ); } updateCurrentSymlink(testRootDir); console.log(`testsuite root directory: ${testRootDir}`); @@ -443,10 +443,21 @@ export async function runTests(spec: TestRunSpec) { const filteredTests: TestMainFunction[] = []; + const patterns = spec.includePattern?.split(","); + for (const [n, testCase] of allTests.entries()) { const testName = getTestName(testCase); - if (spec.includePattern && !minimatch(testName, spec.includePattern)) { - continue; + if (patterns) { + let matched = false; + for (const pat of patterns) { + if (minimatch(testName, pat)) { + matched = true; + break; + } + } + if (!matched) { + continue; + } } if (testCase.experimental && !spec.includeExperimental) {