mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-03 00:15:11 +03:00
✨ Allowed pages to accept HTML as a source (#11422)
refs https://github.com/TryGhost/Ghost/issues/10471 - Allow page resource endpoints to accept HTML source. This behavior is the same as the post's resource introduced with e9ecf70ff7372f395b8917340805148bc764e2ef - The functionality was most likely missed when post split into posts & pages was happening. - Added symmetric changes to API v2.
This commit is contained in:
parent
97ea664d4d
commit
6247b52367
@ -85,12 +85,16 @@ module.exports = {
|
||||
statusCode: 201,
|
||||
headers: {},
|
||||
options: [
|
||||
'include'
|
||||
'include',
|
||||
'source'
|
||||
],
|
||||
validation: {
|
||||
options: {
|
||||
include: {
|
||||
values: ALLOWED_INCLUDES
|
||||
},
|
||||
source: {
|
||||
values: ['html']
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -117,6 +121,7 @@ module.exports = {
|
||||
options: [
|
||||
'include',
|
||||
'id',
|
||||
'source',
|
||||
// NOTE: only for internal context
|
||||
'forUpdate',
|
||||
'transacting'
|
||||
@ -128,6 +133,9 @@ module.exports = {
|
||||
},
|
||||
id: {
|
||||
required: true
|
||||
},
|
||||
source: {
|
||||
values: ['html']
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -85,12 +85,16 @@ module.exports = {
|
||||
statusCode: 201,
|
||||
headers: {},
|
||||
options: [
|
||||
'include'
|
||||
'include',
|
||||
'source'
|
||||
],
|
||||
validation: {
|
||||
options: {
|
||||
include: {
|
||||
values: ALLOWED_INCLUDES
|
||||
},
|
||||
source: {
|
||||
values: ['html']
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -117,6 +121,7 @@ module.exports = {
|
||||
options: [
|
||||
'include',
|
||||
'id',
|
||||
'source',
|
||||
// NOTE: only for internal context
|
||||
'forUpdate',
|
||||
'transacting'
|
||||
@ -128,6 +133,9 @@ module.exports = {
|
||||
},
|
||||
id: {
|
||||
required: true
|
||||
},
|
||||
source: {
|
||||
values: ['html']
|
||||
}
|
||||
}
|
||||
},
|
||||
|
47
core/test/regression/api/canary/admin/pages_spec.js
Normal file
47
core/test/regression/api/canary/admin/pages_spec.js
Normal file
@ -0,0 +1,47 @@
|
||||
const should = require('should');
|
||||
const supertest = require('supertest');
|
||||
const testUtils = require('../../../../utils');
|
||||
const config = require('../../../../../server/config');
|
||||
const localUtils = require('./utils');
|
||||
const ghost = testUtils.startGhost;
|
||||
let request;
|
||||
|
||||
describe('Pages API', function () {
|
||||
before(function () {
|
||||
return ghost()
|
||||
.then(function (_ghostServer) {
|
||||
request = supertest.agent(config.get('url'));
|
||||
})
|
||||
.then(function () {
|
||||
return localUtils.doAuth(request, 'posts');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Edit', function () {
|
||||
it('accepts html source', function () {
|
||||
return request
|
||||
.get(localUtils.API.getApiQuery(`pages/${testUtils.DataGenerator.Content.posts[5].id}/`))
|
||||
.set('Origin', config.get('url'))
|
||||
.expect(200)
|
||||
.then((res) => {
|
||||
res.body.pages[0].slug.should.equal('static-page-test');
|
||||
|
||||
return request
|
||||
.put(localUtils.API.getApiQuery('pages/' + testUtils.DataGenerator.Content.posts[5].id + '/?source=html'))
|
||||
.set('Origin', config.get('url'))
|
||||
.send({
|
||||
pages: [{
|
||||
html: '<p>HTML Ipsum presents</p>',
|
||||
updated_at: res.body.pages[0].updated_at
|
||||
}]
|
||||
})
|
||||
.expect('Content-Type', /json/)
|
||||
.expect('Cache-Control', testUtils.cacheRules.private)
|
||||
.expect(200);
|
||||
})
|
||||
.then((res) => {
|
||||
res.body.pages[0].mobiledoc.should.equal('{"version":"0.3.1","atoms":[],"cards":[],"markups":[],"sections":[[1,"p",[[0,[],0,"HTML Ipsum presents"]]]]}');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
47
core/test/regression/api/v2/admin/pages_spec.js
Normal file
47
core/test/regression/api/v2/admin/pages_spec.js
Normal file
@ -0,0 +1,47 @@
|
||||
const should = require('should');
|
||||
const supertest = require('supertest');
|
||||
const testUtils = require('../../../../utils');
|
||||
const config = require('../../../../../server/config');
|
||||
const localUtils = require('./utils');
|
||||
const ghost = testUtils.startGhost;
|
||||
let request;
|
||||
|
||||
describe('Pages API', function () {
|
||||
before(function () {
|
||||
return ghost()
|
||||
.then(function (_ghostServer) {
|
||||
request = supertest.agent(config.get('url'));
|
||||
})
|
||||
.then(function () {
|
||||
return localUtils.doAuth(request, 'posts');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Edit', function () {
|
||||
it('accepts html source', function () {
|
||||
return request
|
||||
.get(localUtils.API.getApiQuery(`pages/${testUtils.DataGenerator.Content.posts[5].id}/`))
|
||||
.set('Origin', config.get('url'))
|
||||
.expect(200)
|
||||
.then((res) => {
|
||||
res.body.pages[0].slug.should.equal('static-page-test');
|
||||
|
||||
return request
|
||||
.put(localUtils.API.getApiQuery('pages/' + testUtils.DataGenerator.Content.posts[5].id + '/?source=html'))
|
||||
.set('Origin', config.get('url'))
|
||||
.send({
|
||||
pages: [{
|
||||
html: '<p>HTML Ipsum presents</p>',
|
||||
updated_at: res.body.pages[0].updated_at
|
||||
}]
|
||||
})
|
||||
.expect('Content-Type', /json/)
|
||||
.expect('Cache-Control', testUtils.cacheRules.private)
|
||||
.expect(200);
|
||||
})
|
||||
.then((res) => {
|
||||
res.body.pages[0].mobiledoc.should.equal('{"version":"0.3.1","atoms":[],"cards":[],"markups":[],"sections":[[1,"p",[[0,[],0,"HTML Ipsum presents"]]]]}');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user