UNPKG

sheercms

Version:

Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.

189 lines (157 loc) 5.88 kB
var assert = require('assert'); var expect = require('chai').expect; var when = require('when'); // https://github.com/cujojs/when var api = require('../../lib/api'); var async = require("async"); //mock server var server = { get: function() {}, post: function() {} }; //setup the CMS var cms = require('sheercms'); var _item = null; var _items = []; describe("Content", function() { describe("init", function() { it("should initialize the cms", function(done) { //initialize the CMS cms.init(server, function (err) { if (err) { done(err); } else { done(); } }); }); }); describe(".createContent()", function() { it("should create a content item", function(done){ console.log('\nTesting createContent.'); api.content.createContent('Test', 'Article').then(function(result) { assert(result.contentId, 'Content ID is null'); _item = result; done(); }).catch(function(e) { console.error(e); done(e); }); }); }); describe(".getContent()", function() { it("should get a content item", function(done){ console.log('\nTesting getContent.'); api.content.getContent({ collection: 'drafts', contentId: _item.contentId }).then(function(result) { assert(result, 'Content record is null.'); expect(result.contentId).to.equal(_item.contentId); console.log("Found content with id: " + _item.contentId); done(); }).catch(function(e) { console.error(e); done(e); }); }); }); describe(".deleteContent() by contentId", function() { it("should delete a content item by contentId", function(done){ console.log('\nTesting deleteContent.'); api.content.deleteContent({ contentId: _item.contentId }).then(function(result) { assert(result == true, 'The content was not deleted.'); _item = null; done(); }).catch(function(e) { console.error(e); done(e); }); }); }); describe(".createContent()", function() { it("should create a content item", function(done){ console.log('\nTesting createContent.'); api.content.createContent('Test2', 'Article').then(function(result) { assert(result.contentId, 'Content ID is null'); _item = result; done(); }).catch(function(e) { console.error(e); done(e); }); }); }); describe(".deleteContent() by _id", function() { it("should delete a content item by objectId", function(done){ console.log('\nTesting deleteContent.'); api.content.deleteContent({ collection: 'drafts', objectId: _item._id }).then(function(result) { assert(result == true, 'The content was not deleted.'); _item = null; done(); }).catch(function(e) { console.error(e); done(e); }); }); }); describe(".createContent() x 3", function() { it("should create 3 content items", function(done){ console.log('\nTesting createContent x 3.'); var arr = ["Test1", "Test2", "Test3"]; //create each item async.each(arr, function (key, done2) { api.content.createContent(key, 'Article').then(function(result) { _items.push(result); done2(); }).catch(function(e) { console.error(e); done2(e); }); }, function (err) { if (err) { done(err); } else { done(); } }); }); }); describe(".getContentList()", function() { it("should get up to 10 content items", function(done){ console.log('\nTesting getContentList.'); api.content.getContentList({ type: null, pageNumber: 1, pageSize: 10 }).then(function(result) { assert(result, 'The result is null.'); assert(result.total > 2, 'There are less than 3 content items.'); assert(result.items, 'The result items array is null.'); for(var i = 0; i < result.items.length; i++) { var item = result.items[i]; console.log("Found item: " + item.name); } done(); }).catch(function(e) { console.error(e); done(e); }); }); }); describe(".deleteContent() by contentId x 3", function() { it("should delete the 3 created items", function(done){ console.log('\nCleaning up the 3 created items.'); async.each(_items, function (key, done2) { api.content.deleteContent({ contentId: key.contentId, forever: true }).then(function(result) { done2(); }).catch(function(e) { console.error(e); done2(e); }); }, function (err) { if (err) { done(err); } else { _items = []; console.log("Items deleted successfully."); done(); } }); }); }); });