test(@wallet): enable mayfail test

This commit is contained in:
Anthony Laibe 2022-11-09 09:27:46 +01:00 committed by Anthony Laibe
parent 59e0ae298f
commit 15891295e9
5 changed files with 107 additions and 43 deletions

View File

@ -57,7 +57,7 @@ pipeline {
/* Include library in order to compile the project */ /* Include library in order to compile the project */
LD_LIBRARY_PATH = "$QTDIR/lib:$WORKSPACE/vendor/status-go/build/bin:$WORKSPACE/vendor/status-keycard-go/build/libkeycard/" LD_LIBRARY_PATH = "$QTDIR/lib:$WORKSPACE/vendor/status-go/build/bin:$WORKSPACE/vendor/status-keycard-go/build/libkeycard/"
INFURA_TOKEN = "cd313fedd0dd4699b194d72b5184be06" INFURA_TOKEN = "cd313fedd0dd4699b194d72b5184be06"
GOERLI_NETWORK_RPC_URL = "http://0.0.0.0:${855 + env.EXECUTOR_NUMBER}" GANACHE_NETWORK_RPC_URL = "http://0.0.0.0:${855 + env.EXECUTOR_NUMBER}"
} }
stages { stages {

View File

@ -13,13 +13,7 @@ let INFURA_TOKEN_RESOLVED =
INFURA_TOKEN INFURA_TOKEN
const GOERLI_NETWORK_RPC_URL = $getEnv("GOERLI_NETWORK_RPC_URL") const GANACHE_NETWORK_RPC_URL = $getEnv("GANACHE_NETWORK_RPC_URL")
let GOERLI_RPC_URL_RESOLVED =
if GOERLI_NETWORK_RPC_URL != "":
GOERLI_NETWORK_RPC_URL
else:
"https://goerli.infura.io/v3/" & INFURA_TOKEN_RESOLVED
const OPENSEA_API_KEY {.strdefine.} = "" const OPENSEA_API_KEY {.strdefine.} = ""
# allow runtime override via environment variable; core contributors can set a # allow runtime override via environment variable; core contributors can set a
# an opensea API key in this way for local development # an opensea API key in this way for local development
@ -53,7 +47,7 @@ var NETWORKS* = %* [
{ {
"chainId": 5, "chainId": 5,
"chainName": "Goerli", "chainName": "Goerli",
"rpcUrl": GOERLI_RPC_URL_RESOLVED, "rpcUrl": "https://goerli.infura.io/v3/" & INFURA_TOKEN_RESOLVED,
"blockExplorerUrl": "https://goerli.etherscan.io/", "blockExplorerUrl": "https://goerli.etherscan.io/",
"iconUrl": "network/Network=Testnet", "iconUrl": "network/Network=Testnet",
"chainColor": "#939BA1", "chainColor": "#939BA1",
@ -127,12 +121,33 @@ var NETWORKS* = %* [
} }
] ]
if GOERLI_NETWORK_RPC_URL != "": if GANACHE_NETWORK_RPC_URL != "":
NETWORKS = %* [ NETWORKS = %* [
{
"chainId": 1,
"chainName": "Ethereum Mainnet",
"rpcUrl": GANACHE_NETWORK_RPC_URL,
"blockExplorerUrl": "https://etherscan.io/",
"iconUrl": "network/Network=Ethereum",
"chainColor": "#627EEA",
"shortName": "eth",
"nativeCurrencyName": "Ether",
"nativeCurrencySymbol": "ETH",
"nativeCurrencyDecimals": 18,
"isTest": false,
"layer": 1,
"enabled": true,
"tokenOverrides": [
{
"symbol": "SNT",
"address": "0x8571Ddc46b10d31EF963aF49b6C7799Ea7eff818"
}
]
},
{ {
"chainId": 5, "chainId": 5,
"chainName": "Goerli", "chainName": "Goerli",
"rpcUrl": GOERLI_RPC_URL_RESOLVED, "rpcUrl": GANACHE_NETWORK_RPC_URL,
"blockExplorerUrl": "https://goerli.etherscan.io/", "blockExplorerUrl": "https://goerli.etherscan.io/",
"iconUrl": "network/Network=Testnet", "iconUrl": "network/Network=Testnet",
"chainColor": "#939BA1", "chainColor": "#939BA1",
@ -149,6 +164,66 @@ if GOERLI_NETWORK_RPC_URL != "":
"address": "0x8571Ddc46b10d31EF963aF49b6C7799Ea7eff818" "address": "0x8571Ddc46b10d31EF963aF49b6C7799Ea7eff818"
} }
] ]
},
{
"chainId": 10,
"chainName": "Optimism",
"rpcUrl": GANACHE_NETWORK_RPC_URL,
"blockExplorerUrl": "https://optimistic.etherscan.io",
"iconUrl": "network/Network=Optimism",
"chainColor": "#E90101",
"shortName": "opt",
"nativeCurrencyName": "Ether",
"nativeCurrencySymbol": "ETH",
"nativeCurrencyDecimals": 18,
"isTest": false,
"layer": 2,
"enabled": true,
},
{
"chainId": 420,
"chainName": "Optimism Goerli Testnet",
"rpcUrl": GANACHE_NETWORK_RPC_URL,
"blockExplorerUrl": "https://goerli-optimism.etherscan.io/",
"iconUrl": "network/Network=Testnet",
"chainColor": "#939BA1",
"shortName": "goerOpt",
"nativeCurrencyName": "Ether",
"nativeCurrencySymbol": "ETH",
"nativeCurrencyDecimals": 18,
"isTest": true,
"layer": 2,
"enabled": false,
},
{
"chainId": 42161,
"chainName": "Arbitrum",
"rpcUrl": GANACHE_NETWORK_RPC_URL,
"blockExplorerUrl": "https://arbiscan.io/",
"iconUrl": "network/Network=Arbitrum",
"chainColor": "#51D0F0",
"shortName": "arb",
"nativeCurrencyName": "Ether",
"nativeCurrencySymbol": "ETH",
"nativeCurrencyDecimals": 18,
"isTest": false,
"layer": 2,
"enabled": true,
},
{
"chainId": 421613,
"chainName": "Arbitrum Goerli",
"rpcUrl": GANACHE_NETWORK_RPC_URL,
"blockExplorerUrl": "https://goerli.arbiscan.io/",
"iconUrl": "network/Network=Testnet",
"chainColor": "#939BA1",
"shortName": "rinArb",
"nativeCurrencyName": "Ether",
"nativeCurrencySymbol": "ETH",
"nativeCurrencyDecimals": 18,
"isTest": true,
"layer": 2,
"enabled": false,
} }
] ]

View File

@ -118,7 +118,6 @@ class SettingsScreen:
click_obj_by_name(SidebarComponents.WALLET_OPTION.value) click_obj_by_name(SidebarComponents.WALLET_OPTION.value)
def activate_wallet_option(self): def activate_wallet_option(self):
if not (is_found(SidebarComponents.WALLET_OPTION.value)):
click_obj_by_name(SidebarComponents.ADVANCED_OPTION.value) click_obj_by_name(SidebarComponents.ADVANCED_OPTION.value)
click_obj_by_name(AdvancedOptionScreen.ACTIVATE_OR_DEACTIVATE_WALLET.value) click_obj_by_name(AdvancedOptionScreen.ACTIVATE_OR_DEACTIVATE_WALLET.value)
click_obj_by_name(AdvancedOptionScreen.I_UNDERSTAND_POP_UP.value) click_obj_by_name(AdvancedOptionScreen.I_UNDERSTAND_POP_UP.value)

View File

@ -21,7 +21,6 @@ class MainWalletScreen(Enum):
SAVED_ADDRESSES_BUTTON: str = "mainWallet_Saved_Addresses_Button" SAVED_ADDRESSES_BUTTON: str = "mainWallet_Saved_Addresses_Button"
NETWORK_SELECTOR_BUTTON: str = "mainWallet_Network_Selector_Button" NETWORK_SELECTOR_BUTTON: str = "mainWallet_Network_Selector_Button"
RIGHT_SIDE_TABBAR: str = "mainWallet_Right_Side_Tab_Bar" RIGHT_SIDE_TABBAR: str = "mainWallet_Right_Side_Tab_Bar"
MAILSERVER_DIALOG: str = "mailserver_dialog"
MAILSERVER_RETRY: str = "mailserver_retry" MAILSERVER_RETRY: str = "mailserver_retry"
FIRST_ACCOUNT_ITEM: str = "firstWalletAccount_Item" FIRST_ACCOUNT_ITEM: str = "firstWalletAccount_Item"
@ -131,7 +130,7 @@ class StatusWalletScreen:
wait_for_object_and_type(SharedPopup.PASSWORD_INPUT.value, password) wait_for_object_and_type(SharedPopup.PASSWORD_INPUT.value, password)
click_obj_by_name(SharedPopup.PRIMARY_BUTTON.value) click_obj_by_name(SharedPopup.PRIMARY_BUTTON.value)
time.sleep(5) time.sleep(1)
def import_seed_phrase(self, account_name: str, password: str, mnemonic: str): def import_seed_phrase(self, account_name: str, password: str, mnemonic: str):
click_obj_by_name(MainWalletScreen.ADD_ACCOUNT_BUTTON.value) click_obj_by_name(MainWalletScreen.ADD_ACCOUNT_BUTTON.value)
@ -139,10 +138,11 @@ class StatusWalletScreen:
type(AddAccountPopup.ACCOUNT_NAME_INPUT.value, account_name) type(AddAccountPopup.ACCOUNT_NAME_INPUT.value, account_name)
click_obj_by_name(AddAccountPopup.ADVANCE_SECTION.value) click_obj_by_name(AddAccountPopup.ADVANCE_SECTION.value)
time.sleep(1)
click_obj_by_name(AddAccountPopup.TYPE_SELECTOR.value) click_obj_by_name(AddAccountPopup.TYPE_SELECTOR.value)
time.sleep(1) time.sleep(1)
click_obj_by_name(AddAccountPopup.TYPE_SEED_PHRASE.value) click_obj_by_name(AddAccountPopup.TYPE_SEED_PHRASE.value)
time.sleep(1)
words = mnemonic.split() words = mnemonic.split()
scroll_obj_by_name(AddAccountPopup.SCROLL_BAR.value) scroll_obj_by_name(AddAccountPopup.SCROLL_BAR.value)
time.sleep(1) time.sleep(1)
@ -156,16 +156,12 @@ class StatusWalletScreen:
input_seed_phrase(AddAccountPopup.SEED_PHRASE_INPUT_TEMPLATE.value, words) input_seed_phrase(AddAccountPopup.SEED_PHRASE_INPUT_TEMPLATE.value, words)
time.sleep(1) time.sleep(1)
visible, _ = is_loaded_visible_and_enabled(MainWalletScreen.MAILSERVER_DIALOG.value, 500)
if (visible):
click_obj_by_name(MainWalletScreen.MAILSERVER_RETRY.value)
click_obj_by_name(AddAccountPopup.ADD_ACCOUNT_BUTTON.value) click_obj_by_name(AddAccountPopup.ADD_ACCOUNT_BUTTON.value)
wait_for_object_and_type(SharedPopup.PASSWORD_INPUT.value, password) wait_for_object_and_type(SharedPopup.PASSWORD_INPUT.value, password)
click_obj_by_name(SharedPopup.PRIMARY_BUTTON.value) click_obj_by_name(SharedPopup.PRIMARY_BUTTON.value)
time.sleep(5) time.sleep(1)
def generate_new_account(self, account_name: str, password: str): def generate_new_account(self, account_name: str, password: str):
click_obj_by_name(MainWalletScreen.ADD_ACCOUNT_BUTTON.value) click_obj_by_name(MainWalletScreen.ADD_ACCOUNT_BUTTON.value)
@ -180,7 +176,7 @@ class StatusWalletScreen:
wait_for_object_and_type(SharedPopup.PASSWORD_INPUT.value, password) wait_for_object_and_type(SharedPopup.PASSWORD_INPUT.value, password)
click_obj_by_name(SharedPopup.PRIMARY_BUTTON.value) click_obj_by_name(SharedPopup.PRIMARY_BUTTON.value)
time.sleep(2) time.sleep(1)
def verify_account_name_is_present(self, account_name: str): def verify_account_name_is_present(self, account_name: str):
verify_text_matching(MainWalletScreen.ACCOUNT_NAME.value, account_name) verify_text_matching(MainWalletScreen.ACCOUNT_NAME.value, account_name)

View File

@ -17,34 +17,28 @@ Feature: Status Desktop Wallet
Given the user opens wallet screen Given the user opens wallet screen
And the user clicks on the first account And the user clicks on the first account
Scenario: The user can import seed phrase and observe an account data Scenario: The user can manage and observe a watch only account
Given the user opens app settings screen When the user adds watch only account "0xea123F7beFF45E3C9fdF54B324c29DBdA14a639A" named "AccountWatch"
And the user opens the wallet settings
And the user toggles test networks
And the user opens wallet screen
When an account named "one" is added via imported seed phrase "pelican chief sudden oval media rare swamp elephant lawsuit wheat knife initial" and authenticated using password "TesTEr16843/!@00"
Then the new account "one" is added
And the user has a positive balance of "ETH"
And the user has a positive balance of "STT"
# And the collectibles are listed for the on
And the transactions are listed for the added account
Scenario: The user can manage a watch only account
When the user adds watch only account "0x8397bc3c5a60a1883174f722403d63a8833312b7" named "AccountWatch"
Then the new account "AccountWatch" is added Then the new account "AccountWatch" is added
And the user has a positive balance of "ETH"
And the user has a positive balance of "SNT"
# And the collectibles are listed for the on
# And the transactions are listed for the added account
Scenario: The user imports a private key Scenario: The user imports a private key
When an account named "AccountPrivate" is added via private key "8da4ef21b864d2cc526dbdb2a120bd2874c36c9d0a1fb7f8c63d7f7a8b41de8f" and authenticated using password "TesTEr16843/!@00" When an account named "AccountPrivate" is added via private key "8da4ef21b864d2cc526dbdb2a120bd2874c36c9d0a1fb7f8c63d7f7a8b41de8f" and authenticated using password "TesTEr16843/!@00"
Then the new account "AccountPrivate" is added Then the new account "AccountPrivate" is added
@mayfail
Scenario: The user generates a new account from wallet and deletes it Scenario: The user generates a new account from wallet and deletes it
When an account named "AccountGenerated" is generated and authenticated using password "TesTEr16843/!@00" When an account named "AccountGenerated" is generated and authenticated using password "TesTEr16843/!@00"
Then the new account "AccountGenerated" is added Then the new account "AccountGenerated" is added
When the user deletes the account "AccountGenerated" When the user deletes the account "AccountGenerated"
Then the account "AccountGenerated" is not in the list of accounts Then the account "AccountGenerated" is not in the list of accounts
Scenario: The user can import seed phrase
When an account named "AccountSeed" is added via imported seed phrase "pelican chief sudden oval media rare swamp elephant lawsuit wheat knife initial" and authenticated using password "TesTEr16843/!@00"
Then the new account "AccountSeed" is added
Scenario: The user edits the default account Scenario: The user edits the default account
Given the user opens app settings screen Given the user opens app settings screen
And the user opens the wallet settings And the user opens the wallet settings