cycles-quartz/apps/transfers/frontend/tests/e2e/transfers.spec.ts

125 lines
3.5 KiB
TypeScript
Raw Normal View History

2024-08-28 08:07:41 +00:00
import test from './fixtures'
import { importWallet } from './helpers/importWallet'
import { getBalance } from './helpers/getBalance'
import { swapWallet } from './helpers/swapWallet'
import { signTx } from './helpers/signTx'
import { connectWallet } from './helpers/connectWalet'
import { setSeedPhrase } from './helpers/setSeedPhrase'
2024-08-28 08:07:41 +00:00
test.describe.configure({ mode: 'serial' })
test.beforeEach(async ({ context, page }) => {
await connectWallet({ context, page })
await setSeedPhrase({ page, seedPhrase: process.env.TEST_WALLET_MNEMONIC })
2024-08-28 08:07:41 +00:00
})
let mainBalance: number
2024-08-28 08:07:41 +00:00
test.describe('Transfers', () => {
test('can deposit a sum successfully', async ({ context, page }) => {
// Initialize the balance
mainBalance = Number(
(await getBalance({ context, page }))!.replace('$', ''),
)
await page.getByRole('button', { name: /deposit/i }).click()
await page.keyboard.type('20')
await page
.getByRole('button', { name: /deposit/i })
.nth(1)
.click()
await signTx({ context, page })
await page
.getByRole('button', { name: /cancel/i, includeHidden: false })
.click()
mainBalance += 20
await test
.expect(await getBalance({ context, page }))
.toEqual(`$${mainBalance}`)
})
test('can transfer to another wallet successfully', async ({
context,
extensionUrl,
page,
}) => {
// Import a secondary wallet to transfer to
await importWallet({
extensionUrl,
mnemonic: process.env.TEST_SECONDARY_WALLET_MNEMONIC,
page: await context.newPage(),
name: 'secondary',
})
// Initialize the secondary account balance after importing
const secondaryBalance = Number(
(await getBalance({ context, page }))!.replace('$', ''),
)
// Swap back to main wallet
await swapWallet({ context, extensionUrl, name: 'main' })
// Transfer to the secondary wallet
await page.getByRole('button', { name: /transfer/i }).click()
await page.keyboard.type(process.env.TEST_SECONDARY_WALLET_ADDRESS)
await page.getByPlaceholder('0.00').fill('10')
await page
.getByRole('button', { name: /transfer/i })
.nth(1)
.click()
await signTx({ context, page })
await page
.getByRole('button', { name: /cancel/i, includeHidden: false })
.click()
mainBalance -= 10
await test
.expect(await getBalance({ context, page }))
.toEqual(`$${mainBalance}`)
// Swap to secondary to check if the transfer was received
await swapWallet({ context, extensionUrl, name: 'secondary' })
await test
.expect(await getBalance({ context, page }))
.toEqual(`$${secondaryBalance + 10}`)
// Set balance to 0 again for cleaning purposes
await page.getByRole('button', { name: /withdraw/i }).click()
await page
.getByRole('button', { name: /withdraw/i })
.nth(1)
.click()
await signTx({ context, page })
await page
.getByRole('button', { name: /cancel/i, includeHidden: false })
.click()
// Back to main wallet
await swapWallet({ context, extensionUrl, name: 'main' })
2024-08-28 08:07:41 +00:00
})
test('can withdraw deposited sum successfully', async ({ context, page }) => {
await page.getByRole('button', { name: /withdraw/i }).click()
await page
.getByRole('button', { name: /withdraw/i })
.nth(1)
.click()
await signTx({ context, page })
await page
.getByRole('button', { name: /cancel/i, includeHidden: false })
.click()
await test.expect(await getBalance({ context, page })).toEqual('$0')
2024-08-28 08:07:41 +00:00
})
})