WIP; debugging issues

This commit is contained in:
benedettadavico
2022-11-11 17:44:03 +01:00
parent eeeb8052b6
commit 452e9ed637
12 changed files with 75 additions and 47 deletions
+5 -2
View File
@@ -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"
+1
View File
@@ -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 }}
+1 -1
View File
@@ -27,7 +27,7 @@ export const BalanceCard = () => {
)}
{!userBalance.error && (
<Typography
data-testid="refresh-success"
data-testid="nym-balance"
sx={{
color: 'text.primary',
textTransform: 'uppercase',
+7 -5
View File
@@ -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",
};
+4 -1
View File
@@ -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)
+19 -17
View File
@@ -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: () => {