From 3df3971e2333c5f045d5684fa793525e8b1efcac Mon Sep 17 00:00:00 2001 From: NickolaiYurchenko Date: Fri, 16 Jun 2023 16:50:33 +0300 Subject: [PATCH 1/4] fix(frontend): reset borrow values after redirect off it --- .../frontend/components/Borrow/Borrow.tsx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/frontend/components/Borrow/Borrow.tsx b/packages/frontend/components/Borrow/Borrow.tsx index 2654b9f9d..4f807cd8a 100644 --- a/packages/frontend/components/Borrow/Borrow.tsx +++ b/packages/frontend/components/Borrow/Borrow.tsx @@ -59,6 +59,7 @@ function Borrow({ isEditing, basePosition }: BorrowProps) { const allow = useBorrow((state) => state.allow); const updateCurrencyPrice = useBorrow((state) => state.updateCurrencyPrice); const signAndExecute = useBorrow((state) => state.signAndExecute); + const changeActiveVault = useBorrow((state) => state.changeActiveVault); const position = basePosition ? basePosition.position : undefined; const dynamicLtvMeta = ltvMeta(basePosition); @@ -139,6 +140,24 @@ function Borrow({ isEditing, basePosition }: BorrowProps) { updateCurrencyPrice(AssetType.Debt); }, [updateCurrencyPrice]); + const resetData = () => { + const defaultVault = walletChainId + ? availableVaults.find( + (vaultItem) => vaultItem.vault.chainId === walletChainId + ) + : availableVaults[0]; + + defaultVault && changeActiveVault(defaultVault); + walletChainId && + changeAssetChain(AssetType.Collateral, walletChainId, true); + }; + + useEffect(() => { + return () => { + resetData(); + }; + }, []); // eslint-disable-line + useEffect(() => { if (prevActionType.current !== actionType) { changeInputValues('', ''); From f51de47e0a4be4f04885110b4e88765ad015a54a Mon Sep 17 00:00:00 2001 From: NickolaiYurchenko Date: Fri, 16 Jun 2023 19:55:18 +0300 Subject: [PATCH 2/4] test(frontend): attempt to test provider on market --- .../components/Markets/MarketsTableRow.tsx | 6 ++- .../frontend/tests/e2e/specs/markets.spec.ts | 52 ++++++++++++------- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/packages/frontend/components/Markets/MarketsTableRow.tsx b/packages/frontend/components/Markets/MarketsTableRow.tsx index a43e99ac2..3f7f5972a 100644 --- a/packages/frontend/components/Markets/MarketsTableRow.tsx +++ b/packages/frontend/components/Markets/MarketsTableRow.tsx @@ -185,7 +185,11 @@ function MarketsTableRow({ /> )} - + {loaderOrError(row.integratedProviders.status)} {!expandRow && ( diff --git a/packages/frontend/tests/e2e/specs/markets.spec.ts b/packages/frontend/tests/e2e/specs/markets.spec.ts index 3cadd48f3..92d813101 100644 --- a/packages/frontend/tests/e2e/specs/markets.spec.ts +++ b/packages/frontend/tests/e2e/specs/markets.spec.ts @@ -109,24 +109,23 @@ describe('Markets', () => { }) .click(); // checking rows count changes. - cy.get('[data-cy="market-row"]') - .then((value) => { - resultLength = value.length; - expect(resultLength).to.not.eq(startLength); - }) - .first() - .find('[data-cy="market-row-network"]') - .first() - .then((network) => { - // checking rows filtered by network properly. - expect(network).to.have.text(chainName); - // clicking first network filter button which is ALL. - cy.get('[data-cy="market-network-filter"]').first().click(); - // checking rows count is same as in default state. - cy.get('[data-cy="market-row"]').then((value) => { - expect(value.length).to.eq(startLength); + cy.get('[data-cy="market-row"]').then((value) => { + resultLength = value.length; + expect(resultLength).to.not.eq(startLength); + cy.get('[data-cy="market-row"]') + .find('[data-cy="market-row-network"]') + .first() + .then((network) => { + // checking rows filtered by network properly. + expect(network).to.include.text(chainName); + // clicking first network filter button which is ALL. + cy.get('[data-cy="market-network-filter"]').first().click(); + // checking rows count is same as in default state. + cy.get('[data-cy="market-row"]').then((value) => { + expect(value.length).to.eq(startLength); + }); }); - }); + }); }); it('should toggle first high-level row', () => { // finding first row. @@ -146,7 +145,7 @@ describe('Markets', () => { .should('not.exist'); }); it('should redirect after click with correct currency prefill', () => { - let collateralCurrency, debtCurrency; + let collateralCurrency, debtCurrency, provider; // finding first row. cy.get('[data-cy="market-row"]').first().as('firstRow', { type: 'static' }); cy.get('@firstRow') @@ -165,8 +164,19 @@ describe('Markets', () => { collateralCurrency = collateral; }) .then(() => { - // clicking on first row. - cy.get('@firstRow').first().click(); + cy.get('[data-cy="market-row"]') + .next() + .find('[data-cy="market-row-providers"]') + .first() + .find('img') + .first() + .debug() + .invoke('attr', 'provider') + .then((text) => { + provider = text; + }); + // clicking on first second row. + cy.get('@firstRow').next().click(); // checking redirect to borrow page. cy.location('pathname').should('eq', '/borrow'); // checking prefilled collateral currency. @@ -177,6 +187,8 @@ describe('Markets', () => { cy.get('[data-cy="currency-select"]') .last() .should('have.text', debtCurrency); + + expect(provider).to.include.text('Agave'); }); }); }); From d729816569b30778bb8696c94fd26e4aa6c9283c Mon Sep 17 00:00:00 2001 From: NickolaiYurchenko Date: Mon, 26 Jun 2023 15:51:54 +0300 Subject: [PATCH 3/4] test(frontend): market last case to test selected provider --- .../components/Markets/MarketsTableRow.tsx | 6 +-- .../Shared/Table/IntegratedProviders.tsx | 1 + .../frontend/tests/e2e/specs/markets.spec.ts | 47 ++++++++++--------- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/packages/frontend/components/Markets/MarketsTableRow.tsx b/packages/frontend/components/Markets/MarketsTableRow.tsx index 3f7f5972a..a43e99ac2 100644 --- a/packages/frontend/components/Markets/MarketsTableRow.tsx +++ b/packages/frontend/components/Markets/MarketsTableRow.tsx @@ -185,11 +185,7 @@ function MarketsTableRow({ /> )} - + {loaderOrError(row.integratedProviders.status)} {!expandRow && ( diff --git a/packages/frontend/components/Shared/Table/IntegratedProviders.tsx b/packages/frontend/components/Shared/Table/IntegratedProviders.tsx index 7de31f44b..8e1c75eee 100644 --- a/packages/frontend/components/Shared/Table/IntegratedProviders.tsx +++ b/packages/frontend/components/Shared/Table/IntegratedProviders.tsx @@ -33,6 +33,7 @@ function IntegratedProviders({ providers }: IntegratedProvidersProps) { zIndex: 4 - i, height: '24px', }} + data-cy="provider-item" > {i <= 2 && ( { cy.get('[data-cy="market-row"]').first().as('firstRow', { type: 'static' }); cy.get('@firstRow') .find('[data-cy="market-row-debt"]') + .first() .invoke('text') .then((debt) => { // saving first row debt currency. @@ -158,37 +159,41 @@ describe('Markets', () => { .then(() => { cy.get('@firstRow') .find('[data-cy="market-row-collateral"]') + .first() .invoke('text') .then((collateral) => { // saving first row collateral currency. collateralCurrency = collateral; }) .then(() => { - cy.get('[data-cy="market-row"]') - .next() - .find('[data-cy="market-row-providers"]') + cy.get('[data-cy="provider-item"]') .first() .find('img') .first() - .debug() - .invoke('attr', 'provider') - .then((text) => { - provider = text; - }); - // clicking on first second row. - cy.get('@firstRow').next().click(); - // checking redirect to borrow page. - cy.location('pathname').should('eq', '/borrow'); - // checking prefilled collateral currency. - cy.get('[data-cy="currency-select"]') - .first() - .should('have.text', collateralCurrency); - // checking prefilled debt currency. - cy.get('[data-cy="currency-select"]') - .last() - .should('have.text', debtCurrency); + .then((image) => { + provider = image.attr('alt'); + + // clicking on first pair second row. + cy.get('[data-cy="market-row"]').eq(1).click(); + // checking redirect to borrow page. + cy.location('pathname').should('eq', '/borrow'); + // checking prefilled collateral currency. + cy.get('[data-cy="currency-select"]') + .first() + .should('have.text', collateralCurrency); + // checking prefilled debt currency. + cy.get('[data-cy="currency-select"]') + .last() + .should('have.text', debtCurrency); - expect(provider).to.include.text('Agave'); + cy.get('[data-cy="provider-item"]') + .first() + .find('img') + .first() + .then((image) => { + expect(provider).to.eq(image.attr('alt')); + }); + }); }); }); }); From 758e28979eb214c006076d046036e75f96a2504c Mon Sep 17 00:00:00 2001 From: NickolaiYurchenko Date: Mon, 26 Jun 2023 17:37:07 +0300 Subject: [PATCH 4/4] fix(frontend): hide position chain when no debt --- packages/frontend/components/Borrow/Borrow.tsx | 7 ------- packages/frontend/components/Borrow/Header/Header.tsx | 10 ++++++---- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/packages/frontend/components/Borrow/Borrow.tsx b/packages/frontend/components/Borrow/Borrow.tsx index 4f807cd8a..dd3869e15 100644 --- a/packages/frontend/components/Borrow/Borrow.tsx +++ b/packages/frontend/components/Borrow/Borrow.tsx @@ -141,13 +141,6 @@ function Borrow({ isEditing, basePosition }: BorrowProps) { }, [updateCurrencyPrice]); const resetData = () => { - const defaultVault = walletChainId - ? availableVaults.find( - (vaultItem) => vaultItem.vault.chainId === walletChainId - ) - : availableVaults[0]; - - defaultVault && changeActiveVault(defaultVault); walletChainId && changeAssetChain(AssetType.Collateral, walletChainId, true); }; diff --git a/packages/frontend/components/Borrow/Header/Header.tsx b/packages/frontend/components/Borrow/Header/Header.tsx index 882a705a7..a4ad51801 100644 --- a/packages/frontend/components/Borrow/Header/Header.tsx +++ b/packages/frontend/components/Borrow/Header/Header.tsx @@ -85,10 +85,12 @@ function BorrowHeader({ Borrow - + {debt && ( + + )} )}