Skip to content

Commit d2836c2

Browse files
authored
test: add test for discover midnight banner [LW-13628] (#2004)
* test: add test for LW-13628 discover midnight banner * test: add test for LW-13628 discover midnight banner, update assert * test: add test for LW-13628 discover midnight banner, move steps from tokens page to midnight banner * test: add test for LW-13628 discover midnight banner, updates * test: add test for LW-13628 discover midnight banner, update variable name * test: add test for LW-13628 discover midnight banner, fix test file path
1 parent ed17006 commit d2836c2

File tree

7 files changed

+119
-7
lines changed

7 files changed

+119
-7
lines changed

packages/core/src/ui/components/MidnightEventBanner/MidnightEventBanner.tsx

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ const PopupButtons = ({ translations, onLearnMore, onReminder }: Props): JSX.Ele
2929
})}
3030
>
3131
<Box mb="$10" w="$fill">
32-
<Button.CallToAction label={translations.learnMore} w="$fill" onClick={onLearnMore} />
32+
<Button.CallToAction
33+
label={translations.learnMore}
34+
w="$fill"
35+
onClick={onLearnMore}
36+
data-testid="learn-more-button-popup"
37+
/>
3338
</Box>
3439
<Box w="$fill">
3540
<Button.Secondary label={translations.reminder} w="$fill" onClick={onReminder} />
@@ -49,10 +54,18 @@ const FullScreenButtons = ({ translations, onLearnMore, onReminder }: Props): JS
4954
})}
5055
>
5156
<Box mr={'$20'}>
52-
<Button.CallToAction label={translations.learnMore} onClick={onLearnMore} />
57+
<Button.CallToAction
58+
label={translations.learnMore}
59+
onClick={onLearnMore}
60+
data-testid="learn-more-button-extended"
61+
/>
5362
</Box>
5463
<Box>
55-
<Button.Secondary label={translations.reminder} onClick={onReminder} />
64+
<Button.Secondary
65+
label={translations.reminder}
66+
onClick={onReminder}
67+
data-testid="remind-me-later-button-extended"
68+
/>
5669
</Box>
5770
</Box>
5871
);
@@ -70,6 +83,7 @@ const Title = ({ translations }: Props): JSX.Element => (
7083
})
7184
)}
7285
weight="$bold"
86+
data-testid="midnight-event-banner-title"
7387
>
7488
{translations.title}
7589
</Text.SubHeading>
@@ -113,7 +127,7 @@ export const MidnightEventBanner = ({ translations, onClose, onLearnMore, onRemi
113127
w="$fill"
114128
>
115129
<Box className={styles.close}>
116-
<NavigationButton.Close onClick={onClose} />
130+
<NavigationButton.Close onClick={onClose} data-testid="midnight-event-banner-close-button" />
117131
</Box>
118132
<Flex w="$fill" flexDirection="column">
119133
<Title translations={translations} />
@@ -126,7 +140,11 @@ export const MidnightEventBanner = ({ translations, onClose, onLearnMore, onRemi
126140
}
127141
})}
128142
>
129-
<Text.Body.Normal className={styles.description} weight="$medium">
143+
<Text.Body.Normal
144+
className={styles.description}
145+
weight="$medium"
146+
data-testid="midnight-event-banner-description"
147+
>
130148
{translations.description}
131149
</Text.Body.Normal>
132150
</Box>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { expect } from 'chai';
2+
import { t } from '../utils/translationService';
3+
import midnightBanner from '../elements/midnightBanner';
4+
5+
class MidnightBannerAssert {
6+
async assertSeeMidnightBanner() {
7+
await midnightBanner.title.waitForDisplayed();
8+
expect(await midnightBanner.title.getText()).to.equal(await t('midnightEventBanner.title'));
9+
await midnightBanner.closeButton.waitForDisplayed();
10+
await midnightBanner.bannerDescriptionText.waitForDisplayed();
11+
expect(await midnightBanner.bannerDescriptionText.getText()).to.equal(await t('midnightEventBanner.description'));
12+
await midnightBanner.learnMoreButton.waitForDisplayed();
13+
expect(await midnightBanner.learnMoreButton.getText()).to.equal(await t('midnightEventBanner.learnMore'));
14+
await midnightBanner.remindMeLaterButton.waitForDisplayed();
15+
expect(await midnightBanner.remindMeLaterButton.getText()).to.equal(await t('midnightEventBanner.reminder'));
16+
}
17+
18+
async assertSeeMidnightURL() {
19+
const EXPECTED_MIDNIGHT_URL = 'https://www.midnight.gd';
20+
const currentUrl = await browser.getUrl();
21+
expect(currentUrl).to.contain(EXPECTED_MIDNIGHT_URL);
22+
}
23+
}
24+
25+
export default new MidnightBannerAssert();
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/* global WebdriverIO */
2+
import { ChainablePromiseElement } from 'webdriverio';
3+
4+
class MidnightBanner {
5+
private readonly TITLE = '[data-testid="midnight-event-banner-title"]';
6+
private readonly LEARN_MORE_BUTTON = '[data-testid="learn-more-button-extended"]';
7+
private readonly REMIND_ME_LATER_BUTTON = '[data-testid="remind-me-later-button-extended"]';
8+
private readonly CLOSE_BUTTON = '[data-testid="midnight-event-banner-close-button"]';
9+
private readonly BANNER_DESCRIPTION_TEXT = '[data-testid="midnight-event-banner-description"]';
10+
11+
get title(): ChainablePromiseElement<WebdriverIO.Element> {
12+
return $(this.TITLE);
13+
}
14+
15+
get learnMoreButton(): ChainablePromiseElement<WebdriverIO.Element> {
16+
return $(this.LEARN_MORE_BUTTON);
17+
}
18+
get closeButton(): ChainablePromiseElement<WebdriverIO.Element> {
19+
return $(this.CLOSE_BUTTON);
20+
}
21+
22+
get bannerDescriptionText(): ChainablePromiseElement<WebdriverIO.Element> {
23+
return $(this.BANNER_DESCRIPTION_TEXT);
24+
}
25+
26+
get remindMeLaterButton(): ChainablePromiseElement<WebdriverIO.Element> {
27+
return $(this.REMIND_ME_LATER_BUTTON);
28+
}
29+
30+
async clickOnLearnMoreButton() {
31+
await this.learnMoreButton.waitForClickable();
32+
await this.learnMoreButton.click();
33+
}
34+
}
35+
36+
export default new MidnightBanner();
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
@Midnight-Banner @Testnet
2+
3+
Feature: Midnight - banner view
4+
5+
Background:
6+
Given Wallet is synced
7+
8+
@LW-13628
9+
Scenario: "Discover the Midnight Token Distribution" banner - click on "Learn more" button
10+
Given "Discover the Midnight Token Distribution" banner is displayed
11+
When I click on "Learn more" button on "Discover the Midnight Token Distribution" banner
12+
Then "www.midnight.gd" page is displayed in new tab

packages/e2e-tests/src/hooks/beforeTagHooks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Before(
3838

3939
Before(
4040
{
41-
tags: '@AddressBook-extended or @Transactions-Extended or @Tokens-extended or @Staking-Extended or @LockWallet-extended or @Top-Navigation-Extended or @NFTs-Extended or @NFT-Folders-Extended or @SendTx-Bundles-Extended or @SendTx-Simple-Extended or @MainNavigation-Extended or @Send-Transaction-Metadata-Extended or @Settings-Extended or @DAppConnector or @DAppConnector-Extended or @Analytics-Settings-Extended or @Banxa-Extended or @GeneratePaperWallet or @SignMessage-Extended or @WalletAddressPage-Extended or @NamiMode-Extended or @VotingCenterExtended or @DAppExplorer-Extended or @WalletRenaming-Extended or @SharedWalletOnboarding-Extended or @NftPrintLab-Extended'
41+
tags: '@AddressBook-extended or @Transactions-Extended or @Tokens-extended or @Staking-Extended or @LockWallet-extended or @Top-Navigation-Extended or @NFTs-Extended or @NFT-Folders-Extended or @SendTx-Bundles-Extended or @SendTx-Simple-Extended or @MainNavigation-Extended or @Send-Transaction-Metadata-Extended or @Settings-Extended or @DAppConnector or @DAppConnector-Extended or @Analytics-Settings-Extended or @Banxa-Extended or @GeneratePaperWallet or @SignMessage-Extended or @WalletAddressPage-Extended or @NamiMode-Extended or @VotingCenterExtended or @DAppExplorer-Extended or @WalletRenaming-Extended or @SharedWalletOnboarding-Extended or @NftPrintLab-Extended or @Midnight-Banner'
4242
},
4343
async () => {
4444
await extendedViewRepositoryWalletInitialization([TestWalletName.TestAutomationWallet]);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { Given, When, Then } from '@cucumber/cucumber';
2+
import midnightBanner from '../elements/midnightBanner';
3+
import midnightBannerAssert from '../assert/midnightBannerAssert';
4+
import { switchToLastWindow } from '../utils/window';
5+
6+
Given(/^"Discover the Midnight Token Distribution" banner is displayed$/, async () => {
7+
await midnightBannerAssert.assertSeeMidnightBanner();
8+
});
9+
10+
When(/^I click on "Learn more" button on "Discover the Midnight Token Distribution" banner$/, async () => {
11+
await midnightBanner.clickOnLearnMoreButton();
12+
});
13+
14+
Then(/^"www.midnight.gd" page is displayed in new tab$/, async () => {
15+
await switchToLastWindow();
16+
await midnightBannerAssert.assertSeeMidnightURL();
17+
});

packages/e2e-tests/wdio.conf.base.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,11 @@ export const config: WebdriverIO.Config = {
104104
'./src/features/NetworkRequestsCounting.feature'
105105
],
106106
batch15: ['./src/features/NFTsFolders*.feature', './src/features/SignMessage.feature'],
107-
batch16: ['./src/features/SendTransactionBundlesExtended*.feature', './src/features/e2e/SignDataDAppE2E.feature']
107+
batch16: [
108+
'./src/features/SendTransactionBundlesExtended*.feature',
109+
'./src/features/e2e/SignDataDAppE2E.feature',
110+
'./src/features/MidnightBanner.feature'
111+
]
108112
},
109113
automationProtocol: 'webdriver',
110114
exclude: [],

0 commit comments

Comments
 (0)