From 3608472e758c5d0ba1c871c15776a8bc3cf3480b Mon Sep 17 00:00:00 2001 From: Bogdan Fazakas Date: Mon, 8 Feb 2021 16:46:22 +0200 Subject: [PATCH 1/2] remove asset sample link if not send on metadata update --- src/ocean/Assets.ts | 5 ++++- test/integration/Marketplaceflow.test.ts | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/ocean/Assets.ts b/src/ocean/Assets.ts index fffe1bcc..18090f31 100644 --- a/src/ocean/Assets.ts +++ b/src/ocean/Assets.ts @@ -260,8 +260,11 @@ export class Assets extends Instantiable { if (newMetadata.description) ddo.service[i].attributes.additionalInformation.description = newMetadata.description - if (newMetadata.links) + if (newMetadata.links) { ddo.service[i].attributes.additionalInformation.links = newMetadata.links + } else { + ddo.service[i].attributes.additionalInformation.links = [] + } } return ddo } diff --git a/test/integration/Marketplaceflow.test.ts b/test/integration/Marketplaceflow.test.ts index 1e408beb..8c71ed5a 100644 --- a/test/integration/Marketplaceflow.test.ts +++ b/test/integration/Marketplaceflow.test.ts @@ -226,6 +226,25 @@ describe('Marketplace flow', () => { assert.deepEqual(metaData.attributes.additionalInformation.links, newMetaData.links) }) + it('Alice updates metadata and removes sample links', async () => { + const newMetaData: EditableMetadata = { + description: 'new description no links', + title: 'new title no links' + } + const newDdo = await ocean.assets.editMetadata(ddo, newMetaData) + assert(newDdo !== null) + const txid = await ocean.onChainMetadata.update(newDdo.id, newDdo, alice.getId()) + assert(txid !== null) + await sleep(60000) + const metaData = await ocean.assets.getServiceByType(ddo.id, 'metadata') + assert.equal(metaData.attributes.main.name, newMetaData.title) + assert.equal( + metaData.attributes.additionalInformation.description, + newMetaData.description + ) + assert.deepEqual(metaData.attributes.additionalInformation.links, []) + }) + it('Alice updates timeout for the access service', async () => { const service = ddo.findServiceByType('access') assert(service !== null) From d6a84e7935dc0f3e219a3ca88a1b9231fd66bd72 Mon Sep 17 00:00:00 2001 From: Bogdan Fazakas Date: Wed, 10 Feb 2021 11:06:19 +0200 Subject: [PATCH 2/2] update integration test --- test/integration/Marketplaceflow.test.ts | 33 ++++++++++-------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/test/integration/Marketplaceflow.test.ts b/test/integration/Marketplaceflow.test.ts index 8c71ed5a..a66abfe9 100644 --- a/test/integration/Marketplaceflow.test.ts +++ b/test/integration/Marketplaceflow.test.ts @@ -206,6 +206,20 @@ describe('Marketplace flow', () => { assert(assets.results.length > 0) }) + it('Alice updates metadata and removes sample links', async () => { + const newMetaData: EditableMetadata = { + description: 'new description no links', + title: 'new title no links' + } + const newDdo = await ocean.assets.editMetadata(ddo, newMetaData) + assert(newDdo !== null) + const txid = await ocean.onChainMetadata.update(newDdo.id, newDdo, alice.getId()) + assert(txid !== null) + await sleep(60000) + const metaData = await ocean.assets.getServiceByType(ddo.id, 'metadata') + assert.deepEqual(metaData.attributes.additionalInformation.links, []) + }) + it('Alice updates metadata', async () => { const newMetaData: EditableMetadata = { description: 'new description', @@ -226,25 +240,6 @@ describe('Marketplace flow', () => { assert.deepEqual(metaData.attributes.additionalInformation.links, newMetaData.links) }) - it('Alice updates metadata and removes sample links', async () => { - const newMetaData: EditableMetadata = { - description: 'new description no links', - title: 'new title no links' - } - const newDdo = await ocean.assets.editMetadata(ddo, newMetaData) - assert(newDdo !== null) - const txid = await ocean.onChainMetadata.update(newDdo.id, newDdo, alice.getId()) - assert(txid !== null) - await sleep(60000) - const metaData = await ocean.assets.getServiceByType(ddo.id, 'metadata') - assert.equal(metaData.attributes.main.name, newMetaData.title) - assert.equal( - metaData.attributes.additionalInformation.description, - newMetaData.description - ) - assert.deepEqual(metaData.attributes.additionalInformation.links, []) - }) - it('Alice updates timeout for the access service', async () => { const service = ddo.findServiceByType('access') assert(service !== null)