diff --git a/web/client/api/catalog/CSW.js b/web/client/api/catalog/CSW.js index 7dc7f22929d..aecd846e6f3 100644 --- a/web/client/api/catalog/CSW.js +++ b/web/client/api/catalog/CSW.js @@ -90,7 +90,7 @@ function getThumbnailFromDc(dc, options) { const URI = dc?.URI && castArray(dc.URI); let thumbURL; if (URI) { - const thumb = head(URI.filter(uri => uri.name === 'thumbnail')) || head(URI.filter(uri => !uri.name && uri.protocol?.indexOf('image/') > -1)); + const thumb = head(URI.filter(uri => uri.name === 'thumbnail')) || head(URI.filter(uri => uri.protocol?.indexOf('image/') > -1)); thumbURL = thumb ? thumb.value : null; } if (!thumbURL && dc && dc.references) { diff --git a/web/client/api/catalog/__tests__/CSW-test.js b/web/client/api/catalog/__tests__/CSW-test.js index a44b51e6370..cbb5c391e4d 100644 --- a/web/client/api/catalog/__tests__/CSW-test.js +++ b/web/client/api/catalog/__tests__/CSW-test.js @@ -694,6 +694,22 @@ describe('Test correctness of the CSW catalog APIs', () => { expect(records[0].thumbnail).toBe("/thumb"); }); + it('csw with DC thumbnail from dc:URI with non-thumbnail name and image protocol (#10504)', () => { + const cswRecords = [{ + dc: { + URI: [{ + TYPE_NAME: 'DC_1_1.URI', + protocol: 'image/png', + name: 'My description', + value: 'https://site.com/img/fish.png' + }] + } + }]; + const records = getCatalogRecords({ records: cswRecords }, {}); + expect(records.length).toBe(1); + expect(records[0].thumbnail).toBe('https://site.com/img/fish.png'); + }); + it('csw with DC references, no url, with thumbnail, with uri', () => { const cswRecords = [{ dc: {