graphbrainz/test/extensions/cover-art-archive/client.js

58 lines
2 KiB
JavaScript

import test from 'ava'
import client from '../../helpers/client/cover-art-archive'
test('can retrieve a front image URL', t => {
return client
.imageURL('release', '76df3287-6cda-33eb-8e9a-044b5e15ffdd', 'front')
.then(url => {
t.is(
url,
'http://archive.org/download/mbid-76df3287-6cda-33eb-8e9a-044b5e15ffdd/mbid-76df3287-6cda-33eb-8e9a-044b5e15ffdd-829521842.jpg'
)
})
})
test('can retrieve a back image URL', t => {
return client
.imageURL('release', '76df3287-6cda-33eb-8e9a-044b5e15ffdd', 'back')
.then(url => {
t.is(
url,
'http://archive.org/download/mbid-76df3287-6cda-33eb-8e9a-044b5e15ffdd/mbid-76df3287-6cda-33eb-8e9a-044b5e15ffdd-5769317885.jpg'
)
})
})
test('can retrieve a list of release images', t => {
return client
.images('release', '76df3287-6cda-33eb-8e9a-044b5e15ffdd')
.then(data => {
t.is(
data.release,
'http://musicbrainz.org/release/76df3287-6cda-33eb-8e9a-044b5e15ffdd'
)
t.true(data.images.length >= 3)
data.images.forEach(image => {
t.true(image.approved)
t.truthy(image.image)
t.truthy(image.id)
t.truthy(image.thumbnails.small)
t.truthy(image.thumbnails.large)
})
t.true(data.images.some(image => image.front))
t.true(data.images.some(image => image.back))
t.true(data.images.some(image => image.types.indexOf('Front') !== -1))
t.true(data.images.some(image => image.types.indexOf('Back') !== -1))
t.true(data.images.some(image => image.types.indexOf('Medium') !== -1))
})
})
test('throws an error if given an invalid MBID', t => {
return t.throws(client.images('release', 'xyz'), client.errorClass)
})
test('uses the default error impementation if there is no HTML error', t => {
t.is(client.parseErrorMessage({ statusCode: 501 }, 'yikes'), 'yikes')
t.is(client.parseErrorMessage({ statusCode: 500 }, ''), '500')
t.is(client.parseErrorMessage({ statusCode: 404 }, null), '404')
})