From 6efae8ebbcbb9e92052fbb7ecb06c7d96c62d149 Mon Sep 17 00:00:00 2001 From: MantisClone Date: Wed, 19 Oct 2022 08:24:20 -0400 Subject: [PATCH] Update Provider.checkFileUrl to allow non-URL file types (like Arweave) (#1627) * Update Provider.checkFileUrl to allow non-URL file types * Reduce scope to only URLs and Arweave. * Remove parentheses to make linter happy * Update Provider tests to use UrlFile argument * Fix lint errors * Fix lint error * [REVERT THIS] comment coverage upload * CC_TEST_REPORTER_ID secret not available in PR workflows from external contributors. * Revert "[REVERT THIS] comment coverage upload" This reverts commit 7ca94b7e71ce5d53fa0c7b35bdff85e91b6db059. * Add Arweave fileinfo unit test * Rename `checkFileUrl` to `getFileInfo` * Fix lint error --- src/services/Provider.ts | 8 +++++--- test/integration/Provider.test.ts | 21 ++++++++++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/services/Provider.ts b/src/services/Provider.ts index d7df1e5bb..7c1da36ef 100644 --- a/src/services/Provider.ts +++ b/src/services/Provider.ts @@ -2,6 +2,7 @@ import Web3 from 'web3' import fetch from 'cross-fetch' import { LoggerInstance } from '../utils' import { + Arweave, FileInfo, ComputeJob, ComputeOutput, @@ -11,6 +12,7 @@ import { ProviderInitialize, ProviderComputeInitializeResults, ServiceEndpoint, + UrlFile, UserCustomParameters } from '../@types' @@ -193,8 +195,8 @@ export class Provider { * @param {AbortSignal} signal abort signal * @return {Promise} urlDetails */ - public async checkFileUrl( - url: string, + public async getFileInfo( + file: UrlFile | Arweave, providerUri: string, signal?: AbortSignal ): Promise { @@ -203,7 +205,7 @@ export class Provider { providerUri, providerEndpoints ) - const args = { url, type: 'url' } + const args = file const files: FileInfo[] = [] const path = this.getEndpointURL(serviceEndpoints, 'fileinfo') ? this.getEndpointURL(serviceEndpoints, 'fileinfo').urlPath diff --git a/test/integration/Provider.test.ts b/test/integration/Provider.test.ts index 8c0ef1f01..c667f184a 100644 --- a/test/integration/Provider.test.ts +++ b/test/integration/Provider.test.ts @@ -25,9 +25,24 @@ describe('Provider tests', async () => { assert(valid === true) }) - it('Alice checks fileinfo', async () => { - const fileinfo: FileInfo[] = await providerInstance.checkFileUrl( - 'https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-abstract.xml.gz-rss.xml', + it('Alice checks URL fileinfo', async () => { + const fileinfo: FileInfo[] = await providerInstance.getFileInfo( + { + type: 'url', + url: 'https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-abstract.xml.gz-rss.xml', + method: 'GET' + }, + config.providerUri + ) + assert(fileinfo[0].valid === true, 'Sent file is not valid') + }) + + it('Alice checks Arweave fileinfo', async () => { + const fileinfo: FileInfo[] = await providerInstance.getFileInfo( + { + type: 'arweave', + transactionId: 'a4qJoQZa1poIv5guEzkfgZYSAD0uYm7Vw4zm_tCswVQ' + }, config.providerUri ) assert(fileinfo[0].valid === true, 'Sent file is not valid')