diff --git a/src/components/Form/BridgeForm.test.tsx b/src/components/Form/BridgeForm.test.tsx
index 485d503d..402afcf9 100644
--- a/src/components/Form/BridgeForm.test.tsx
+++ b/src/components/Form/BridgeForm.test.tsx
@@ -15,6 +15,7 @@ describe('BridgeForm', () => {
url: '',
minimumContractPayment: '0',
confirmations: 0,
+ useConnectionManager: false,
}
render(
@@ -38,6 +39,7 @@ describe('BridgeForm', () => {
url: '',
minimumContractPayment: '0',
confirmations: 0,
+ useConnectionManager: false,
}
render(
@@ -59,6 +61,7 @@ describe('BridgeForm', () => {
url: '',
minimumContractPayment: '0',
confirmations: 0,
+ useConnectionManager: false,
}
render(
@@ -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(
+ ,
+ )
+
+ 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(),
+ ),
+ )
+ })
})
diff --git a/src/components/Form/BridgeForm.tsx b/src/components/Form/BridgeForm.tsx
index 2c270252..1f9ed402 100644
--- a/src/components/Form/BridgeForm.tsx
+++ b/src/components/Form/BridgeForm.tsx
@@ -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'
@@ -12,6 +15,7 @@ export interface FormValues {
minimumContractPayment: string
confirmations: number
url: string
+ useConnectionManager: boolean
}
const ValidationSchema = Yup.object().shape({
@@ -105,6 +109,18 @@ export const BridgeForm = ({
+
+
+
+
+
+
+
+
+
)
diff --git a/src/screens/Bridge/BridgeView.tsx b/src/screens/Bridge/BridgeView.tsx
index eb82a6cb..47557df2 100644
--- a/src/screens/Bridge/BridgeView.tsx
+++ b/src/screens/Bridge/BridgeView.tsx
@@ -17,6 +17,7 @@ export const BRIDGE_PAYLOAD_FIELDS = gql`
confirmations
outgoingToken
minimumContractPayment
+ useConnectionManager
}
`
diff --git a/src/screens/EditBridge/EditBridgeScreen.test.tsx b/src/screens/EditBridge/EditBridgeScreen.test.tsx
index e0043403..8516c593 100644
--- a/src/screens/EditBridge/EditBridgeScreen.test.tsx
+++ b/src/screens/EditBridge/EditBridgeScreen.test.tsx
@@ -58,6 +58,7 @@ describe('EditBridgeScreen', () => {
url: 'https://www.test.com',
minimumContractPayment: '1',
confirmations: 10,
+ useConnectionManager: false,
},
},
},
@@ -138,6 +139,7 @@ describe('EditBridgeScreen', () => {
url: bridge.url,
minimumContractPayment: bridge.minimumContractPayment,
confirmations: bridge.confirmations,
+ useConnectionManager: bridge.useConnectionManager,
},
},
},
@@ -177,6 +179,7 @@ describe('EditBridgeScreen', () => {
url: bridge.url,
minimumContractPayment: bridge.minimumContractPayment,
confirmations: bridge.confirmations,
+ useConnectionManager: bridge.useConnectionManager,
},
},
},
diff --git a/src/screens/EditBridge/EditBridgeView.test.tsx b/src/screens/EditBridge/EditBridgeView.test.tsx
index 640fa6f3..5db8f6fa 100644
--- a/src/screens/EditBridge/EditBridgeView.test.tsx
+++ b/src/screens/EditBridge/EditBridgeView.test.tsx
@@ -38,6 +38,7 @@ describe('EditBridgeView', () => {
url: 'http://bridge.com',
minimumContractPayment: '0',
confirmations: 1,
+ useConnectionManager: false,
})
})
diff --git a/src/screens/EditBridge/EditBridgeView.tsx b/src/screens/EditBridge/EditBridgeView.tsx
index bec8914a..2f330c4f 100644
--- a/src/screens/EditBridge/EditBridgeView.tsx
+++ b/src/screens/EditBridge/EditBridgeView.tsx
@@ -20,6 +20,7 @@ export const EditBridgeView: React.FC = ({ bridge, onSubmit }) => {
url: bridge.url,
minimumContractPayment: bridge.minimumContractPayment,
confirmations: bridge.confirmations,
+ useConnectionManager: bridge.useConnectionManager,
}
return (
diff --git a/src/screens/NewBridge/NewBridgeScreen.test.tsx b/src/screens/NewBridge/NewBridgeScreen.test.tsx
index f9f296af..8d883726 100644
--- a/src/screens/NewBridge/NewBridgeScreen.test.tsx
+++ b/src/screens/NewBridge/NewBridgeScreen.test.tsx
@@ -37,6 +37,7 @@ describe('NewBridgeScreen', () => {
url: 'https://www.test.com',
minimumContractPayment: '0',
confirmations: 0,
+ useConnectionManager: false,
},
},
},
@@ -84,6 +85,7 @@ describe('NewBridgeScreen', () => {
url: 'https://www.test.com',
minimumContractPayment: '0',
confirmations: 0,
+ useConnectionManager: false,
},
},
},
diff --git a/src/screens/NewBridge/NewBridgeView.test.tsx b/src/screens/NewBridge/NewBridgeView.test.tsx
index e06d6ac1..9f2c6aa5 100644
--- a/src/screens/NewBridge/NewBridgeView.test.tsx
+++ b/src/screens/NewBridge/NewBridgeView.test.tsx
@@ -18,6 +18,7 @@ describe('NewBridgeView', () => {
url: '',
minimumContractPayment: '0',
confirmations: 0,
+ useConnectionManager: false,
})
})
})
diff --git a/src/screens/NewBridge/NewBridgeView.tsx b/src/screens/NewBridge/NewBridgeView.tsx
index ca8fe7e6..76964239 100644
--- a/src/screens/NewBridge/NewBridgeView.tsx
+++ b/src/screens/NewBridge/NewBridgeView.tsx
@@ -13,6 +13,7 @@ const initialValues = {
url: '',
minimumContractPayment: '0',
confirmations: 0,
+ useConnectionManager: false,
}
type Props = Pick
diff --git a/support/factories/gql/fetchBridge.ts b/support/factories/gql/fetchBridge.ts
index ad5f8614..be890679 100644
--- a/support/factories/gql/fetchBridge.ts
+++ b/support/factories/gql/fetchBridge.ts
@@ -10,6 +10,7 @@ export function buildBridgePayloadFields(
confirmations: 1,
minimumContractPayment: '0',
outgoingToken: 'outgoing1',
+ useConnectionManager: false,
...overrides,
}
}