1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00

Throwing an error if the provider is not available (#1865)

* Throwing an error if the provider is not available

* Adding jest moch for checking if the provider is valid

* Removing console log
This commit is contained in:
Jamie Hewitt 2023-01-30 15:35:50 +03:00 committed by GitHub
parent 961a688f27
commit b9329a1456
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 2 deletions

View File

@ -147,3 +147,14 @@ export async function downloadFile(
) )
await downloadFileBrowser(downloadUrl) await downloadFileBrowser(downloadUrl)
} }
export async function checkValidProvider(
providerUrl: string
): Promise<boolean> {
try {
const response = await ProviderInstance.isValidProvider(providerUrl)
return response
} catch (error) {
LoggerInstance.error(error.message)
}
}

View File

@ -2,7 +2,7 @@ import { fireEvent, render, screen } from '@testing-library/react'
import React from 'react' import React from 'react'
import FilesInput from './index' import FilesInput from './index'
import { useField } from 'formik' import { useField } from 'formik'
import { getFileInfo } from '@utils/provider' import { getFileInfo, checkValidProvider } from '@utils/provider'
jest.mock('formik') jest.mock('formik')
jest.mock('@utils/provider') jest.mock('@utils/provider')
@ -48,6 +48,7 @@ const mockForm = {
describe('@shared/FormInput/InputElement/FilesInput', () => { describe('@shared/FormInput/InputElement/FilesInput', () => {
it('renders without crashing', async () => { it('renders without crashing', async () => {
;(useField as jest.Mock).mockReturnValue([mockField, mockMeta, mockHelpers]) ;(useField as jest.Mock).mockReturnValue([mockField, mockMeta, mockHelpers])
;(checkValidProvider as jest.Mock).mockReturnValue(true)
;(getFileInfo as jest.Mock).mockReturnValue([ ;(getFileInfo as jest.Mock).mockReturnValue([
{ {
valid: true, valid: true,

View File

@ -3,7 +3,7 @@ import { useField } from 'formik'
import FileInfo from './Info' import FileInfo from './Info'
import UrlInput from '../URLInput' import UrlInput from '../URLInput'
import { InputProps } from '@shared/FormInput' import { InputProps } from '@shared/FormInput'
import { getFileInfo } from '@utils/provider' import { getFileInfo, checkValidProvider } from '@utils/provider'
import { LoggerInstance } from '@oceanprotocol/lib' import { LoggerInstance } from '@oceanprotocol/lib'
import { useAsset } from '@context/Asset' import { useAsset } from '@context/Asset'
import { isGoogleUrl } from '@utils/url/index' import { isGoogleUrl } from '@utils/url/index'
@ -33,6 +33,13 @@ export default function FilesInput(props: InputProps): ReactElement {
) )
} }
// Check if provider is a valid provider
const isValid = await checkValidProvider(providerUrl)
if (!isValid)
throw Error(
'✗ Provider cannot be reached, please check status.oceanprotocol.com and try again later.'
)
const checkedFile = await getFileInfo(url, providerUrl, storageType) const checkedFile = await getFileInfo(url, providerUrl, storageType)
// error if something's not right from response // error if something's not right from response