From f8c1cfff7b226d571b680bc0876d5af0ec8b3240 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 8 Sep 2020 12:49:03 +0200 Subject: [PATCH] more test fixes --- test/unit/helpers.ts | 20 ++++++++++++++ test/unit/metadatastore/MetadataStore.test.ts | 27 +++++++------------ test/unit/ocean/Assets.test.ts | 22 ++++++++++----- 3 files changed, 45 insertions(+), 24 deletions(-) create mode 100644 test/unit/helpers.ts diff --git a/test/unit/helpers.ts b/test/unit/helpers.ts new file mode 100644 index 00000000..ca75eefd --- /dev/null +++ b/test/unit/helpers.ts @@ -0,0 +1,20 @@ +import { DDO } from '../../src/lib' + +const responsify = async (data) => ({ + ok: true, + json: () => Promise.resolve(data) +}) + +const getSearchResults = ( + results: DDO[], + page = 0, + total_pages = 1, + total_results = 1 +): any => ({ + results, + page, + total_pages, + total_results +}) + +export { responsify, getSearchResults } diff --git a/test/unit/metadatastore/MetadataStore.test.ts b/test/unit/metadatastore/MetadataStore.test.ts index a0e03e96..5909224f 100644 --- a/test/unit/metadatastore/MetadataStore.test.ts +++ b/test/unit/metadatastore/MetadataStore.test.ts @@ -6,25 +6,14 @@ import { DDO } from '../../../src/ddo/DDO' import DID from '../../../src/ocean/DID' import config from '../config' import { LoggerInstance } from '../../../src/utils' +import { responsify, getSearchResults } from '../helpers' use(spies) -const reponsify = async (data) => ({ - ok: true, - json: () => Promise.resolve(data) -}) - describe('MetadataStore', () => { let ocean: Ocean let metadataStore: MetadataStore - const getResults = (results: DDO[], page = 0, total_pages = 1, total_results = 1) => ({ - results, - page, - total_pages, - total_results - }) - beforeEach(async () => { ocean = await Ocean.getInstance(config) metadataStore = ocean.metadatastore // eslint-disable-line prefer-destructuring @@ -48,7 +37,7 @@ describe('MetadataStore', () => { } as SearchQuery it('should query metadata', async () => { - spy.on(metadataStore.fetch, 'post', () => reponsify(getResults([new DDO()]))) + spy.on(metadataStore.fetch, 'post', () => responsify(getSearchResults([new DDO()]))) const result = await metadataStore.queryMetadata(query) assert.typeOf(result.results, 'array') @@ -60,7 +49,9 @@ describe('MetadataStore', () => { it('should query metadata with a new instance', async () => { const metadatastoreNew = new MetadataStore(config.metadataStoreUri, LoggerInstance) - spy.on(metadatastoreNew.fetch, 'post', () => reponsify(getResults([new DDO()]))) + spy.on(metadatastoreNew.fetch, 'post', () => + responsify(getSearchResults([new DDO()])) + ) const result = await metadatastoreNew.queryMetadata(query) assert.typeOf(result.results, 'array') @@ -71,7 +62,7 @@ describe('MetadataStore', () => { }) it('should query metadata and return real ddo', async () => { - spy.on(metadataStore.fetch, 'post', () => reponsify(getResults([new DDO()]))) + spy.on(metadataStore.fetch, 'post', () => responsify(getSearchResults([new DDO()]))) const result = await metadataStore.queryMetadata(query) assert.typeOf(result.results, 'array') @@ -87,7 +78,7 @@ describe('MetadataStore', () => { id: did.getId() }) - spy.on(metadataStore.fetch, 'post', () => reponsify(ddo)) + spy.on(metadataStore.fetch, 'post', () => responsify(ddo)) const result: DDO = await metadataStore.storeDDO(ddo) assert(result) @@ -102,8 +93,8 @@ describe('MetadataStore', () => { id: did.getId() }) - spy.on(metadataStore.fetch, 'post', () => reponsify(ddo)) - spy.on(metadataStore.fetch, 'get', () => reponsify(ddo)) + spy.on(metadataStore.fetch, 'post', () => responsify(ddo)) + spy.on(metadataStore.fetch, 'get', () => responsify(ddo)) const storageResult: DDO = await metadataStore.storeDDO(ddo) assert(storageResult) diff --git a/test/unit/ocean/Assets.test.ts b/test/unit/ocean/Assets.test.ts index c55f24f6..c79e5231 100644 --- a/test/unit/ocean/Assets.test.ts +++ b/test/unit/ocean/Assets.test.ts @@ -1,17 +1,21 @@ import { assert, spy, use } from 'chai' import spies from 'chai-spies' -import { SearchQuery } from '../../../src/metadatastore/MetadataStore' +import { SearchQuery, MetadataStore } from '../../../src/metadatastore/MetadataStore' import { Ocean } from '../../../src/ocean/Ocean' import config from '../config' +import { DDO } from '../../../src/lib' +import { responsify, getSearchResults } from '../helpers' use(spies) -let ocean: Ocean - describe('Assets', () => { - before(async () => { + let ocean: Ocean + let metadataStore: MetadataStore + + beforeEach(async () => { ocean = await Ocean.getInstance(config) + metadataStore = ocean.metadatastore // eslint-disable-line prefer-destructuring }) afterEach(() => { @@ -31,18 +35,24 @@ describe('Assets', () => { } } as SearchQuery + spy.on(metadataStore.fetch, 'post', () => responsify(getSearchResults([new DDO()]))) const assets = await ocean.assets.query(query) - assert(assets) + assert.typeOf(assets.results, 'array') + assert.lengthOf(assets.results, 1) + assert.isDefined(assets.results[0].findServiceById) }) }) describe('#search()', () => { it('should search for assets', async () => { const text = 'office' + spy.on(metadataStore.fetch, 'post', () => responsify(getSearchResults([new DDO()]))) const assets = await ocean.assets.search(text) - assert(assets) + assert.typeOf(assets.results, 'array') + assert.lengthOf(assets.results, 1) + assert.isDefined(assets.results[0].findServiceById) }) }) })