Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: alert system and refine SIWE and contract interaction alerts #27205

Open
wants to merge 16 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions app/_locales/de/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/el/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 9 additions & 6 deletions app/_locales/en/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/en_GB/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/es/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/fr/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/hi/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/id/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/ja/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/ko/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/pt/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/ru/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/tl/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/tr/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/vi/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 0 additions & 6 deletions app/_locales/zh_CN/messages.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 13 additions & 21 deletions test/e2e/tests/confirmations/alerts/insufficient-funds.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import {
WINDOW_TITLES,
} from '../../../helpers';
import { SMART_CONTRACTS } from '../../../seeder/smart-contracts';
import { scrollAndConfirmAndAssertConfirm } from '../helpers';
import {
TestSuiteArguments,
openDAppWithContract,
Expand Down Expand Up @@ -47,37 +46,19 @@ describe('Alert for insufficient funds @no-mmi', function () {
await mintNft(driver);

await verifyAlertForInsufficientBalance(driver);

await scrollAndConfirmAndAssertConfirm(driver);

await verifyConfirmationIsDisabled(driver);
},
);
});
});

async function verifyConfirmationIsDisabled(driver: Driver) {
const confirmButton = await driver.findElement(
'[data-testid="confirm-alert-modal-submit-button"]',
);
assert.equal(await confirmButton.isEnabled(), false);
}

async function verifyAlertForInsufficientBalance(driver: Driver) {
const alert = await driver.findElement('[data-testid="inline-alert"]');
assert.equal(await alert.getText(), 'Alert');
await driver.clickElementSafe('.confirm-scroll-to-bottom__button');
await driver.clickElement('[data-testid="inline-alert"]');

const alertDescription = await driver.findElement(
'[data-testid="alert-modal__selected-alert"]',
);
const alertDescriptionText = await alertDescription.getText();
assert.equal(
alertDescriptionText,
'You do not have enough ETH in your account to pay for transaction fees.',
);
await driver.clickElement('[data-testid="alert-modal-close-button"]');
await displayAlertForInsufficientBalance(driver);
await driver.clickElement('[data-testid="alert-modal-button"]');
}

async function mintNft(driver: Driver) {
Expand All @@ -87,3 +68,14 @@ async function mintNft(driver: Driver) {
await driver.waitUntilXWindowHandles(3);
await driver.switchToWindowWithTitle(WINDOW_TITLES.Dialog);
}

async function displayAlertForInsufficientBalance(driver: Driver) {
const alertDescription = await driver.findElement(
'[data-testid="alert-modal__selected-alert"]',
);
const alertDescriptionText = await alertDescription.getText();
assert.equal(
alertDescriptionText,
'You do not have enough ETH in your account to pay for transaction fees.',
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ describe('Malicious Confirmation Signature - Bad Domain @no-mmi', function (this

await scrollAndConfirmAndAssertConfirm(driver);

await acknowledgeAlert(driver);

await driver.clickElement(
'[data-testid="confirm-alert-modal-cancel-button"]',
);
Expand All @@ -118,8 +120,8 @@ describe('Malicious Confirmation Signature - Bad Domain @no-mmi', function (this
expectedProps: {
alert_action_clicked: [],
alert_key_clicked: [],
alert_resolved: [],
alert_resolved_count: 0,
alert_resolved: ['requestFrom'],
alert_resolved_count: 1,
alert_triggered: ['requestFrom'],
alert_triggered_count: 1,
alert_visualized: ['requestFrom'],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,11 +147,14 @@ describe('AlertModal', () => {

it('sets the alert as confirmed when checkbox is called', () => {
const setAlertConfirmedMock = jest.fn();
const dangerAlertMock = alertsMock.find(
(alert) => alert.key === DATA_ALERT_KEY_MOCK,
);
const useAlertsSpy = jest.spyOn(useAlertsModule, 'default');
const newMockStore = configureMockStore([])({
...STATE_MOCK,
confirmAlerts: {
alerts: { [OWNER_ID_MOCK]: [alertsMock[1]] },
alerts: { [OWNER_ID_MOCK]: [dangerAlertMock] },
confirmed: {
[OWNER_ID_MOCK]: {
[DATA_ALERT_KEY_MOCK]: false,
Expand All @@ -162,10 +165,10 @@ describe('AlertModal', () => {

(useAlertsSpy as jest.Mock).mockReturnValue({
setAlertConfirmed: setAlertConfirmedMock,
alerts: [alertsMock[1]],
alerts: [dangerAlertMock],
generalAlerts: [],
fieldAlerts: [alertsMock[1]],
getFieldAlerts: () => [],
fieldAlerts: [dangerAlertMock],
getFieldAlerts: () => [dangerAlertMock],
isAlertConfirmed: () => false,
});
const { getByTestId } = renderWithProvider(
Expand Down Expand Up @@ -233,11 +236,11 @@ describe('AlertModal', () => {
);

expect(queryByTestId('alert-modal-acknowledge-checkbox')).toBeNull();
expect(queryByTestId('alert-modal-button')).toBeNull();
expect(queryByTestId('alert-modal-button')).toBeInTheDocument();
expect(getByText(ACTION_LABEL_MOCK)).toBeInTheDocument();
});

it('renders acknowledge button and checkbox for non-blocking alerts', () => {
it('renders checkbox for non-blocking alerts', () => {
const { getByTestId } = renderWithProvider(
<AlertModal
ownerId={OWNER_ID_MOCK}
Expand Down
Loading