mirror of
https://github.com/BradNut/graphbrainz
synced 2025-09-08 17:40:32 +00:00
* wip: Modernize dependencies, syntax, imports * Use final release of ava-nock v2 * Update Travis config * Remove Node 13 from test matrix * Replace errorClass with parseErrorMessage in subclasses * define exports, apply updated lint rules * Remove markdown eslint plugin * Update README * v9.0.0-beta.1 * Add gql tag to exports * v9.0.0-beta.2 * Bump ava-nock, add test * Update dataloader loadMany usage * Add modules note to README * Add retry option to got calls
128 lines
2 KiB
JavaScript
128 lines
2 KiB
JavaScript
import test from 'ava';
|
|
import GraphQL from 'graphql';
|
|
import extension from '../../../src/extensions/mediawiki/index.js';
|
|
import { baseSchema, applyExtension } from '../../../src/schema.js';
|
|
import baseContext from '../../helpers/context.js';
|
|
|
|
const { graphql } = GraphQL;
|
|
|
|
const schema = applyExtension(extension, baseSchema);
|
|
const context = extension.extendContext(baseContext, {
|
|
mediaWiki: {
|
|
limit: Infinity,
|
|
period: 0,
|
|
},
|
|
});
|
|
|
|
function testData(t, query, handler) {
|
|
return graphql(schema, query, null, context).then((result) => {
|
|
if (result.errors !== undefined) {
|
|
result.errors.forEach((error) => t.log(error));
|
|
}
|
|
t.is(result.errors, undefined);
|
|
return handler(t, result.data);
|
|
});
|
|
}
|
|
|
|
const fragment = `
|
|
url
|
|
descriptionURL
|
|
user
|
|
size
|
|
width
|
|
height
|
|
canonicalTitle
|
|
objectName
|
|
descriptionHTML
|
|
originalDateTimeHTML
|
|
categories
|
|
artistHTML
|
|
creditHTML
|
|
licenseShortName
|
|
licenseURL
|
|
metadata {
|
|
name
|
|
value
|
|
source
|
|
}
|
|
`;
|
|
|
|
test(
|
|
'artists have a mediaWikiImages field',
|
|
testData,
|
|
`
|
|
{
|
|
lookup {
|
|
artist(mbid: "5b11f4ce-a62d-471e-81fc-a69a8278c7da") {
|
|
mediaWikiImages {
|
|
${fragment}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`,
|
|
(t, data) => {
|
|
t.snapshot(data);
|
|
}
|
|
);
|
|
|
|
test(
|
|
'instruments have a mediaWikiImages field',
|
|
testData,
|
|
`
|
|
{
|
|
search {
|
|
instruments(query: "guitar", first: 20) {
|
|
nodes {
|
|
mediaWikiImages {
|
|
${fragment}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`,
|
|
(t, data) => {
|
|
t.snapshot(data);
|
|
}
|
|
);
|
|
|
|
test(
|
|
'labels have a mediaWikiImages field',
|
|
testData,
|
|
`
|
|
{
|
|
search {
|
|
labels(query: "Sony", first: 50) {
|
|
nodes {
|
|
mediaWikiImages {
|
|
${fragment}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`,
|
|
(t, data) => {
|
|
t.snapshot(data);
|
|
}
|
|
);
|
|
|
|
test(
|
|
'places have a mediaWikiImages field',
|
|
testData,
|
|
`
|
|
{
|
|
lookup {
|
|
place(mbid: "b5297256-8482-4cba-968a-25db61563faf") {
|
|
mediaWikiImages {
|
|
${fragment}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`,
|
|
(t, data) => {
|
|
t.snapshot(data);
|
|
}
|
|
);
|