mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-13 14:39:52 +03:00
250edf2b06
closes #5942 - adds helper script for calling the api in themes - adds tests for said helper script
91 lines
2.9 KiB
JavaScript
91 lines
2.9 KiB
JavaScript
/* globals describe, afterEach, it */
|
|
/*jshint expr:true*/
|
|
var url = require('../../shared/ghost-url');
|
|
|
|
describe('Ghost Ajax Helper', function () {
|
|
afterEach(function () {
|
|
url.config = {};
|
|
});
|
|
|
|
it('renders basic url correctly when no arguments are presented & useOrigin is set to false', function () {
|
|
url.config = {
|
|
url: 'http://testblog.com/',
|
|
useOrigin: 'false',
|
|
clientId: '',
|
|
clientSecret: ''
|
|
};
|
|
|
|
url.api().should.equal('http://testblog.com/');
|
|
});
|
|
|
|
it('renders basic url correctly when no arguments are presented & useOrigin is set to true', function () {
|
|
url.config = {
|
|
url: '/url/',
|
|
useOrigin: 'true',
|
|
origin: 'http://originblog.com',
|
|
clientId: '',
|
|
clientSecret: ''
|
|
};
|
|
|
|
url.api().should.equal('http://originblog.com/url/');
|
|
});
|
|
|
|
it('strips arguments of forward and trailing slashes correctly', function () {
|
|
url.config = {
|
|
url: 'http://testblog.com/',
|
|
useOrigin: 'false',
|
|
clientId: '',
|
|
clientSecret: ''
|
|
};
|
|
|
|
url.api('a/', '/b', '/c/').should.equal('http://testblog.com/a/b/c/');
|
|
});
|
|
|
|
it('appends client_id & client_secret to query string automatically', function () {
|
|
url.config = {
|
|
url: 'http://testblog.com/',
|
|
useOrigin: 'false',
|
|
clientId: 'ghost-frontend',
|
|
clientSecret: 'notasecret'
|
|
};
|
|
|
|
url.api().should.equal('http://testblog.com/?client_id=ghost-frontend&client_secret=notasecret');
|
|
});
|
|
|
|
it('generates query parameters correctly', function () {
|
|
url.config = {
|
|
url: 'http://testblog.com/',
|
|
useOrigin: 'false',
|
|
clientId: 'ghost-frontend',
|
|
clientSecret: 'notasecret'
|
|
};
|
|
|
|
var rendered = url.api({a: 'string', b: 5, c: 'en coded'});
|
|
|
|
rendered.should.match(/http:\/\/testblog\.com\/\?/);
|
|
rendered.should.match(/client_id=ghost-frontend/);
|
|
rendered.should.match(/client_secret=notasecret/);
|
|
rendered.should.match(/a/);
|
|
rendered.should.match(/b=5/);
|
|
rendered.should.match(/c=en\%20coded/);
|
|
});
|
|
|
|
it('generates complex query correctly', function () {
|
|
url.config = {
|
|
url: '/blog/ghost/api/v0.1/',
|
|
useOrigin: 'true',
|
|
origin: 'https://testblog.com',
|
|
clientId: 'ghost-frontend',
|
|
clientSecret: 'notasecret'
|
|
};
|
|
|
|
var rendered = url.api('posts/', '/tags/', '/count', {include: 'tags,tests', page: 2});
|
|
|
|
rendered.should.match(/https:\/\/testblog\.com\/blog\/ghost\/api\/v0\.1\/posts\/tags\/count\/\?/);
|
|
rendered.should.match(/client_id=ghost-frontend/);
|
|
rendered.should.match(/client_secret=notasecret/);
|
|
rendered.should.match(/include=tags%2Ctests/);
|
|
rendered.should.match(/page=2/);
|
|
});
|
|
});
|