Skip to content

Commit

Permalink
Merge branch 'main' into LW-7692-resue-artifacts
Browse files Browse the repository at this point in the history
  • Loading branch information
emiride committed Apr 23, 2024
2 parents 810481a + 57a8a76 commit 8fadef5
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 46 deletions.
67 changes: 27 additions & 40 deletions packages/e2e-tests/src/assert/tokensPageAssert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,59 +67,45 @@ class TokensPageAssert {
await TokensPage.tokenName(i).waitForDisplayed();
await TokensPage.tokenTicker(i).waitForDisplayed();
if (mode === 'extended') {
// TODO: verify price cells in extended mode
await TokensPage.tokenPriceAda(i).waitForDisplayed();
await TokensPage.tokenPriceChange(i).waitForDisplayed();
}
await TokensPage.tokenBalance(i).waitForDisplayed();
await TokensPage.tokenFiatBalance(i).waitForDisplayed();
}
};

assertSeeCardanoItem = async (mode: 'extended' | 'popup') => {
expect(await TokensPage.tokenName(0).getText()).to.equal(Asset.CARDANO.name);
expect(await TokensPage.tokenTicker(0).getText()).to.equal(Asset.CARDANO.ticker);

if (mode === 'extended') {
// TODO: verify price cells in extended mode
}

const tokenBalance = await TokensPage.getTokenBalanceAsFloatByIndex(0);
expect(tokenBalance).to.be.greaterThan(0);

const tokenFiatBalance = (await TokensPage.tokenFiatBalance(0).getText()).replace(',', '');
const tokenValueFiatFloat = Number.parseFloat(tokenFiatBalance.split(' ')[0]);
expect(tokenValueFiatFloat).to.be.greaterThan(0);
assertSeeNativeToken = async (tokenName: Asset, mode: 'extended' | 'popup') => {
await this.assertSeeTokenItemBasicData(tokenName);
await this.assertSeeTokenData(tokenName, true, mode);
};

assertSeeLaceCoinItem = async (mode: 'extended' | 'popup') => {
expect(await TokensPage.getTokenNames()).to.contain(Asset.LACE_COIN.name);
expect(await TokensPage.getTokenTickers()).to.contain(Asset.LACE_COIN.ticker);

const tokensTableIndex = await TokensPage.getTokenRowIndex(Asset.LACE_COIN.name);

if (mode === 'extended') {
// TODO: verify price cells in extended mode
}

const tokenBalance = await TokensPage.getTokenBalanceAsFloatByIndex(tokensTableIndex);
expect(tokenBalance).to.be.greaterThan(0);
assertSeeNotNativeToken = async (tokenName: Asset, mode: 'extended' | 'popup') => {
await this.assertSeeTokenItemBasicData(tokenName);
await this.assertSeeTokenData(tokenName, false, mode);
};

const tokenFiatBalance = await TokensPage.tokenFiatBalance(tokensTableIndex).getText();
expect(tokenFiatBalance).to.equal('-');
assertSeeTokenItemBasicData = async (tokenName: Asset) => {
const tokensTableIndex = await TokensPage.getTokenRowIndex(tokenName.name);
expect(await TokensPage.tokenName(tokensTableIndex).getText()).to.contain(tokenName.name);
expect(await TokensPage.tokenTicker(tokensTableIndex).getText()).to.contain(tokenName.ticker);
expect(await TokensPage.getTokenBalanceAsFloatByIndex(tokensTableIndex)).to.be.greaterThan(0);
};

assertSeeHoskyItem = async (mode: 'extended' | 'popup') => {
expect(await TokensPage.getTokenNames()).to.contain(Asset.HOSKY_TOKEN.name);
expect(await TokensPage.getTokenTickers()).to.contain(Asset.HOSKY_TOKEN.ticker);
private assertTokenValueMatchesPattern = async (tokenValue: string, pattern: RegExp, isNativeToken: boolean) => {
isNativeToken ? expect(tokenValue).to.match(pattern) : expect(tokenValue).to.equal('-');
};

const tokensTableIndex = await TokensPage.getTokenRowIndex(Asset.HOSKY_TOKEN.name);
assertSeeTokenData = async (tokenName: Asset, nativeToken: boolean, mode: 'extended' | 'popup') => {
const tokensTableIndex = await TokensPage.getTokenRowIndex(tokenName.name);
const tokenValueFiat = await TokensPage.tokenFiatBalance(tokensTableIndex).getText();
await this.assertTokenValueMatchesPattern(tokenValueFiat, TestnetPatterns.TOKEN_VALUE_FIAT_REGEX, nativeToken);
if (mode === 'extended') {
// TODO: verify price cells in extended mode
const tokenValuePriceAda = await TokensPage.tokenPriceAda(tokensTableIndex).getText();
await this.assertTokenValueMatchesPattern(tokenValuePriceAda, TestnetPatterns.TOKEN_VALUE_ADA_REGEX, nativeToken);
const tokenValuePriceChange = await TokensPage.tokenPriceChange(tokensTableIndex).getText();
await this.assertTokenValueMatchesPattern(tokenValuePriceChange, TestnetPatterns.TOKEN_PRICE_CHANGE, nativeToken);
}
const tokenBalance = await TokensPage.getTokenBalanceAsFloatByIndex(tokensTableIndex);
expect(tokenBalance).to.be.greaterThan(0);

const tokenFiatBalance = await TokensPage.tokenFiatBalance(tokensTableIndex).getText();
expect(tokenFiatBalance).to.equal('-');
};

async assertSeeToken(shouldSee: boolean, tokenDetails: ExpectedTokenDetails, mode: 'extended' | 'popup') {
Expand All @@ -131,7 +117,8 @@ class TokensPageAssert {
const tokenBalance = await TokensPage.getTokenBalanceAsFloatByIndex(tokensTableIndex);
expect(tokenBalance).to.equal(tokenDetails.value);
if (mode === 'extended') {
// TODO: verify price cells in extended mode
await TokensPage.tokenPriceAda(tokensTableIndex).waitForDisplayed();
await TokensPage.tokenPriceChange(tokensTableIndex).waitForDisplayed();
}
} else {
expect(await TokensPage.getTokenNames()).to.not.contain(tokenDetails.name);
Expand Down
10 changes: 10 additions & 0 deletions packages/e2e-tests/src/elements/tokensPage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ class TokensPage {
private TOKEN_TICKER = '[data-testid="token-table-cell-ticker"]';
private TOKEN_BALANCE = '[data-testid="token-table-cell-balance"]';
private TOKEN_FIAT_BALANCE = '[data-testid="token-table-cell-fiat-balance"]';
private TOKEN_PRICE = '[data-testid="token-table-cell-price"]';
private TOKEN_VARIATION = '[data-testid="token-table-cell-price-variation"]';
private COINGECKO_CREDITS = '[data-testid="coingecko-credits"]';
private COINGECKO_LINK = '[data-testid="coingecko-link"]';
private RECEIVE_BUTTON_POPUP_MODE = 'main [data-testid="receive-button"]';
Expand Down Expand Up @@ -80,6 +82,14 @@ class TokensPage {
return $$(this.TOKENS_TABLE_ROW)[index].$(this.TOKEN_FIAT_BALANCE);
}

tokenPriceAda(index: number): ChainablePromiseElement<WebdriverIO.Element> {
return $$(this.TOKENS_TABLE_ROW)[index].$(this.TOKEN_PRICE);
}

tokenPriceChange(index: number): ChainablePromiseElement<WebdriverIO.Element> {
return $$(this.TOKENS_TABLE_ROW)[index].$(this.TOKEN_VARIATION);
}

tokensTableItemWithName(tokenName: string): ChainablePromiseElement<WebdriverIO.Element> {
const selector = `${this.TOKENS_TABLE_ROW}[descendant::*[text()='${tokenName}']]`;
return $(selector);
Expand Down
8 changes: 4 additions & 4 deletions packages/e2e-tests/src/steps/tokensPageSteps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,17 @@ Then(
/^I see Cardano & LaceCoin tokens on the list with all the details in (extended|popup) mode$/,
async (mode: 'extended' | 'popup') => {
await tokensPageAssert.assertSeeTableItems(mode);
await tokensPageAssert.assertSeeCardanoItem(mode);
await tokensPageAssert.assertSeeLaceCoinItem(mode);
await tokensPageAssert.assertSeeNativeToken(Asset.CARDANO, mode);
await tokensPageAssert.assertSeeNotNativeToken(Asset.LACE_COIN, mode);
}
);

Then(
/^I see Cardano & Hosky tokens on the list with all the details in (extended|popup) mode$/,
async (mode: 'extended' | 'popup') => {
await tokensPageAssert.assertSeeTableItems(mode);
await tokensPageAssert.assertSeeCardanoItem(mode);
await tokensPageAssert.assertSeeHoskyItem(mode);
await tokensPageAssert.assertSeeNativeToken(Asset.CARDANO, mode);
await tokensPageAssert.assertSeeNativeToken(Asset.HOSKY_TOKEN, mode);
}
);

Expand Down
8 changes: 7 additions & 1 deletion packages/e2e-tests/src/support/patterns.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ const STAKE_POOL_LIST_COST_REGEX = /(\d*\.)?\d+\s?%(\s\+\s\d*ADA)?/;
const TIMESTAMP_REGEX = /\d{2}:\d{2}:\d{2}/;
const PLEDGE_REGEX = /^\d{1,3}(\.\d{0,2})?[BKM]?$/;
const BLOCKS_REGEX = /^(-|\d*)$/;
const TOKEN_VALUE_FIAT_REGEX = /^([\d+,.])+\.\d+\s\D{2,3}$/;
const TOKEN_VALUE_ADA_REGEX = /^\d+\.\d+$/;
const TOKEN_PRICE_CHANGE = /^([+-])\d+\.\d{2}$/;

export const TestnetPatterns = {
TESTNET_ADDR_REGEX,
Expand All @@ -35,5 +38,8 @@ export const TestnetPatterns = {
STAKE_POOL_LIST_COST_REGEX,
TIMESTAMP_REGEX,
PLEDGE_REGEX,
BLOCKS_REGEX
BLOCKS_REGEX,
TOKEN_VALUE_FIAT_REGEX,
TOKEN_VALUE_ADA_REGEX,
TOKEN_PRICE_CHANGE
};
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ export const StakePoolConfirmationFooter = ({ popupView }: StakePoolConfirmation
}, [analytics, currentPortfolio, draftPortfolio, handleSubmission]);

const confirmLabel = useMemo(() => {
if (!isHardwareWallet) {
if (isHardwareWallet) {
const staleLabels = popupView
? t('drawer.confirmation.button.continueInAdvancedView')
: t('drawer.confirmation.button.confirmWithDevice', { hardwareWallet: walletType });
Expand Down

0 comments on commit 8fadef5

Please sign in to comment.