mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Onboarding v2 e2e test (#12628)
* add data-testid's * import wallet test * create wallet test * fix lint issues
This commit is contained in:
parent
ab2aca2c08
commit
dc19e1d5f6
@ -27,6 +27,36 @@ describe('Metamask Import UI', function () {
|
|||||||
async ({ driver }) => {
|
async ({ driver }) => {
|
||||||
await driver.navigate();
|
await driver.navigate();
|
||||||
|
|
||||||
|
if (process.env.ONBOARDING_V2 === '1') {
|
||||||
|
// welcome
|
||||||
|
await driver.clickElement('[data-testid="onboarding-import-wallet"]');
|
||||||
|
|
||||||
|
// metrics
|
||||||
|
await driver.clickElement('[data-testid="metametrics-no-thanks"]');
|
||||||
|
|
||||||
|
// import with recovery phrase
|
||||||
|
await driver.fill('[data-testid="import-srp-text"]', testSeedPhrase);
|
||||||
|
await driver.clickElement('[data-testid="import-srp-confirm"]');
|
||||||
|
|
||||||
|
// create password
|
||||||
|
await driver.fill(
|
||||||
|
'[data-testid="create-password-new"]',
|
||||||
|
'correct horse battery staple',
|
||||||
|
);
|
||||||
|
await driver.fill(
|
||||||
|
'[data-testid="create-password-confirm"]',
|
||||||
|
'correct horse battery staple',
|
||||||
|
);
|
||||||
|
await driver.clickElement('[data-testid="create-password-terms"]');
|
||||||
|
await driver.clickElement('[data-testid="create-password-import"]');
|
||||||
|
|
||||||
|
// complete
|
||||||
|
await driver.clickElement('[data-testid="onboarding-complete-done"]');
|
||||||
|
|
||||||
|
// pin extension
|
||||||
|
await driver.clickElement('[data-testid="pin-extension-next"]');
|
||||||
|
await driver.clickElement('[data-testid="pin-extension-done"]');
|
||||||
|
} else {
|
||||||
// clicks the continue button on the welcome screen
|
// clicks the continue button on the welcome screen
|
||||||
await driver.findElement('.welcome-page__header');
|
await driver.findElement('.welcome-page__header');
|
||||||
await driver.clickElement({
|
await driver.clickElement({
|
||||||
@ -47,7 +77,10 @@ describe('Metamask Import UI', function () {
|
|||||||
);
|
);
|
||||||
|
|
||||||
await driver.fill('#password', 'correct horse battery staple');
|
await driver.fill('#password', 'correct horse battery staple');
|
||||||
await driver.fill('#confirm-password', 'correct horse battery staple');
|
await driver.fill(
|
||||||
|
'#confirm-password',
|
||||||
|
'correct horse battery staple',
|
||||||
|
);
|
||||||
|
|
||||||
await driver.clickElement('.first-time-flow__terms');
|
await driver.clickElement('.first-time-flow__terms');
|
||||||
|
|
||||||
@ -59,6 +92,7 @@ describe('Metamask Import UI', function () {
|
|||||||
text: enLocaleMessages.endOfFlowMessage10.message,
|
text: enLocaleMessages.endOfFlowMessage10.message,
|
||||||
tag: 'button',
|
tag: 'button',
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Show account information
|
// Show account information
|
||||||
await driver.clickElement(
|
await driver.clickElement(
|
||||||
|
@ -16,6 +16,69 @@ describe('Metamask Responsive UI', function () {
|
|||||||
async ({ driver }) => {
|
async ({ driver }) => {
|
||||||
await driver.navigate();
|
await driver.navigate();
|
||||||
|
|
||||||
|
async function clickWordAndWait(word) {
|
||||||
|
await driver.clickElement(
|
||||||
|
`[data-testid="seed-phrase-sorted"] [data-testid="draggable-seed-${word}"]`,
|
||||||
|
);
|
||||||
|
await driver.delay(tinyDelayMs);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.ONBOARDING_V2 === '1') {
|
||||||
|
// welcome
|
||||||
|
await driver.clickElement('[data-testid="onboarding-create-wallet"]');
|
||||||
|
|
||||||
|
// metrics
|
||||||
|
await driver.clickElement('[data-testid="metametrics-no-thanks"]');
|
||||||
|
|
||||||
|
// create password
|
||||||
|
await driver.fill(
|
||||||
|
'[data-testid="create-password-new"]',
|
||||||
|
'correct horse battery staple',
|
||||||
|
);
|
||||||
|
await driver.fill(
|
||||||
|
'[data-testid="create-password-confirm"]',
|
||||||
|
'correct horse battery staple',
|
||||||
|
);
|
||||||
|
await driver.clickElement('[data-testid="create-password-terms"]');
|
||||||
|
await driver.clickElement('[data-testid="create-password-wallet"]');
|
||||||
|
|
||||||
|
// secure wallet
|
||||||
|
await driver.clickElement(
|
||||||
|
'[data-testid="secure-wallet-recommended"]',
|
||||||
|
);
|
||||||
|
|
||||||
|
// review
|
||||||
|
await driver.clickElement('[data-testid="recovery-phrase-reveal"]');
|
||||||
|
const chipTwo = await (
|
||||||
|
await driver.findElement('[data-testid="recovery-phrase-chip-2"]')
|
||||||
|
).getText();
|
||||||
|
const chipThree = await (
|
||||||
|
await driver.findElement('[data-testid="recovery-phrase-chip-3"]')
|
||||||
|
).getText();
|
||||||
|
const chipSeven = await (
|
||||||
|
await driver.findElement('[data-testid="recovery-phrase-chip-7"]')
|
||||||
|
).getText();
|
||||||
|
await driver.clickElement('[data-testid="recovery-phrase-next"]');
|
||||||
|
|
||||||
|
// confirm
|
||||||
|
await driver.fill('[data-testid="recovery-phrase-input-2"]', chipTwo);
|
||||||
|
await driver.fill(
|
||||||
|
'[data-testid="recovery-phrase-input-3"]',
|
||||||
|
chipThree,
|
||||||
|
);
|
||||||
|
await driver.fill(
|
||||||
|
'[data-testid="recovery-phrase-input-7"]',
|
||||||
|
chipSeven,
|
||||||
|
);
|
||||||
|
await driver.clickElement('[data-testid="recovery-phrase-confirm"]');
|
||||||
|
|
||||||
|
// complete
|
||||||
|
await driver.clickElement('[data-testid="onboarding-complete-done"]');
|
||||||
|
|
||||||
|
// pin extension
|
||||||
|
await driver.clickElement('[data-testid="pin-extension-next"]');
|
||||||
|
await driver.clickElement('[data-testid="pin-extension-done"]');
|
||||||
|
} else {
|
||||||
// clicks the continue button on the welcome screen
|
// clicks the continue button on the welcome screen
|
||||||
await driver.findElement('.welcome-page__header');
|
await driver.findElement('.welcome-page__header');
|
||||||
await driver.clickElement({
|
await driver.clickElement({
|
||||||
@ -60,13 +123,6 @@ describe('Metamask Responsive UI', function () {
|
|||||||
tag: 'button',
|
tag: 'button',
|
||||||
});
|
});
|
||||||
|
|
||||||
async function clickWordAndWait(word) {
|
|
||||||
await driver.clickElement(
|
|
||||||
`[data-testid="seed-phrase-sorted"] [data-testid="draggable-seed-${word}"]`,
|
|
||||||
);
|
|
||||||
await driver.delay(tinyDelayMs);
|
|
||||||
}
|
|
||||||
|
|
||||||
// can retype the Secret Recovery Phrase
|
// can retype the Secret Recovery Phrase
|
||||||
const words = seedPhrase.split(' ');
|
const words = seedPhrase.split(' ');
|
||||||
for (const word of words) {
|
for (const word of words) {
|
||||||
@ -80,13 +136,13 @@ describe('Metamask Responsive UI', function () {
|
|||||||
text: enLocaleMessages.endOfFlowMessage10.message,
|
text: enLocaleMessages.endOfFlowMessage10.message,
|
||||||
tag: 'button',
|
tag: 'button',
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Show account information
|
// assert balance
|
||||||
// balance renders
|
const balance = await driver.findElement(
|
||||||
await driver.waitForSelector({
|
'[data-testid="wallet-balance"]',
|
||||||
css: '[data-testid="eth-overview__primary-currency"]',
|
);
|
||||||
text: '0 ETH',
|
assert.ok(/^0\sETH$/u.test(await balance.getText()));
|
||||||
});
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -5,6 +5,7 @@ import { COLORS } from '../../../helpers/constants/design-system';
|
|||||||
import Chip from '.';
|
import Chip from '.';
|
||||||
|
|
||||||
export function ChipWithInput({
|
export function ChipWithInput({
|
||||||
|
dataTestId,
|
||||||
className,
|
className,
|
||||||
borderColor = COLORS.UI1,
|
borderColor = COLORS.UI1,
|
||||||
inputValue,
|
inputValue,
|
||||||
@ -17,6 +18,7 @@ export function ChipWithInput({
|
|||||||
>
|
>
|
||||||
{setInputValue && (
|
{setInputValue && (
|
||||||
<input
|
<input
|
||||||
|
data-testid={dataTestId}
|
||||||
type="text"
|
type="text"
|
||||||
className="chip__input"
|
className="chip__input"
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
@ -30,6 +32,7 @@ export function ChipWithInput({
|
|||||||
}
|
}
|
||||||
|
|
||||||
ChipWithInput.propTypes = {
|
ChipWithInput.propTypes = {
|
||||||
|
dataTestId: PropTypes.string,
|
||||||
borderColor: PropTypes.oneOf(Object.values(COLORS)),
|
borderColor: PropTypes.oneOf(Object.values(COLORS)),
|
||||||
className: PropTypes.string,
|
className: PropTypes.string,
|
||||||
inputValue: PropTypes.string,
|
inputValue: PropTypes.string,
|
||||||
|
@ -6,6 +6,7 @@ import Typography from '../typography';
|
|||||||
import { COLORS, TYPOGRAPHY } from '../../../helpers/constants/design-system';
|
import { COLORS, TYPOGRAPHY } from '../../../helpers/constants/design-system';
|
||||||
|
|
||||||
export default function Chip({
|
export default function Chip({
|
||||||
|
dataTestId,
|
||||||
className,
|
className,
|
||||||
children,
|
children,
|
||||||
borderColor = COLORS.UI1,
|
borderColor = COLORS.UI1,
|
||||||
@ -25,6 +26,7 @@ export default function Chip({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
|
data-testid={dataTestId}
|
||||||
onClick={onClick}
|
onClick={onClick}
|
||||||
onKeyPress={onKeyPress}
|
onKeyPress={onKeyPress}
|
||||||
className={classnames(className, 'chip', {
|
className={classnames(className, 'chip', {
|
||||||
@ -53,6 +55,7 @@ export default function Chip({
|
|||||||
}
|
}
|
||||||
|
|
||||||
Chip.propTypes = {
|
Chip.propTypes = {
|
||||||
|
dataTestId: PropTypes.string,
|
||||||
borderColor: PropTypes.oneOf(Object.values(COLORS)),
|
borderColor: PropTypes.oneOf(Object.values(COLORS)),
|
||||||
label: PropTypes.string,
|
label: PropTypes.string,
|
||||||
children: PropTypes.node,
|
children: PropTypes.node,
|
||||||
|
@ -16,6 +16,7 @@ import NumericInput from '../numeric-input/numeric-input.component';
|
|||||||
import InfoTooltip from '../info-tooltip/info-tooltip';
|
import InfoTooltip from '../info-tooltip/info-tooltip';
|
||||||
|
|
||||||
export default function FormField({
|
export default function FormField({
|
||||||
|
dataTestId,
|
||||||
titleText,
|
titleText,
|
||||||
titleUnit,
|
titleUnit,
|
||||||
tooltipText,
|
tooltipText,
|
||||||
@ -94,6 +95,7 @@ export default function FormField({
|
|||||||
type={password ? 'password' : 'text'}
|
type={password ? 'password' : 'text'}
|
||||||
autoFocus={autoFocus}
|
autoFocus={autoFocus}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
|
data-testid={dataTestId}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{error && (
|
{error && (
|
||||||
@ -111,6 +113,7 @@ export default function FormField({
|
|||||||
}
|
}
|
||||||
|
|
||||||
FormField.propTypes = {
|
FormField.propTypes = {
|
||||||
|
dataTestId: PropTypes.string,
|
||||||
titleText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
|
titleText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
|
||||||
titleUnit: PropTypes.string,
|
titleUnit: PropTypes.string,
|
||||||
tooltipText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
|
tooltipText: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
|
||||||
|
@ -131,6 +131,7 @@ export default function CreatePassword({
|
|||||||
>
|
>
|
||||||
<form className="create-password__form" onSubmit={handleCreate}>
|
<form className="create-password__form" onSubmit={handleCreate}>
|
||||||
<FormField
|
<FormField
|
||||||
|
dataTestId="create-password-new"
|
||||||
autoFocus
|
autoFocus
|
||||||
error={passwordError}
|
error={passwordError}
|
||||||
onChange={handlePasswordChange}
|
onChange={handlePasswordChange}
|
||||||
@ -151,6 +152,7 @@ export default function CreatePassword({
|
|||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
<FormField
|
<FormField
|
||||||
|
dataTestId="create-password-confirm"
|
||||||
onChange={handleConfirmPasswordChange}
|
onChange={handleConfirmPasswordChange}
|
||||||
password={!showPassword}
|
password={!showPassword}
|
||||||
error={confirmPasswordError}
|
error={confirmPasswordError}
|
||||||
@ -170,6 +172,7 @@ export default function CreatePassword({
|
|||||||
marginBottom={4}
|
marginBottom={4}
|
||||||
>
|
>
|
||||||
<CheckBox
|
<CheckBox
|
||||||
|
dataTestId="create-password-terms"
|
||||||
onClick={() => setTermsChecked(!termsChecked)}
|
onClick={() => setTermsChecked(!termsChecked)}
|
||||||
checked={termsChecked}
|
checked={termsChecked}
|
||||||
/>
|
/>
|
||||||
@ -190,6 +193,11 @@ export default function CreatePassword({
|
|||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
<Button
|
<Button
|
||||||
|
data-testid={
|
||||||
|
secretRecoveryPhrase
|
||||||
|
? 'create-password-import'
|
||||||
|
: 'create-password-wallet'
|
||||||
|
}
|
||||||
type="primary"
|
type="primary"
|
||||||
className="create-password__form--submit-button"
|
className="create-password__form--submit-button"
|
||||||
disabled={!isValid || !termsChecked}
|
disabled={!isValid || !termsChecked}
|
||||||
|
@ -96,7 +96,13 @@ export default function CreationSuccessful() {
|
|||||||
>
|
>
|
||||||
{t('setAdvancedPrivacySettings')}
|
{t('setAdvancedPrivacySettings')}
|
||||||
</Button>
|
</Button>
|
||||||
<Button type="primary" large rounded onClick={onComplete}>
|
<Button
|
||||||
|
data-testid="onboarding-complete-done"
|
||||||
|
type="primary"
|
||||||
|
large
|
||||||
|
rounded
|
||||||
|
onClick={onComplete}
|
||||||
|
>
|
||||||
{t('done')}
|
{t('done')}
|
||||||
</Button>
|
</Button>
|
||||||
</Box>
|
</Box>
|
||||||
|
@ -78,6 +78,7 @@ export default function ImportSRP({ submitSecretRecoveryPhrase }) {
|
|||||||
/>
|
/>
|
||||||
</button>
|
</button>
|
||||||
<textarea
|
<textarea
|
||||||
|
data-testid="import-srp-text"
|
||||||
className={classnames('srp-text-area__textarea', {
|
className={classnames('srp-text-area__textarea', {
|
||||||
'srp-text-area__textarea--blur': !revealSRP,
|
'srp-text-area__textarea--blur': !revealSRP,
|
||||||
'srp-text-area__textarea--error': error,
|
'srp-text-area__textarea--error': error,
|
||||||
@ -96,6 +97,7 @@ export default function ImportSRP({ submitSecretRecoveryPhrase }) {
|
|||||||
</div>
|
</div>
|
||||||
<Button
|
<Button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
data-testid="import-srp-confirm"
|
||||||
large
|
large
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
submitSecretRecoveryPhrase(secretRecoveryPhrase);
|
submitSecretRecoveryPhrase(secretRecoveryPhrase);
|
||||||
|
@ -140,10 +140,18 @@ export default function OnboardingMetametrics() {
|
|||||||
])}
|
])}
|
||||||
</Typography>
|
</Typography>
|
||||||
<div className="onboarding-metametrics__buttons">
|
<div className="onboarding-metametrics__buttons">
|
||||||
<Button type="secondary" onClick={onCancel}>
|
<Button
|
||||||
|
data-testid="metametrics-no-thanks"
|
||||||
|
type="secondary"
|
||||||
|
onClick={onCancel}
|
||||||
|
>
|
||||||
{t('noThanks')}
|
{t('noThanks')}
|
||||||
</Button>
|
</Button>
|
||||||
<Button type="primary" onClick={onConfirm}>
|
<Button
|
||||||
|
data-testid="metametrics-i-agree"
|
||||||
|
type="primary"
|
||||||
|
onClick={onConfirm}
|
||||||
|
>
|
||||||
{t('affirmAgree')}
|
{t('affirmAgree')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -58,6 +58,9 @@ export default function OnboardingPinExtension() {
|
|||||||
</Carousel>
|
</Carousel>
|
||||||
<div className="onboarding-pin-extension__buttons">
|
<div className="onboarding-pin-extension__buttons">
|
||||||
<Button
|
<Button
|
||||||
|
data-testid={
|
||||||
|
selectedIndex === 0 ? 'pin-extension-next' : 'pin-extension-done'
|
||||||
|
}
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (selectedIndex === 0) {
|
if (selectedIndex === 0) {
|
||||||
|
@ -83,6 +83,7 @@ export default function ConfirmRecoveryPhrase({ secretRecoveryPhrase = '' }) {
|
|||||||
/>
|
/>
|
||||||
<div className="recovery-phrase__footer">
|
<div className="recovery-phrase__footer">
|
||||||
<Button
|
<Button
|
||||||
|
data-testid="recovery-phrase-confirm"
|
||||||
type="primary"
|
type="primary"
|
||||||
className="recovery-phrase__footer--button"
|
className="recovery-phrase__footer--button"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
@ -36,6 +36,7 @@ export default function RecoveryPhraseChips({
|
|||||||
className="recovery-phrase__secret"
|
className="recovery-phrase__secret"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
|
data-testid="recovery-phrase-chips"
|
||||||
className={classnames('recovery-phrase__chips', {
|
className={classnames('recovery-phrase__chips', {
|
||||||
'recovery-phrase__chips--hidden': hideSeedPhrase,
|
'recovery-phrase__chips--hidden': hideSeedPhrase,
|
||||||
})}
|
})}
|
||||||
@ -52,6 +53,7 @@ export default function RecoveryPhraseChips({
|
|||||||
{`${index + 1}.`}
|
{`${index + 1}.`}
|
||||||
</div>
|
</div>
|
||||||
<ChipWithInput
|
<ChipWithInput
|
||||||
|
dataTestId={`recovery-phrase-input-${index}`}
|
||||||
borderColor={COLORS.PRIMARY1}
|
borderColor={COLORS.PRIMARY1}
|
||||||
className="recovery-phrase__chip--with-input"
|
className="recovery-phrase__chip--with-input"
|
||||||
inputValue={inputValue[index]}
|
inputValue={inputValue[index]}
|
||||||
@ -67,7 +69,11 @@ export default function RecoveryPhraseChips({
|
|||||||
<div className="recovery-phrase__chip-item__number">
|
<div className="recovery-phrase__chip-item__number">
|
||||||
{`${index + 1}.`}
|
{`${index + 1}.`}
|
||||||
</div>
|
</div>
|
||||||
<Chip className="recovery-phrase__chip" borderColor={COLORS.UI3}>
|
<Chip
|
||||||
|
dataTestId={`recovery-phrase-chip-${index}`}
|
||||||
|
className="recovery-phrase__chip"
|
||||||
|
borderColor={COLORS.UI3}
|
||||||
|
>
|
||||||
{word}
|
{word}
|
||||||
</Chip>
|
</Chip>
|
||||||
</div>
|
</div>
|
||||||
|
@ -96,6 +96,7 @@ export default function RecoveryPhrase({ secretRecoveryPhrase }) {
|
|||||||
{copied ? t('copiedExclamation') : t('copyToClipboard')}
|
{copied ? t('copiedExclamation') : t('copyToClipboard')}
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
|
data-testid="recovery-phrase-next"
|
||||||
type="primary"
|
type="primary"
|
||||||
className="recovery-phrase__footer--button"
|
className="recovery-phrase__footer--button"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@ -107,6 +108,7 @@ export default function RecoveryPhrase({ secretRecoveryPhrase }) {
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<Button
|
<Button
|
||||||
|
data-testid="recovery-phrase-reveal"
|
||||||
type="primary"
|
type="primary"
|
||||||
className="recovery-phrase__footer--button"
|
className="recovery-phrase__footer--button"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
@ -103,6 +103,7 @@ export default function SecureYourWallet() {
|
|||||||
className="secure-your-wallet__actions"
|
className="secure-your-wallet__actions"
|
||||||
>
|
>
|
||||||
<Button
|
<Button
|
||||||
|
data-testid="secure-wallet-later"
|
||||||
type="secondary"
|
type="secondary"
|
||||||
rounded
|
rounded
|
||||||
large
|
large
|
||||||
@ -110,7 +111,13 @@ export default function SecureYourWallet() {
|
|||||||
>
|
>
|
||||||
{t('seedPhraseIntroNotRecommendedButtonCopy')}
|
{t('seedPhraseIntroNotRecommendedButtonCopy')}
|
||||||
</Button>
|
</Button>
|
||||||
<Button type="primary" rounded large onClick={handleClickRecommended}>
|
<Button
|
||||||
|
data-testid="secure-wallet-recommended"
|
||||||
|
type="primary"
|
||||||
|
rounded
|
||||||
|
large
|
||||||
|
onClick={handleClickRecommended}
|
||||||
|
>
|
||||||
{t('seedPhraseIntroRecommendedButtonCopy')}
|
{t('seedPhraseIntroRecommendedButtonCopy')}
|
||||||
</Button>
|
</Button>
|
||||||
</Box>
|
</Box>
|
||||||
|
@ -33,6 +33,7 @@ export default function SkipSRPBackup({ handleClose }) {
|
|||||||
{t('goBack')}
|
{t('goBack')}
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
|
data-testid="skip-srp-backup"
|
||||||
disabled={!checked}
|
disabled={!checked}
|
||||||
type="primary"
|
type="primary"
|
||||||
rounded
|
rounded
|
||||||
|
@ -96,12 +96,20 @@ export default function OnboardingWelcome() {
|
|||||||
</Carousel>
|
</Carousel>
|
||||||
<ul className="onboarding-welcome__buttons">
|
<ul className="onboarding-welcome__buttons">
|
||||||
<li>
|
<li>
|
||||||
<Button type="primary" onClick={onCreateClick}>
|
<Button
|
||||||
|
data-testid="onboarding-create-wallet"
|
||||||
|
type="primary"
|
||||||
|
onClick={onCreateClick}
|
||||||
|
>
|
||||||
{t('onboardingCreateWallet')}
|
{t('onboardingCreateWallet')}
|
||||||
</Button>
|
</Button>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<Button type="secondary" onClick={onImportClick}>
|
<Button
|
||||||
|
data-testid="onboarding-import-wallet"
|
||||||
|
type="secondary"
|
||||||
|
onClick={onImportClick}
|
||||||
|
>
|
||||||
{t('onboardingImportWallet')}
|
{t('onboardingImportWallet')}
|
||||||
</Button>
|
</Button>
|
||||||
</li>
|
</li>
|
||||||
|
Loading…
Reference in New Issue
Block a user