From c22daa0636555864529bbf162adabe1fc13bb0bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20G=C5=82ownia?= Date: Mon, 8 May 2023 13:46:56 +0200 Subject: [PATCH] feat: add EstimatePosition mock --- .../trading-deal-ticket-submit-account.cy.ts | 4 ++ apps/trading-e2e/src/support/trading.ts | 2 + libs/cypress/mock.ts | 1 + .../src/lib/estimate-position.mock.ts | 40 +++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 libs/positions/src/lib/estimate-position.mock.ts diff --git a/apps/trading-e2e/src/integration/trading-deal-ticket-submit-account.cy.ts b/apps/trading-e2e/src/integration/trading-deal-ticket-submit-account.cy.ts index b240ba7ba..8af83ff1d 100644 --- a/apps/trading-e2e/src/integration/trading-deal-ticket-submit-account.cy.ts +++ b/apps/trading-e2e/src/integration/trading-deal-ticket-submit-account.cy.ts @@ -4,6 +4,7 @@ import { accountsQuery, amendGeneralAccountBalance, estimateFeesQuery, + estimatePositionQuery, } from '@vegaprotocol/mock'; import type { OrderSubmission } from '@vegaprotocol/wallet'; import { createOrder } from '../support/create-order'; @@ -51,6 +52,9 @@ describe( cy.mockGQL((req) => { aliasGQLQuery(req, 'EstimateFee', estimateFeesQuery()); }); + cy.mockGQL((req) => { + aliasGQLQuery(req, 'EstimatePosition', estimatePositionQuery()); + }); cy.mockSubscription(); cy.visit('/#/markets/market-0'); cy.wait('@Markets'); diff --git a/apps/trading-e2e/src/support/trading.ts b/apps/trading-e2e/src/support/trading.ts index 42ab1b8fb..7af1c4ca3 100644 --- a/apps/trading-e2e/src/support/trading.ts +++ b/apps/trading-e2e/src/support/trading.ts @@ -22,6 +22,7 @@ import { networkParamsQuery, nodeGuardQuery, ordersQuery, + estimatePositionQuery, positionsQuery, proposalListQuery, statisticsQuery, @@ -158,6 +159,7 @@ const mockTradingPage = ( aliasGQLQuery(req, 'Withdrawals', withdrawalsQuery()); aliasGQLQuery(req, 'NetworkParams', networkParamsQuery()); aliasGQLQuery(req, 'EstimateFees', estimateFeesQuery()); + aliasGQLQuery(req, 'EstimatePosition', estimatePositionQuery()); aliasGQLQuery(req, 'ProposalsList', proposalListQuery()); aliasGQLQuery(req, 'Deposits', depositsQuery()); }; diff --git a/libs/cypress/mock.ts b/libs/cypress/mock.ts index d2aff6cfc..5ec3cc1dc 100644 --- a/libs/cypress/mock.ts +++ b/libs/cypress/mock.ts @@ -23,5 +23,6 @@ export * from '../orders/src/lib/components/order-data-provider/orders.mock'; export * from '../positions/src/lib/positions.mock'; export * from '../network-parameters/src/network-params.mock'; export * from '../wallet/src/connect-dialog/chain-id.mock'; +export * from '../positions/src/lib/estimate-position.mock'; export * from '../trades/src/lib/trades.mock'; export * from '../withdraws/src/lib/withdrawal.mock'; diff --git a/libs/positions/src/lib/estimate-position.mock.ts b/libs/positions/src/lib/estimate-position.mock.ts new file mode 100644 index 000000000..a61020a05 --- /dev/null +++ b/libs/positions/src/lib/estimate-position.mock.ts @@ -0,0 +1,40 @@ +import type { PartialDeep } from 'type-fest'; +import merge from 'lodash/merge'; +import type { EstimatePositionQuery } from './__generated__/Positions'; + +export const estimatePositionQuery = ( + override?: PartialDeep +): EstimatePositionQuery => { + const defaultResult: EstimatePositionQuery = { + estimatePosition: { + __typename: 'PositionEstimate', + margin: { + bestCase: { + collateralReleaseLevel: '100', + initialLevel: '50', + maintenanceLevel: '20', + searchLevel: '30', + }, + worstCase: { + collateralReleaseLevel: '110', + initialLevel: '60', + maintenanceLevel: '30', + searchLevel: '40', + }, + }, + liquidation: { + bestCase: { + including_buy_orders: '1', + including_sell_orders: '1', + open_volume_only: '1', + }, + worstCase: { + including_buy_orders: '1', + including_sell_orders: '1', + open_volume_only: '1', + }, + }, + }, + }; + return merge(defaultResult, override); +};