zepio/__tests__/e2e/send.test.js

159 lines
6.0 KiB
JavaScript
Raw Normal View History

2019-01-23 09:05:48 -08:00
// @flow
2019-02-04 20:41:45 -08:00
2019-01-23 09:05:48 -08:00
import { getApp } from '../setup/utils';
const app = getApp();
2019-01-24 11:23:06 -08:00
beforeEach(async () => {
2019-01-23 09:05:48 -08:00
await app.start();
await app.client.waitUntilWindowLoaded();
2019-01-24 11:23:06 -08:00
await app.client.waitUntilTextExists('#sidebar', 'Send');
2019-01-23 09:05:48 -08:00
await app.client.element('#sidebar a:nth-child(2)').click();
});
2019-02-04 20:41:45 -08:00
2019-01-24 11:23:06 -08:00
afterEach(() => app.stop());
2019-01-23 09:05:48 -08:00
describe('Send', () => {
2019-01-23 11:37:58 -08:00
test('should load "Send Page"', async () => {
2019-02-04 20:41:45 -08:00
expect(app.client.element('#send-wrapper')
.isVisible()).resolves.toEqual(true);
2019-01-23 09:05:48 -08:00
});
2019-01-23 11:37:58 -08:00
test('should show Additional Options click', async () => {
2019-02-04 20:41:45 -08:00
expect(app.client.element('#send-wrapper #send-fee-wrapper')
.isVisible()).resolves.toEqual(false);
2019-01-23 09:05:48 -08:00
await app.client.element('#send-show-additional-options-button').click();
2019-02-04 20:41:45 -08:00
expect(app.client.element('#send-wrapper #send-fee-wrapper')
.isVisible()).resolves.toEqual(true);
2019-01-23 09:05:48 -08:00
});
2019-01-23 11:37:58 -08:00
test('should disable send button if required fields are empty', async () => {
2019-02-04 20:41:45 -08:00
expect(app.client.element('#send-submit-button')
.getAttribute('disabled')).resolves.toEqual(true);
2019-01-23 09:05:48 -08:00
});
2019-01-23 11:37:58 -08:00
test('should enable send button if required fields are filled', async () => {
2019-01-23 09:05:48 -08:00
await app.client.element('#sidebar a:nth-child(1)').click();
await app.client.element('#sidebar a:nth-child(2)').click();
await app.client.element('#send-wrapper #select-component').click();
await app.client
2019-01-24 11:23:06 -08:00
.element('#send-wrapper #select-component #t3Pnbg7XjP7FGPBUuz75H65aczphHgkpoJW')
2019-01-23 09:05:48 -08:00
.click();
2019-01-24 11:23:06 -08:00
await app.client.element('#send-wrapper input[name=amount]').setValue('0.484');
2019-01-23 09:05:48 -08:00
await app.client
.element('#send-wrapper input[name=to]')
.setValue('t14oHp2v54vfmdgQ3v3SNuQga8JKHTNi2a1');
expect(
2019-01-24 11:23:06 -08:00
expect(app.client.element('#send-submit-button').getAttribute('disabled')).resolves.toEqual(
false,
),
2019-01-23 09:05:48 -08:00
);
});
2019-01-23 11:37:58 -08:00
2019-01-24 11:23:06 -08:00
test('should show confirm transaction modal', async () => {
2019-01-23 11:37:58 -08:00
await app.client.element('#sidebar a:nth-child(1)').click();
await app.client.element('#sidebar a:nth-child(2)').click();
2019-01-24 11:23:06 -08:00
2019-01-23 11:37:58 -08:00
await app.client.element('#send-wrapper #select-component').click();
await app.client
2019-01-24 11:23:06 -08:00
.element('#send-wrapper #select-component #t3Pnbg7XjP7FGPBUuz75H65aczphHgkpoJW')
2019-01-23 11:37:58 -08:00
.click();
2019-01-24 11:23:06 -08:00
await app.client.element('#send-wrapper input[name=amount]').setValue('0.484');
2019-01-23 11:37:58 -08:00
await app.client
.element('#send-wrapper input[name=to]')
2019-01-24 11:23:06 -08:00
.setValue('tmMEBdrnRRRMKSUUC9SWdSova7V8NmHBqET');
2019-01-23 11:37:58 -08:00
await app.client.element('#send-submit-button').click();
2019-02-04 20:41:45 -08:00
expect(app.client.element('#send-confirm-transaction-modal')
.isVisible()).resolves.toEqual(true);
2019-01-23 11:37:58 -08:00
});
2019-01-24 11:23:06 -08:00
test('should display a load indicator while the transaction is processed', async () => {
2019-01-23 11:37:58 -08:00
await app.client.element('#sidebar a:nth-child(1)').click();
await app.client.element('#sidebar a:nth-child(2)').click();
2019-01-24 11:23:06 -08:00
2019-01-23 11:37:58 -08:00
await app.client.element('#send-wrapper #select-component').click();
await app.client
2019-01-24 11:23:06 -08:00
.element('#send-wrapper #select-component #t3Pnbg7XjP7FGPBUuz75H65aczphHgkpoJW')
2019-01-23 11:37:58 -08:00
.click();
2019-01-24 11:23:06 -08:00
await app.client.element('#send-wrapper input[name=amount]').setValue('0.484');
await app.client
.element('#send-wrapper input[name=to]')
.setValue('tmMEBdrnRRRMKSUUC9SWdSova7V8NmHBqET');
await app.client.element('#send-submit-button').click();
await app.client.element('#confirm-modal-button').click();
2019-02-04 20:41:45 -08:00
2019-01-24 11:23:06 -08:00
expect(app.client.getAttribute('#send-confirm-transaction-modal img', 'src')).resolves.toEqual(
expect.stringContaining('/assets/sync_icon.png'),
);
2019-02-04 20:41:45 -08:00
expect(app.client.getText('#send-confirm-transaction-modal p'))
.resolves.toEqual('Processing transaction...');
expect(app.client.element('#confirm-modal-button')
.isVisible()).resolves.toEqual(false);
2019-01-24 11:23:06 -08:00
});
test('should show an error in invalid transaction', async () => {
2019-02-04 20:41:45 -08:00
expect(app.client.element('#send-error-text')
.isVisible()).resolves.toEqual(false);
2019-01-24 11:23:06 -08:00
await app.client.element('#sidebar a:nth-child(1)').click();
await app.client.element('#sidebar a:nth-child(2)').click();
await app.client.element('#send-wrapper #select-component').click();
2019-01-23 11:37:58 -08:00
await app.client
2019-01-24 11:23:06 -08:00
.element('#send-wrapper #select-component #t3Pnbg7XjP7FGPBUuz75H65aczphHgkpoJW')
.click();
await app.client.element('#send-wrapper input[name=amount]').setValue('-500');
2019-01-23 11:37:58 -08:00
await app.client
.element('#send-wrapper input[name=to]')
2019-01-24 11:23:06 -08:00
.setValue('tmMEBdrnRRRMKSUUC9SWdSova7V8NmHBqET');
2019-01-23 11:37:58 -08:00
await app.client.element('#send-submit-button').click();
2019-01-24 11:23:06 -08:00
await app.client.element('#confirm-modal-button').click();
2019-01-23 11:37:58 -08:00
expect(
2019-01-24 11:23:06 -08:00
app.client
.element('#send-error-message')
.waitForVisible()
.isVisible(),
2019-01-23 11:37:58 -08:00
).resolves.toEqual(true);
2019-01-24 11:23:06 -08:00
});
2019-01-23 11:37:58 -08:00
2019-01-24 11:23:06 -08:00
test('should show a success screen after transaction and show a transaction item', async () => {
2019-02-04 20:41:45 -08:00
expect(app.client.element('#send-success-wrapper')
.isVisible()).resolves.toEqual(false);
2019-01-23 11:37:58 -08:00
await app.client.element('#sidebar a:nth-child(1)').click();
2019-01-24 11:23:06 -08:00
await app.client.element('#sidebar a:nth-child(2)').click();
await app.client.element('#send-wrapper #select-component').click();
await app.client
.element('#send-wrapper #select-component #t3Pnbg7XjP7FGPBUuz75H65aczphHgkpoJW')
.click();
await app.client.element('#send-wrapper input[name=amount]').setValue('0.484');
await app.client
.element('#send-wrapper input[name=to]')
.setValue('t3Pnbg7XjP7FGasduz75HadsdzphHgkadW');
2019-01-23 11:37:58 -08:00
2019-01-24 11:23:06 -08:00
await app.client.element('#send-submit-button').click();
await app.client.element('#confirm-modal-button').click();
2019-01-23 11:37:58 -08:00
2019-01-24 11:23:06 -08:00
await app.client
.waitForVisible('#send-success-wrapper')
.element('#send-confirm-transaction-modal button')
.click();
await app.client.element('#sidebar a:nth-child(1)').click();
2019-01-23 11:37:58 -08:00
2019-01-24 11:23:06 -08:00
await app.client.waitUntilTextExists('#transaction-item-operation-id-1', 'Send');
2019-01-23 11:37:58 -08:00
2019-02-04 20:41:45 -08:00
expect(await app.client.element('#transaction-item-operation-id-1 img')
.isVisible()).toEqual(true);
2019-01-24 11:23:06 -08:00
expect(
await app.client.element('#transaction-item-operation-id-1 img').getAttribute('src'),
2019-01-23 11:37:58 -08:00
).toEndWith('/assets/transaction_sent_icon.svg');
});
2019-01-23 09:05:48 -08:00
});