WIP; debugging issues
This commit is contained in:
@@ -2,6 +2,7 @@ import React from 'react';
|
||||
import { Button, Stack, TextField, Typography } from '@mui/material';
|
||||
import { Check, ContentCopySharp } from '@mui/icons-material';
|
||||
import { Warning } from './Warning';
|
||||
import { MnemonicModal } from './Accounts/modals/MnemonicModal';
|
||||
|
||||
export const Mnemonic = ({
|
||||
mnemonic,
|
||||
@@ -14,18 +15,19 @@ export const Mnemonic = ({
|
||||
}) => (
|
||||
<Stack spacing={2} alignItems="center">
|
||||
<Warning>
|
||||
<Typography sx={{ textAlign: 'center' }}>
|
||||
<Typography sx={{ textAlign: 'center' }} data-testid="below24word">
|
||||
Below is your 24 word mnemonic, make sure to store it in a safe place for accessing your wallet in the future
|
||||
</Typography>
|
||||
</Warning>
|
||||
<TextField
|
||||
label="Mnemonic"
|
||||
id="mnemonicPhrase"
|
||||
type="input"
|
||||
value={mnemonic}
|
||||
multiline
|
||||
autoFocus={false}
|
||||
fullWidth
|
||||
inputProps={{
|
||||
inputProps={{
|
||||
style: {
|
||||
height: '160px',
|
||||
},
|
||||
@@ -39,6 +41,7 @@ export const Mnemonic = ({
|
||||
/>
|
||||
|
||||
<Button
|
||||
data-testid="copyMnemonic"
|
||||
color="inherit"
|
||||
disableElevation
|
||||
size="large"
|
||||
|
||||
@@ -90,6 +90,7 @@ export const Nav = () => {
|
||||
<ListItem
|
||||
disableGutters
|
||||
key={label}
|
||||
data-testid={label}
|
||||
onClick={onClick}
|
||||
sx={{
|
||||
cursor: 'pointer',
|
||||
|
||||
@@ -16,7 +16,7 @@ const NetworkItem: React.FC<{ title: string; isSelected: boolean; onSelect: () =
|
||||
isSelected,
|
||||
onSelect,
|
||||
}) => (
|
||||
<ListItem button onClick={onSelect}>
|
||||
<ListItem button onClick={onSelect} data-testid={title}>
|
||||
<ListItemIcon>{isSelected && <CheckSharp color="success" />}</ListItemIcon>
|
||||
<ListItemText>{title}</ListItemText>
|
||||
</ListItem>
|
||||
@@ -38,6 +38,7 @@ export const NetworkSelector = () => {
|
||||
return (
|
||||
<>
|
||||
<Button
|
||||
data-testid="networkEnv"
|
||||
variant="text"
|
||||
color="inherit"
|
||||
sx={{ color: 'text.primary', fontSize: 14 }}
|
||||
|
||||
@@ -27,7 +27,7 @@ export const BalanceCard = () => {
|
||||
)}
|
||||
{!userBalance.error && (
|
||||
<Typography
|
||||
data-testid="refresh-success"
|
||||
data-testid="nym-balance"
|
||||
sx={{
|
||||
color: 'text.primary',
|
||||
textTransform: 'uppercase',
|
||||
|
||||
@@ -11,20 +11,22 @@ class Helpers {
|
||||
freshMnemonicLoginQaNetwork = async () => {
|
||||
await deleteScript
|
||||
await savedWalletScript
|
||||
await Auth.loginWithMnemonic(userData.mnemonic)
|
||||
// await Auth.loginWithMnemonic(userData.mnemonic)
|
||||
await this.loginMnemonic()
|
||||
await Balance.selectQa()
|
||||
}
|
||||
|
||||
// login with a mnemonic
|
||||
loginMnemonic = async () => {
|
||||
await Auth.loginWithMnemonic(userData.mnemonic)
|
||||
var decodedmnemonic = this.decodeBase(userData.mnemonic)
|
||||
await Auth.loginWithMnemonic(decodedmnemonic)
|
||||
}
|
||||
|
||||
// decode user data file
|
||||
decodeBase = async (input) => {
|
||||
var m = Buffer.from(input, "base64").toString();
|
||||
decodeBase = (input) => {
|
||||
const m = Buffer.from(input, "base64").toString();
|
||||
return m;
|
||||
}
|
||||
}
|
||||
|
||||
// common actions
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ module.exports = {
|
||||
// user incorrect data
|
||||
incorrectMnemonic: "bottom crime humble able antique rural donkey guess parent potato tongue truly way disagree exile zebra someone else heat giraffe note order sun cradle",
|
||||
randomString:"thisrandomstring",
|
||||
password:"iAmThePassword1!",
|
||||
password:"updownUPDOWN~#$2",
|
||||
incorrectPassword:"123notvalid",
|
||||
};
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
"scripts": {
|
||||
"test": "wdio run test/wdio.conf.ts",
|
||||
"test-login": "wdio run test/wdio.conf.ts --suite login",
|
||||
"test-general": "wdio run test/wdio.conf.ts --suite general"
|
||||
"test-signup": "wdio run test/wdio.conf.ts --suite signup",
|
||||
"test-general": "wdio run test/wdio.conf.ts --suite general",
|
||||
"test-balance": "wdio run test/wdio.conf.ts --suite balance",
|
||||
"test-delegation": "wdio run test/wdio.conf.ts --suite delegation"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,14 +30,17 @@ class Auth {
|
||||
get backToStep1PasswordCreation(): Promise<WebdriverIO.Element> { return $("[data-testid='backToStep1PasswordCreation']") }
|
||||
|
||||
// Create account step 1/3
|
||||
get copyMnemonic(): Promise<WebdriverIO.Element> { return $("[data-testid='copyMnemonic']") } //check
|
||||
get iSavedMnemonic(): Promise<WebdriverIO.Element> { return $("[data-testid='iSavedMnemonic']") } //check
|
||||
get mnemonicPhrase(): Promise<WebdriverIO.Element> { return $("[data-testid='mnemonicPhrase']") }
|
||||
get copyMnemonic(): Promise<WebdriverIO.Element> { return $("[data-testid='copyMnemonic']") }
|
||||
get iSavedMnemonic(): Promise<WebdriverIO.Element> { return $("[data-testid='iSavedMnemonic']") }
|
||||
get mnemonicPhrase(): Promise<WebdriverIO.Element> { return $("mnemonicPhrase") }
|
||||
// get mnemonicPhrase(): Promise<WebdriverIO.Element> { return $("[data-testid='mnemonicPhrase']") }
|
||||
get backToWelcomePageFromCreate(): Promise<WebdriverIO.Element> { return $("[data-testid='backToWelcome']") }
|
||||
|
||||
// Create account step 2/3
|
||||
get wordIndex(): Promise<WebdriverIO.Element> { return $("[data-testid='wordIndex']") }
|
||||
get mnemonicWordTile(): Promise<WebdriverIO.Element> { return $("[data-testid='mnemonicWordTile']") }
|
||||
get wordIndex(): Promise<WebdriverIO.ElementArray> { return $$("[data-testid='wordIndex']") }
|
||||
get mnemonicWordTile(): Promise<WebdriverIO.ElementArray> { return $$("[data-testid='mnemonicWordTile']") }
|
||||
// get wordIndex(): Promise<WebdriverIO.Element> { return $("[data-testid='wordIndex']") }
|
||||
// get mnemonicWordTile(): Promise<WebdriverIO.Element> { return $("[data-testid='mnemonicWordTile']") }
|
||||
get nextToStep3(): Promise<WebdriverIO.Element> { return $("[data-testid='nextToStep3']") }
|
||||
get backToStep1(): Promise<WebdriverIO.Element> { return $("[data-testid='backToStep1']") }
|
||||
|
||||
@@ -65,6 +68,8 @@ class Auth {
|
||||
await (await this.signInButton).click()
|
||||
await (await this.signInMnemonic).click()
|
||||
await (await this.mnemonicInput).waitForDisplayed()
|
||||
await (await this.revealMnemonic).click()
|
||||
console.log("--------------- " + mnemonic)
|
||||
await (await this.mnemonicInput).addValue(mnemonic);
|
||||
await (await this.signIn).click();
|
||||
await (await Balance.nymBalance).waitForDisplayed({ timeout: 4000 });
|
||||
|
||||
@@ -4,9 +4,9 @@ class Balance {
|
||||
get checkBalance(): Promise<WebdriverIO.Element> { return $("[data-testid='check-balance']") }
|
||||
get nymBalance(): Promise<WebdriverIO.Element> { return $("[data-testid='nym-balance']") }
|
||||
|
||||
get copyAccountId(): Promise<WebdriverIO.Element> { return $("[data-testid='copyIcon']") }
|
||||
get copyAccountId(): Promise<WebdriverIO.Element> { return $("[data-testid='copyIcon']") } // TO-DO check
|
||||
|
||||
get accountNumber(): Promise<WebdriverIO.Element> { return $("[data-testid='accountNumber']") }
|
||||
get accountNumber(): Promise<WebdriverIO.Element> { return $("[data-testid='accountNumber']") } // TO-DO check
|
||||
|
||||
get networkDropdown(): Promise<WebdriverIO.Element> { return $("[data-testid='ArrowDropDownIcon']") }
|
||||
get networkEnv(): Promise<WebdriverIO.Element> { return $("[data-testid='networkEnv']") }
|
||||
|
||||
@@ -14,14 +14,6 @@ describe('Nav Items behave correctly', () => {
|
||||
it('switch from light to dark mode and back', async () => {
|
||||
|
||||
//log in()
|
||||
const test = await Helper.decodeBase(userData.mnemonic);
|
||||
console.log("---------------------------");
|
||||
console.log(test);
|
||||
console.log("---------------------------");
|
||||
console.log("---------------------------");
|
||||
|
||||
|
||||
|
||||
await Helper.freshMnemonicLoginQaNetwork()
|
||||
// click on different modes
|
||||
await Helper.navigateAndClick(Nav.lightMode)
|
||||
|
||||
@@ -6,7 +6,7 @@ const deleteScript = require("../../../scripts/deletesavedwallet")
|
||||
const Helper = require('../../../common/helper');
|
||||
|
||||
|
||||
describe.skip('Create a new account and verify it exists', () => {
|
||||
describe('Create a new account and verify it exists', () => {
|
||||
|
||||
it('generate new mnemonic and verify mnemonic words', async () => {
|
||||
|
||||
@@ -14,22 +14,35 @@ describe.skip('Create a new account and verify it exists', () => {
|
||||
deleteScript
|
||||
// click through create account flow
|
||||
await Helper.navigateAndClick(Auth.createAccount)
|
||||
await Helper.elementVisible(Auth.mnemonicPhrase)
|
||||
// await Helper.elementVisible(Auth.mnemonicPhrase)
|
||||
// save mnemonic phrase
|
||||
let mnemonic = await (await Auth.mnemonicPhrase).getText()
|
||||
|
||||
let mnemonic = await browser.execute(() => {
|
||||
return document.getElementById("mnemonicPhrase").innerHTML;
|
||||
});
|
||||
|
||||
|
||||
let arrayMnemonic = mnemonic.split(" ")
|
||||
|
||||
await Helper.navigateAndClick(Auth.copyMnemonic)
|
||||
await Helper.navigateAndClick(Auth.iSavedMnemonic)
|
||||
// verify the mnemonic words in the correct order
|
||||
let mnemonicWordTiles = await (await Auth.mnemonicWordTile)
|
||||
let wordTileIndex = await (await Auth.wordIndex)
|
||||
|
||||
|
||||
const wordsArray: any[] = []
|
||||
|
||||
for (const word of mnemonicWordTiles) {
|
||||
const wordText = await word.getText()
|
||||
const index = arrayMnemonic.indexOf(wordText)
|
||||
// browser.pause(1500)
|
||||
wordsArray.push({ word, index })
|
||||
|
||||
// console.log("!----------------------------")
|
||||
// wordsArray.forEach((x, y) => {console.log(x),
|
||||
// console.log("22222222222222" + y)})
|
||||
// console.log("!----------------------------")
|
||||
}
|
||||
|
||||
for (const index of wordTileIndex) {
|
||||
@@ -75,9 +88,12 @@ describe.skip('Create a new account and verify it exists', () => {
|
||||
|
||||
// enter a valid password in both fields
|
||||
await Helper.navigateAndClick(Auth.password)
|
||||
await
|
||||
await Helper.addValueToTextField(Auth.password, textConstants.password)
|
||||
await browser.pause(3000)
|
||||
await Helper.navigateAndClick(Auth.confirmPassword)
|
||||
await Helper.addValueToTextField(Auth.confirmPassword, textConstants.password)
|
||||
await browser.pause(3000)
|
||||
// verify that the 'next' button is clickable
|
||||
const nextButton = await Auth.nextStorePassword
|
||||
const isNextDisabled = await nextButton.getAttribute('disabled')
|
||||
@@ -89,10 +105,13 @@ describe.skip('Create a new account and verify it exists', () => {
|
||||
|
||||
// login with a password
|
||||
await Helper.navigateAndClick(Auth.nextStorePassword)
|
||||
await browser.pause(3000)
|
||||
await Helper.navigateAndClick(Auth.enterPassword)
|
||||
await Helper.addValueToTextField(Auth.enterPassword, textConstants.password)
|
||||
await Helper.addValueToTextField(Auth.enterPassword, "123notvalid" + textConstants.password)
|
||||
await browser.pause(3000)
|
||||
await Helper.navigateAndClick(Auth.signInPasswordButton)
|
||||
// TO-DO for some reason this is failing due to failed to decrypt the wallet etc error
|
||||
await browser.pause(3000)
|
||||
await Helper.elementVisible(Balance.balance)
|
||||
//new accounts will always default to mainnet, so 0 balance
|
||||
await Helper.verifyStrictText(Balance.nymBalance, textConstants.noNym)
|
||||
|
||||
@@ -3,7 +3,9 @@ const path = require('path')
|
||||
const { spawn, spawnSync } = require('child_process')
|
||||
|
||||
//insert path to binary
|
||||
const nym_path = '../target/release/nym-wallet'
|
||||
const nym_path = '../target/debug/nym-wallet'
|
||||
// this one below will run the prod version aka without QA netwo0rk option
|
||||
// const nym_path = '../target/release/nym-wallet'
|
||||
|
||||
let tauriDriver: any
|
||||
|
||||
@@ -67,25 +69,25 @@ exports.config = {
|
||||
|
||||
// Reporting tool and settings
|
||||
|
||||
reporters: [
|
||||
[
|
||||
"allure",
|
||||
{
|
||||
outputDir: "allure-results",
|
||||
disableWebdriverStepsReporting: true,
|
||||
disableWebdriverScreenshotsReporting: true,
|
||||
// useCucumberStepReporter: true,
|
||||
// disableMochaHooks: true,
|
||||
},
|
||||
],
|
||||
],
|
||||
// reporters: [
|
||||
// [
|
||||
// "allure",
|
||||
// {
|
||||
// outputDir: "allure-results",
|
||||
// disableWebdriverStepsReporting: true,
|
||||
// disableWebdriverScreenshotsReporting: true,
|
||||
// // useCucumberStepReporter: true,
|
||||
// // disableMochaHooks: true,
|
||||
// },
|
||||
// ],
|
||||
// ],
|
||||
|
||||
// Things to run before/after each test session
|
||||
|
||||
onPrepare: () => {
|
||||
let scriptpath = process.cwd() + "/scripts/killprocess.sh";
|
||||
spawn('bash', [scriptpath]);
|
||||
},
|
||||
// onPrepare: () => {
|
||||
// let scriptpath = process.cwd() + "/scripts/killprocess.sh";
|
||||
// spawn('bash', [scriptpath]);
|
||||
// },
|
||||
|
||||
|
||||
beforeSession: () => {
|
||||
|
||||
Reference in New Issue
Block a user