2018-08-17 13:58:44 +03:00
|
|
|
|
const {app} = require('../../bin/www');
|
2018-09-07 19:24:09 +03:00
|
|
|
|
const model = require('../../src/models/page');
|
2019-01-31 12:28:25 +03:00
|
|
|
|
const Page = require('../../src/models/page');
|
2019-01-19 17:09:11 +03:00
|
|
|
|
const PageOrder = require('../../src/models/pageOrder');
|
2019-01-25 02:23:00 +03:00
|
|
|
|
const translateString = require('../../src/utils/translation');
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
2018-10-07 19:15:10 +03:00
|
|
|
|
const fs = require('fs');
|
|
|
|
|
const path = require('path');
|
|
|
|
|
const config = require('../../config');
|
2018-08-17 13:58:44 +03:00
|
|
|
|
const chai = require('chai');
|
|
|
|
|
const chaiHTTP = require('chai-http');
|
|
|
|
|
const {expect} = chai;
|
|
|
|
|
|
|
|
|
|
chai.use(chaiHTTP);
|
|
|
|
|
|
|
|
|
|
describe('Pages REST: ', () => {
|
|
|
|
|
let agent;
|
2019-01-25 02:23:00 +03:00
|
|
|
|
const transformToUri = (string) => {
|
|
|
|
|
return translateString(string
|
|
|
|
|
.replace(/ /g, ' ')
|
|
|
|
|
.replace(/[^a-zA-Z0-9А-Яа-яЁё ]/g, ' ')
|
|
|
|
|
.replace(/ +/g, ' ')
|
|
|
|
|
.trim()
|
|
|
|
|
.toLowerCase()
|
|
|
|
|
.split(' ')
|
|
|
|
|
.join('-'));
|
|
|
|
|
};
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
before(async () => {
|
|
|
|
|
agent = chai.request.agent(app);
|
|
|
|
|
});
|
|
|
|
|
|
2018-10-07 19:15:10 +03:00
|
|
|
|
after(async () => {
|
2019-01-25 06:19:37 +03:00
|
|
|
|
const pathToPagesDB = path.resolve(__dirname, '../../', config.database, './pages.db');
|
|
|
|
|
const pathToPagesOrderDB = path.resolve(__dirname, '../../', config.database, './pagesOrder.db');
|
|
|
|
|
const pathToAliasesDB = path.resolve(__dirname, '../../', config.database, './aliases.db');
|
2018-10-07 19:15:10 +03:00
|
|
|
|
|
2019-01-25 06:19:37 +03:00
|
|
|
|
if (fs.existsSync(pathToPagesDB)) {
|
|
|
|
|
fs.unlinkSync(pathToPagesDB);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (fs.existsSync(pathToPagesOrderDB)) {
|
|
|
|
|
fs.unlinkSync(pathToPagesOrderDB);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (fs.existsSync(pathToAliasesDB)) {
|
|
|
|
|
fs.unlinkSync(pathToAliasesDB);
|
2018-10-07 19:15:10 +03:00
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
2018-08-17 13:58:44 +03:00
|
|
|
|
it('Creating page', async () => {
|
2018-10-04 22:08:21 +03:00
|
|
|
|
const body = {
|
|
|
|
|
blocks: [
|
|
|
|
|
{
|
|
|
|
|
type: 'header',
|
|
|
|
|
data: {
|
|
|
|
|
text: 'Page header'
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-01-25 02:23:00 +03:00
|
|
|
|
]
|
2018-10-04 22:08:21 +03:00
|
|
|
|
};
|
2019-01-25 02:23:00 +03:00
|
|
|
|
const parent = 0;
|
2018-08-17 13:58:44 +03:00
|
|
|
|
const res = await agent
|
2018-10-15 22:06:01 +03:00
|
|
|
|
.put('/api/page')
|
2019-01-19 17:09:11 +03:00
|
|
|
|
.send({body, parent});
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(200);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success, result} = res.body;
|
|
|
|
|
|
|
|
|
|
expect(success).to.be.true;
|
|
|
|
|
expect(result._id).to.be.a('string');
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(result.title).to.equal(body.blocks[0].data.text);
|
2019-01-25 02:23:00 +03:00
|
|
|
|
expect(result.uri).to.equal(transformToUri(body.blocks[0].data.text));
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(result.body).to.deep.equal(body);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
const createdPage = await model.get(result._id);
|
|
|
|
|
|
|
|
|
|
expect(createdPage).not.be.null;
|
|
|
|
|
expect(createdPage._id).to.equal(result._id);
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(createdPage.title).to.equal(body.blocks[0].data.text);
|
2019-01-25 02:23:00 +03:00
|
|
|
|
expect(createdPage.uri).to.equal(transformToUri(body.blocks[0].data.text));
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(createdPage.body).to.deep.equal(body);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
2019-01-19 17:09:11 +03:00
|
|
|
|
const pageOrder = await PageOrder.get('' + (createdPage.data.parent || 0));
|
|
|
|
|
expect(pageOrder.order).to.be.an('array');
|
|
|
|
|
|
|
|
|
|
await createdPage.destroy();
|
2019-01-25 02:23:00 +03:00
|
|
|
|
await pageOrder.destroy();
|
2018-08-17 13:58:44 +03:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('Page data validation on create', async () => {
|
|
|
|
|
const res = await agent
|
2018-10-15 22:06:01 +03:00
|
|
|
|
.put('/api/page')
|
2018-08-17 13:58:44 +03:00
|
|
|
|
.send({someField: 'Some text'});
|
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(400);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success, error} = res.body;
|
|
|
|
|
|
|
|
|
|
expect(success).to.be.false;
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(error).to.equal('Error: Some of required fields is missed');
|
2018-08-17 13:58:44 +03:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('Finding page', async () => {
|
2018-10-04 22:08:21 +03:00
|
|
|
|
const body = {
|
|
|
|
|
blocks: [
|
|
|
|
|
{
|
|
|
|
|
type: 'header',
|
|
|
|
|
data: {
|
|
|
|
|
text: 'Page header'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
};
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
const put = await agent
|
2018-10-15 22:06:01 +03:00
|
|
|
|
.put('/api/page')
|
2018-10-04 22:08:21 +03:00
|
|
|
|
.send({body});
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(put).to.have.status(200);
|
|
|
|
|
expect(put).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {result: {_id}} = put.body;
|
|
|
|
|
|
2018-10-15 22:06:01 +03:00
|
|
|
|
const get = await agent.get(`/api/page/${_id}`);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(get).to.have.status(200);
|
|
|
|
|
expect(get).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success} = get.body;
|
|
|
|
|
|
|
|
|
|
expect(success).to.be.true;
|
|
|
|
|
|
|
|
|
|
const foundPage = await model.get(_id);
|
2019-01-19 17:09:11 +03:00
|
|
|
|
const pageOrder = await PageOrder.get('' + foundPage._parent);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(foundPage._id).to.equal(_id);
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(foundPage.title).to.equal(body.blocks[0].data.text);
|
2019-01-25 02:23:00 +03:00
|
|
|
|
expect(foundPage.uri).to.equal(transformToUri(body.blocks[0].data.text));
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(foundPage.body).to.deep.equal(body);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
2019-01-19 17:09:11 +03:00
|
|
|
|
await pageOrder.destroy();
|
|
|
|
|
await foundPage.destroy();
|
2018-08-17 13:58:44 +03:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('Finding page with not existing id', async () => {
|
2018-10-15 22:06:01 +03:00
|
|
|
|
const res = await agent.get('/api/page/not-existing-id');
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(400);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success, error} = res.body;
|
|
|
|
|
|
|
|
|
|
expect(success).to.be.false;
|
|
|
|
|
expect(error).to.equal('Page with given id does not exist');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('Updating page', async () => {
|
2018-10-04 22:08:21 +03:00
|
|
|
|
const body = {
|
|
|
|
|
blocks: [
|
|
|
|
|
{
|
|
|
|
|
type: 'header',
|
|
|
|
|
data: {
|
|
|
|
|
text: 'Page header'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
};
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
let res = await agent
|
2018-10-15 22:06:01 +03:00
|
|
|
|
.put('/api/page')
|
2018-10-04 22:08:21 +03:00
|
|
|
|
.send({body});
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(200);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {result: {_id}} = res.body;
|
|
|
|
|
|
2018-10-04 22:08:21 +03:00
|
|
|
|
const updatedBody = {
|
|
|
|
|
blocks: [
|
|
|
|
|
{
|
|
|
|
|
type: 'header',
|
|
|
|
|
data: {
|
|
|
|
|
text: 'Updated page header'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
};
|
2019-01-25 02:23:00 +03:00
|
|
|
|
const updatedUri = 'updated-uri';
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
res = await agent
|
2018-10-15 22:06:01 +03:00
|
|
|
|
.post(`/api/page/${_id}`)
|
2019-01-25 02:23:00 +03:00
|
|
|
|
.send({body: updatedBody, uri: updatedUri});
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(200);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success, result} = res.body;
|
|
|
|
|
|
|
|
|
|
expect(success).to.be.true;
|
|
|
|
|
expect(result._id).to.equal(_id);
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(result.title).not.equal(body.blocks[0].data.text);
|
|
|
|
|
expect(result.title).to.equal(updatedBody.blocks[0].data.text);
|
2019-01-25 02:23:00 +03:00
|
|
|
|
expect(result.uri).not.equal(transformToUri(body.blocks[0].data.text));
|
|
|
|
|
expect(result.uri).to.equal(updatedUri);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
expect(result.body).not.equal(body);
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(result.body).to.deep.equal(updatedBody);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
const updatedPage = await model.get(_id);
|
2019-01-19 17:09:11 +03:00
|
|
|
|
const pageOrder = await PageOrder.get('' + updatedPage._parent);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(updatedPage._id).to.equal(_id);
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(updatedPage.title).not.equal(body.blocks[0].data.text);
|
|
|
|
|
expect(updatedPage.title).to.equal(updatedBody.blocks[0].data.text);
|
2019-01-25 02:23:00 +03:00
|
|
|
|
expect(updatedPage.uri).not.equal(transformToUri(body.blocks[0].data.text));
|
|
|
|
|
expect(updatedPage.uri).to.equal(updatedUri);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
expect(updatedPage.body).not.equal(body);
|
2018-10-04 22:08:21 +03:00
|
|
|
|
expect(updatedPage.body).to.deep.equal(updatedBody);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
2019-01-19 17:09:11 +03:00
|
|
|
|
await pageOrder.destroy();
|
|
|
|
|
await updatedPage.destroy();
|
2018-08-17 13:58:44 +03:00
|
|
|
|
});
|
|
|
|
|
|
2019-01-25 02:23:00 +03:00
|
|
|
|
it('Handle multiple page creation with the same uri', async () => {
|
|
|
|
|
const body = {
|
|
|
|
|
blocks: [
|
|
|
|
|
{
|
|
|
|
|
type: 'header',
|
|
|
|
|
data: {
|
|
|
|
|
text: 'Page header'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
let res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body});
|
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(200);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {result: {_id}} = res.body;
|
|
|
|
|
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body: body});
|
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(200);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success: secondPageSuccess, result: secondPageResult} = res.body;
|
|
|
|
|
|
|
|
|
|
expect(secondPageSuccess).to.be.true;
|
|
|
|
|
expect(secondPageResult.title).to.equal(body.blocks[0].data.text);
|
|
|
|
|
expect(secondPageResult.uri).to.equal(transformToUri(body.blocks[0].data.text) + '-1');
|
|
|
|
|
expect(secondPageResult.body).to.deep.equal(body);
|
|
|
|
|
|
|
|
|
|
const newFirstPageUri = 'New-uri';
|
|
|
|
|
|
|
|
|
|
res = await agent
|
|
|
|
|
.post(`/api/page/${_id}`)
|
|
|
|
|
.send({body: body, uri: newFirstPageUri});
|
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(200);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body: body});
|
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(200);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success: thirdPageSuccess, result: thirdPageResult} = res.body;
|
|
|
|
|
|
|
|
|
|
expect(thirdPageSuccess).to.be.true;
|
|
|
|
|
expect(thirdPageResult.title).to.equal(body.blocks[0].data.text);
|
|
|
|
|
expect(thirdPageResult.uri).to.equal(transformToUri(body.blocks[0].data.text));
|
|
|
|
|
expect(thirdPageResult.body).to.deep.equal(body);
|
|
|
|
|
});
|
|
|
|
|
|
2018-08-17 13:58:44 +03:00
|
|
|
|
it('Updating page with not existing id', async () => {
|
|
|
|
|
const res = await agent
|
2018-10-15 22:06:01 +03:00
|
|
|
|
.post('/api/page/not-existing-id')
|
2018-10-04 22:08:21 +03:00
|
|
|
|
.send({body: {
|
|
|
|
|
blocks: [
|
|
|
|
|
{
|
|
|
|
|
type: 'header',
|
|
|
|
|
data: {
|
|
|
|
|
text: 'Page header'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}});
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(400);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success, error} = res.body;
|
|
|
|
|
|
|
|
|
|
expect(success).to.be.false;
|
|
|
|
|
expect(error).to.equal('Page with given id does not exist');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('Removing page', async () => {
|
2018-10-04 22:08:21 +03:00
|
|
|
|
const body = {
|
|
|
|
|
blocks: [
|
|
|
|
|
{
|
|
|
|
|
type: 'header',
|
|
|
|
|
data: {
|
2019-01-25 02:23:00 +03:00
|
|
|
|
text: 'Page header to be deleted'
|
2018-10-04 22:08:21 +03:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
};
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
let res = await agent
|
2018-10-15 22:06:01 +03:00
|
|
|
|
.put('/api/page')
|
2018-10-04 22:08:21 +03:00
|
|
|
|
.send({body});
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(200);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {result: {_id}} = res.body;
|
|
|
|
|
|
|
|
|
|
res = await agent
|
2018-10-15 22:06:01 +03:00
|
|
|
|
.delete(`/api/page/${_id}`);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(200);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success, result} = res.body;
|
|
|
|
|
|
|
|
|
|
expect(success).to.be.true;
|
|
|
|
|
|
2019-01-25 06:19:37 +03:00
|
|
|
|
if (result) {
|
|
|
|
|
expect(result._id).to.be.undefined;
|
|
|
|
|
expect(result.title).to.equal(body.blocks[0].data.text);
|
|
|
|
|
expect(result.uri).to.equal(transformToUri(body.blocks[0].data.text));
|
|
|
|
|
expect(result.body).to.deep.equal(body);
|
|
|
|
|
const deletedPage = await model.get(_id);
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
2019-01-25 06:19:37 +03:00
|
|
|
|
expect(deletedPage._id).to.be.undefined;
|
|
|
|
|
} else {
|
|
|
|
|
expect(result).to.be.null;
|
|
|
|
|
}
|
2018-08-17 13:58:44 +03:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('Removing page with not existing id', async () => {
|
|
|
|
|
const res = await agent
|
2018-10-15 22:06:01 +03:00
|
|
|
|
.delete('/api/page/not-existing-id');
|
2018-08-17 13:58:44 +03:00
|
|
|
|
|
|
|
|
|
expect(res).to.have.status(400);
|
|
|
|
|
expect(res).to.be.json;
|
|
|
|
|
|
|
|
|
|
const {success, error} = res.body;
|
|
|
|
|
|
|
|
|
|
expect(success).to.be.false;
|
|
|
|
|
expect(error).to.equal('Page with given id does not exist');
|
|
|
|
|
});
|
2019-01-31 12:28:25 +03:00
|
|
|
|
|
|
|
|
|
async function createPageTree() {
|
|
|
|
|
/**
|
|
|
|
|
* Creating page tree
|
|
|
|
|
*
|
|
|
|
|
* 0
|
|
|
|
|
* / \
|
|
|
|
|
* 1 2
|
|
|
|
|
* / \ \
|
|
|
|
|
* 3 5 6
|
|
|
|
|
* / / \
|
|
|
|
|
* 4 7 8
|
|
|
|
|
*/
|
|
|
|
|
const body = {
|
|
|
|
|
blocks: [
|
|
|
|
|
{
|
|
|
|
|
type: 'header',
|
|
|
|
|
data: {
|
|
|
|
|
text: 'Page header'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
let parent, res, result;
|
|
|
|
|
|
|
|
|
|
/** Page 1 */
|
|
|
|
|
parent = 0;
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body, parent});
|
|
|
|
|
|
|
|
|
|
result = res.body.result;
|
|
|
|
|
const page1 = result;
|
|
|
|
|
|
|
|
|
|
/** Page 2 */
|
|
|
|
|
parent = 0;
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body, parent});
|
|
|
|
|
|
|
|
|
|
result = res.body.result;
|
|
|
|
|
const page2 = result;
|
|
|
|
|
|
|
|
|
|
/** Page 3 */
|
|
|
|
|
parent = page1._id;
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body, parent});
|
|
|
|
|
|
|
|
|
|
result = res.body.result;
|
|
|
|
|
const page3 = result;
|
|
|
|
|
|
|
|
|
|
/** Page 4 */
|
|
|
|
|
parent = page3._id;
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body, parent});
|
|
|
|
|
|
|
|
|
|
result = res.body.result;
|
|
|
|
|
const page4 = result;
|
|
|
|
|
|
|
|
|
|
/** Page 5 */
|
|
|
|
|
parent = page1._id;
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body, parent});
|
|
|
|
|
|
|
|
|
|
result = res.body.result;
|
|
|
|
|
const page5 = result;
|
|
|
|
|
|
|
|
|
|
/** Page 6 */
|
|
|
|
|
parent = page2._id;
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body, parent});
|
|
|
|
|
|
|
|
|
|
result = res.body.result;
|
|
|
|
|
const page6 = result;
|
|
|
|
|
|
|
|
|
|
/** Page 7 */
|
|
|
|
|
parent = page6._id;
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body, parent});
|
|
|
|
|
|
|
|
|
|
result = res.body.result;
|
|
|
|
|
const page7 = result;
|
|
|
|
|
|
|
|
|
|
/** Page 8 */
|
|
|
|
|
parent = page6._id;
|
|
|
|
|
res = await agent
|
|
|
|
|
.put('/api/page')
|
|
|
|
|
.send({body, parent});
|
|
|
|
|
|
|
|
|
|
result = res.body.result;
|
|
|
|
|
const page8 = result;
|
|
|
|
|
|
|
|
|
|
return [
|
|
|
|
|
0,
|
|
|
|
|
page1._id,
|
|
|
|
|
page2._id,
|
|
|
|
|
page3._id,
|
|
|
|
|
page4._id,
|
|
|
|
|
page5._id,
|
|
|
|
|
page6._id,
|
|
|
|
|
page7._id,
|
|
|
|
|
page8._id
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
it('Removing a page and its children', async () => {
|
|
|
|
|
let pages = await createPageTree();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Deleting from tree page1
|
|
|
|
|
* Also pages 3, 5 and 4 must be deleted
|
|
|
|
|
*/
|
|
|
|
|
await agent
|
|
|
|
|
.delete(`/api/page/${pages[1]}`);
|
|
|
|
|
|
|
|
|
|
const page3 = await Page.get(pages[3]);
|
|
|
|
|
expect(page3.data._id).to.be.undefined;
|
|
|
|
|
|
|
|
|
|
const page4 = await Page.get(pages[4]);
|
|
|
|
|
expect(page4.data._id).to.be.undefined;
|
|
|
|
|
|
|
|
|
|
const page5 = await Page.get(pages[5]);
|
|
|
|
|
expect(page5.data._id).to.be.undefined;
|
|
|
|
|
|
|
|
|
|
/** Okay, pages above is deleted */
|
|
|
|
|
const page2 = await Page.get(pages[2]);
|
|
|
|
|
expect(page2.data._id).not.to.be.undefined;
|
|
|
|
|
|
|
|
|
|
/** First check pages 6, 7 and 8 before deleting */
|
|
|
|
|
let page6 = await Page.get(pages[6]);
|
|
|
|
|
expect(page6.data._id).not.to.be.undefined;
|
|
|
|
|
|
|
|
|
|
let page7 = await Page.get(pages[7]);
|
|
|
|
|
expect(page7.data._id).not.to.be.undefined;
|
|
|
|
|
|
|
|
|
|
let page8 = await Page.get(pages[8]);
|
|
|
|
|
expect(page8.data._id).not.to.be.undefined;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Delete page6
|
|
|
|
|
* also pages 7 and 8 must be deleted
|
|
|
|
|
*/
|
|
|
|
|
await agent
|
|
|
|
|
.delete(`/api/page/${pages[6]}`);
|
|
|
|
|
|
|
|
|
|
page6 = await Page.get(pages[6]);
|
|
|
|
|
expect(page6.data._id).to.be.undefined;
|
|
|
|
|
|
|
|
|
|
page7 = await Page.get(pages[7]);
|
|
|
|
|
expect(page7.data._id).to.be.undefined;
|
|
|
|
|
|
|
|
|
|
page8 = await Page.get(pages[8]);
|
|
|
|
|
expect(page8.data._id).to.be.undefined;
|
|
|
|
|
});
|
2018-09-07 19:24:09 +03:00
|
|
|
|
});
|