Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions src/components/Form/BridgeForm.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ describe('BridgeForm', () => {
url: '',
minimumContractPayment: '0',
confirmations: 0,
useConnectionManager: false,
}

render(
Expand All @@ -38,6 +39,7 @@ describe('BridgeForm', () => {
url: '',
minimumContractPayment: '0',
confirmations: 0,
useConnectionManager: false,
}

render(
Expand All @@ -59,6 +61,7 @@ describe('BridgeForm', () => {
url: '',
minimumContractPayment: '0',
confirmations: 0,
useConnectionManager: false,
}

render(
Expand Down Expand Up @@ -92,9 +95,45 @@ describe('BridgeForm', () => {
url: 'https://www.test.com',
minimumContractPayment: '1',
confirmations: 2,
useConnectionManager: false,
},
expect.anything(),
),
)
})

it('submits useConnectionManager when checked', async () => {
const handleSubmit = jest.fn()
const initialValues: FormValues = {
name: '',
url: '',
minimumContractPayment: '0',
confirmations: 0,
useConnectionManager: false,
}

render(
<BridgeForm
initialValues={initialValues}
onSubmit={handleSubmit}
submitButtonText="Submit"
/>,
)

userEvent.type(getByRole('textbox', { name: /name */i }), 'bridge1')
userEvent.type(
getByRole('textbox', { name: /bridge url */i }),
'https://www.test.com',
)
userEvent.click(getByRole('checkbox', { name: /use grpc transport/i }))

userEvent.click(getByRole('button', { name: /submit/i }))

await waitFor(() =>
expect(handleSubmit).toHaveBeenCalledWith(
expect.objectContaining({ useConnectionManager: true }),
expect.anything(),
),
)
})
})
18 changes: 17 additions & 1 deletion src/components/Form/BridgeForm.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import React from 'react'

import { Field, Form, Formik, FormikHelpers } from 'formik'
import { FormikTextField as TextField } from './FormikFields'
import {
FormikTextField as TextField,
FormikCheckboxWithLabel as CheckboxWithLabel,
} from './FormikFields'
import * as Yup from 'yup'

import Button from '@mui/material/Button'
Expand All @@ -12,6 +15,7 @@ export interface FormValues {
minimumContractPayment: string
confirmations: number
url: string
useConnectionManager: boolean
}

const ValidationSchema = Yup.object().shape({
Expand Down Expand Up @@ -105,6 +109,18 @@ export const BridgeForm = ({
</Grid>
</Grid>

<Grid item xs={12} md={7}>
<Field
component={CheckboxWithLabel}
name="useConnectionManager"
type="checkbox"
data-testid="useConnectionManager"
Label={{
label: 'Use gRPC transport',
}}
/>
</Grid>

<Grid item xs={12} md={7}>
<Button
variant="contained"
Expand Down
1 change: 1 addition & 0 deletions src/screens/Bridge/BridgeCard.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ describe('BridgeCard', () => {
expect(queryByText(bridge.outgoingToken)).toBeInTheDocument()
expect(queryByText(bridge.confirmations)).toBeInTheDocument()
expect(queryByText(bridge.minimumContractPayment)).toBeInTheDocument()
expect(queryByText('Use gRPC transport')).toBeInTheDocument()
})

it('calls delete', () => {
Expand Down
7 changes: 7 additions & 0 deletions src/screens/Bridge/BridgeCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,13 @@ export const BridgeCard: React.FC<Props> = ({ bridge, onDelete }) => {
<DetailsCardItemTitle title="Min. Contract Payment" />
<DetailsCardItemValue value={bridge.minimumContractPayment} />
</Grid>

<Grid item xs={12} sm={4} md={3}>
<DetailsCardItemTitle title="Use gRPC transport" />
<DetailsCardItemValue
value={bridge.useConnectionManager ? 'Yes' : 'No'}
/>
</Grid>
</Grid>
</DetailsCard>
)
Expand Down
1 change: 1 addition & 0 deletions src/screens/Bridge/BridgeView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export const BRIDGE_PAYLOAD_FIELDS = gql`
confirmations
outgoingToken
minimumContractPayment
useConnectionManager
}
`

Expand Down
3 changes: 3 additions & 0 deletions src/screens/EditBridge/EditBridgeScreen.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ describe('EditBridgeScreen', () => {
url: 'https://www.test.com',
minimumContractPayment: '1',
confirmations: 10,
useConnectionManager: false,
},
},
},
Expand Down Expand Up @@ -138,6 +139,7 @@ describe('EditBridgeScreen', () => {
url: bridge.url,
minimumContractPayment: bridge.minimumContractPayment,
confirmations: bridge.confirmations,
useConnectionManager: bridge.useConnectionManager,
},
},
},
Expand Down Expand Up @@ -177,6 +179,7 @@ describe('EditBridgeScreen', () => {
url: bridge.url,
minimumContractPayment: bridge.minimumContractPayment,
confirmations: bridge.confirmations,
useConnectionManager: bridge.useConnectionManager,
},
},
},
Expand Down
1 change: 1 addition & 0 deletions src/screens/EditBridge/EditBridgeView.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ describe('EditBridgeView', () => {
url: 'http://bridge.com',
minimumContractPayment: '0',
confirmations: 1,
useConnectionManager: false,
})
})

Expand Down
1 change: 1 addition & 0 deletions src/screens/EditBridge/EditBridgeView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export const EditBridgeView: React.FC<Props> = ({ bridge, onSubmit }) => {
url: bridge.url,
minimumContractPayment: bridge.minimumContractPayment,
confirmations: bridge.confirmations,
useConnectionManager: bridge.useConnectionManager,
}

return (
Expand Down
2 changes: 2 additions & 0 deletions src/screens/NewBridge/NewBridgeScreen.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ describe('NewBridgeScreen', () => {
url: 'https://www.test.com',
minimumContractPayment: '0',
confirmations: 0,
useConnectionManager: false,
},
},
},
Expand Down Expand Up @@ -84,6 +85,7 @@ describe('NewBridgeScreen', () => {
url: 'https://www.test.com',
minimumContractPayment: '0',
confirmations: 0,
useConnectionManager: false,
},
},
},
Expand Down
1 change: 1 addition & 0 deletions src/screens/NewBridge/NewBridgeView.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ describe('NewBridgeView', () => {
url: '',
minimumContractPayment: '0',
confirmations: 0,
useConnectionManager: false,
})
})
})
1 change: 1 addition & 0 deletions src/screens/NewBridge/NewBridgeView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const initialValues = {
url: '',
minimumContractPayment: '0',
confirmations: 0,
useConnectionManager: false,
}

type Props = Pick<FormProps, 'onSubmit'>
Expand Down
1 change: 1 addition & 0 deletions support/factories/gql/fetchBridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export function buildBridgePayloadFields(
confirmations: 1,
minimumContractPayment: '0',
outgoingToken: 'outgoing1',
useConnectionManager: false,
...overrides,
}
}
Loading