|
16 | 16 | import { Given, When, Then } from "@wdio/cucumber-framework"; |
17 | 17 | import { expect, $ } from "@wdio/globals"; |
18 | 18 |
|
| 19 | +// State object to share data between steps |
| 20 | +const stepState: Record<string, string> = { |
| 21 | + walletName: "", // We need unique walletName for each test, so we use a global state object to share the walletName between steps |
| 22 | +}; |
| 23 | + |
19 | 24 | // Map page names to routes |
20 | 25 | const routes: Record<string, string> = { |
21 | 26 | login: "login", |
|
83 | 88 | ); |
84 | 89 |
|
85 | 90 | Then(/^I should see my new wallet in the list of wallets$/, async () => { |
86 | | - await expect($(".wallet-list")).toBeDisplayed(); |
| 91 | + await expect($("[data-test=wallet-list]")).toBeDisplayed(); |
| 92 | + const walletItemSelector = `[data-test=wallet-item-name-${stepState.walletName}]`; |
| 93 | + // Wait for the wallet item to be displayed assuming API latency |
| 94 | + await $(walletItemSelector).waitForDisplayed({ |
| 95 | + timeout: 3000, |
| 96 | + timeoutMsg: `Wallet item with name "${stepState.walletName}" did not appear in the list`, |
| 97 | + }); |
87 | 98 | }); |
88 | 99 |
|
89 | 100 | // ============================================================================ |
@@ -180,8 +191,16 @@ When("I login with an account", async () => { |
180 | 191 | }); |
181 | 192 |
|
182 | 193 | When("I create a new wallet", async () => { |
| 194 | + const ts = Date.now(); |
| 195 | + stepState.walletName = `wallet${ts}`; |
183 | 196 | await $("[data-test=wallet-create-open]").click(); |
184 | | - await $('[data-test="wallet-create-name"] input').setValue("wallet1"); |
| 197 | + // Wallet creation drawer takes some time to open, so we wait for the input to be displayed |
| 198 | + await $('[data-test="wallet-create-name"] input').waitForDisplayed({ |
| 199 | + timeout: 3000, |
| 200 | + }); |
| 201 | + await $('[data-test="wallet-create-name"] input').setValue( |
| 202 | + stepState.walletName, |
| 203 | + ); |
185 | 204 | await $('[data-test="wallet-create-description"] input').setValue("desc"); |
186 | 205 | await $('[data-test="wallet-create-submit"]').click(); |
187 | 206 | }); |
0 commit comments