mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
137 lines
5.0 KiB
JavaScript
137 lines
5.0 KiB
JavaScript
const { strict: assert } = require('assert');
|
|
|
|
const { withFixtures } = require('../helpers');
|
|
const FixtureBuilder = require('../fixture-builder');
|
|
const { ganacheOptions, loadSwaps, buildQuote } = require('./shared');
|
|
|
|
describe('Swaps - notifications', function () {
|
|
it('tests notifications for verified token on 1 source and price difference', async function () {
|
|
await withFixtures(
|
|
{
|
|
fixtures: new FixtureBuilder().build(),
|
|
ganacheOptions,
|
|
failOnConsoleError: false,
|
|
title: this.test.title,
|
|
},
|
|
async ({ driver }) => {
|
|
await loadSwaps(driver);
|
|
await buildQuote(driver, {
|
|
amount: 2,
|
|
swapTo: 'INUINU',
|
|
});
|
|
const reviewSwapButton = await driver.findElement(
|
|
'[data-testid="page-container-footer-next"]',
|
|
);
|
|
assert.equal(await reviewSwapButton.getText(), 'Review swap');
|
|
assert.equal(await reviewSwapButton.isEnabled(), false);
|
|
const continueButton = await driver.findClickableElement(
|
|
'.actionable-message__action-warning',
|
|
);
|
|
assert.equal(await continueButton.getText(), 'Continue');
|
|
await continueButton.click();
|
|
assert.equal(await reviewSwapButton.isEnabled(), true);
|
|
await reviewSwapButton.click();
|
|
await driver.waitForSelector({
|
|
css: '[class*="box--align-items-center"]',
|
|
text: 'Estimated gas fee',
|
|
});
|
|
const swapButton = await driver.findElement(
|
|
'[data-testid="page-container-footer-next"]',
|
|
);
|
|
assert.equal(await swapButton.isEnabled(), false);
|
|
await driver.clickElement({ text: 'I understand', tag: 'button' });
|
|
assert.equal(await swapButton.getText(), 'Swap');
|
|
assert.equal(await swapButton.isEnabled(), true);
|
|
},
|
|
);
|
|
});
|
|
|
|
it('tests notifications for verified token on 0 sources and high slippage', async function () {
|
|
await withFixtures(
|
|
{
|
|
fixtures: new FixtureBuilder().build(),
|
|
ganacheOptions,
|
|
failOnConsoleError: false,
|
|
title: this.test.title,
|
|
},
|
|
async ({ driver }) => {
|
|
await loadSwaps(driver);
|
|
await buildQuote(driver, {
|
|
amount: 2,
|
|
swapTo: '0x72c9Fb7ED19D3ce51cea5C56B3e023cd918baaDf',
|
|
});
|
|
await driver.waitForSelector({
|
|
css: '.popover-header__title',
|
|
text: 'Import token?',
|
|
});
|
|
await driver.clickElement(
|
|
'[data-testid="page-container__import-button"]',
|
|
);
|
|
const reviewSwapButton = await driver.findElement(
|
|
'[data-testid="page-container-footer-next"]',
|
|
);
|
|
assert.equal(await reviewSwapButton.isEnabled(), false);
|
|
const continueButton = await driver.findClickableElement(
|
|
'.actionable-message__action-danger',
|
|
);
|
|
assert.equal(await continueButton.getText(), 'Continue');
|
|
await continueButton.click();
|
|
assert.equal(await reviewSwapButton.isEnabled(), true);
|
|
await driver.clickElement('[class="slippage-buttons__header-text"]');
|
|
await driver.clickElement({ text: 'custom', tag: 'button' });
|
|
await driver.fill(
|
|
'input[data-testid="slippage-buttons__custom-slippage"]',
|
|
'20',
|
|
);
|
|
await driver.waitForSelector({
|
|
css: '[class*="slippage-buttons__error-text"]',
|
|
text: 'Slippage amount is too high and will result in a bad rate. Please reduce your slippage tolerance to a value below 15%.',
|
|
});
|
|
assert.equal(await reviewSwapButton.isEnabled(), false);
|
|
await driver.fill(
|
|
'input[data-testid="slippage-buttons__custom-slippage"]',
|
|
'4',
|
|
);
|
|
assert.equal(await reviewSwapButton.isEnabled(), true);
|
|
},
|
|
);
|
|
});
|
|
|
|
it('tests a notification for not enough balance', async function () {
|
|
await withFixtures(
|
|
{
|
|
fixtures: new FixtureBuilder().build(),
|
|
ganacheOptions,
|
|
failOnConsoleError: false,
|
|
title: this.test.title,
|
|
},
|
|
async ({ driver }) => {
|
|
await loadSwaps(driver);
|
|
await buildQuote(driver, {
|
|
amount: 50,
|
|
swapTo: 'USDC',
|
|
});
|
|
const reviewSwapButton = await driver.findElement(
|
|
'[data-testid="page-container-footer-next"]',
|
|
);
|
|
assert.equal(await reviewSwapButton.getText(), 'Review swap');
|
|
assert.equal(await reviewSwapButton.isEnabled(), true);
|
|
await reviewSwapButton.click();
|
|
await driver.waitForSelector({
|
|
css: '[class*="box--align-items-center"]',
|
|
text: 'Estimated gas fee',
|
|
});
|
|
await driver.waitForSelector({
|
|
css: '[class*="actionable-message__message"]',
|
|
text: 'You need 43.4467 more TESTETH to complete this swap',
|
|
});
|
|
const swapButton = await driver.findElement(
|
|
'[data-testid="page-container-footer-next"]',
|
|
);
|
|
assert.equal(await swapButton.getText(), 'Swap');
|
|
assert.equal(await swapButton.isEnabled(), false);
|
|
},
|
|
);
|
|
});
|
|
});
|