Ghost/test/api-acceptance/content/utils.js

99 lines
2.1 KiB
JavaScript
Raw Normal View History

const url = require('url');
const _ = require('lodash');
const testUtils = require('../../utils');
const API_URL = '/ghost/api/canary/content/';
const expectedProperties = {
// API top level
posts: ['posts', 'meta'],
tags: ['tags', 'meta'],
authors: ['authors', 'meta'],
pagination: ['page', 'limit', 'pages', 'total', 'next', 'prev'],
post: [
'id',
'uuid',
'title',
'slug',
'html',
'comment_id',
'feature_image',
'featured',
'visibility',
'email_recipient_filter',
'created_at',
'updated_at',
'published_at',
'custom_excerpt',
'codeinjection_head',
'codeinjection_foot',
'custom_template',
'canonical_url',
'url',
'excerpt',
'access',
'og_image',
'og_title',
'og_description',
'twitter_image',
'twitter_title',
'twitter_description',
'meta_title',
'meta_description',
'email_subject',
'frontmatter',
'reading_time'
],
author: [
'id',
'name',
'slug',
'profile_image',
'cover_image',
'bio',
'website',
'location',
'facebook',
'twitter',
'meta_title',
'meta_description'
],
tag: [
'id',
'name',
'slug',
'description',
'feature_image',
'visibility',
'og_image',
'og_title',
'og_description',
'twitter_image',
'twitter_title',
'twitter_description',
'meta_title',
'meta_description',
'codeinjection_head',
'codeinjection_foot',
'canonical_url',
'accent_color'
]
};
module.exports = {
API: {
getApiQuery(route) {
return url.resolve(API_URL, route);
},
checkResponse(...args) {
this.expectedProperties = expectedProperties;
return testUtils.API.checkResponse.call(this, ...args);
}
},
getValidKey() {
return testUtils.DataGenerator.Content.api_keys[1].secret;
}
};