allow repeats in test case
This commit is contained in:
parent
3321e40bff
commit
e8c0a43dd3
@ -591,9 +591,7 @@ export class ExchangeService implements ExchangeServiceInterface {
|
|||||||
name: exchangeName,
|
name: exchangeName,
|
||||||
roundUnit: config.getString("taler", "currency_round_unit").required(),
|
roundUnit: config.getString("taler", "currency_round_unit").required(),
|
||||||
};
|
};
|
||||||
const privFile = config
|
const privFile = config.getPath("exchange", "master_priv_file").required();
|
||||||
.getPath("exchange", "master_priv_file")
|
|
||||||
.required();
|
|
||||||
const eddsaPriv = fs.readFileSync(privFile);
|
const eddsaPriv = fs.readFileSync(privFile);
|
||||||
const keyPair: EddsaKeyPair = {
|
const keyPair: EddsaKeyPair = {
|
||||||
eddsaPriv,
|
eddsaPriv,
|
||||||
@ -991,6 +989,11 @@ function shellWrap(s: string) {
|
|||||||
export class WalletCli {
|
export class WalletCli {
|
||||||
constructor(private globalTestState: GlobalTestState) {}
|
constructor(private globalTestState: GlobalTestState) {}
|
||||||
|
|
||||||
|
deleteDatabase() {
|
||||||
|
const wdb = this.globalTestState.testDir + "/walletdb.json";
|
||||||
|
fs.unlinkSync(wdb);
|
||||||
|
}
|
||||||
|
|
||||||
async apiRequest(
|
async apiRequest(
|
||||||
request: string,
|
request: string,
|
||||||
payload: Record<string, unknown>,
|
payload: Record<string, unknown>,
|
||||||
|
@ -41,29 +41,13 @@ const prevT = new GlobalTestState({
|
|||||||
testDir: existingTestDir,
|
testDir: existingTestDir,
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
async function withdrawAndPay(
|
||||||
* Run test.
|
t: GlobalTestState,
|
||||||
*/
|
wallet: WalletCli,
|
||||||
runTestWithState(prevT, async (t: GlobalTestState) => {
|
bank: BankService,
|
||||||
// Set up test environment
|
exchange: ExchangeService,
|
||||||
|
merchant: MerchantService,
|
||||||
const bank = BankService.fromExistingConfig(t);
|
): Promise<void> {
|
||||||
const exchange = ExchangeService.fromExistingConfig(t, "testexchange-1");
|
|
||||||
const merchant = MerchantService.fromExistingConfig(t, "testmerchant-1");
|
|
||||||
|
|
||||||
await bank.start();
|
|
||||||
await exchange.start();
|
|
||||||
await merchant.start();
|
|
||||||
await Promise.all([
|
|
||||||
bank.pingUntilAvailable(),
|
|
||||||
merchant.pingUntilAvailable(),
|
|
||||||
exchange.pingUntilAvailable(),
|
|
||||||
]);
|
|
||||||
|
|
||||||
const wallet = new WalletCli(t);
|
|
||||||
|
|
||||||
// Withdraw digital cash into the wallet.
|
|
||||||
|
|
||||||
await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:100" });
|
await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:100" });
|
||||||
|
|
||||||
// Set up order.
|
// Set up order.
|
||||||
@ -104,6 +88,42 @@ runTestWithState(prevT, async (t: GlobalTestState) => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
t.assertTrue(orderStatus.order_status === "paid");
|
t.assertTrue(orderStatus.order_status === "paid");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run test.
|
||||||
|
*/
|
||||||
|
runTestWithState(prevT, async (t: GlobalTestState) => {
|
||||||
|
// Set up test environment
|
||||||
|
|
||||||
|
const bank = BankService.fromExistingConfig(t);
|
||||||
|
const exchange = ExchangeService.fromExistingConfig(t, "testexchange-1");
|
||||||
|
const merchant = MerchantService.fromExistingConfig(t, "testmerchant-1");
|
||||||
|
|
||||||
|
await bank.start();
|
||||||
|
await exchange.start();
|
||||||
|
await merchant.start();
|
||||||
|
await Promise.all([
|
||||||
|
bank.pingUntilAvailable(),
|
||||||
|
merchant.pingUntilAvailable(),
|
||||||
|
exchange.pingUntilAvailable(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
const wallet = new WalletCli(t);
|
||||||
|
|
||||||
|
// Withdraw digital cash into the wallet.
|
||||||
|
|
||||||
|
const repetitions = Number.parseInt(process.env["TALER_TEST_REPEAT"] ?? "1");
|
||||||
|
|
||||||
|
for (let rep = 0; rep < repetitions; rep++) {
|
||||||
|
console.log("repetition", rep);
|
||||||
|
try {
|
||||||
|
wallet.deleteDatabase();
|
||||||
|
await withdrawAndPay(t, wallet, bank, exchange, merchant);
|
||||||
|
} catch (e) {
|
||||||
|
console.log("ignoring exception", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await t.shutdown();
|
await t.shutdown();
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user