it("should accept callback to continue chaining", function () { var builder = new ContentBuilder(); var firstContent = null; builder.discussion().subject("YO").body("a").build(function (finishedContent) { firstContent = finishedContent; }).body("chaining").build().should.not.deep.equal(firstContent); });
it("should change visibility", function () { var builder = new ContentBuilder(); var content = builder.discussion().subject("A").body("a").place("/contents/123").build(); content.should.have.property("visibility").and.equal("place"); content.should.have.property("parent").and.contain("/contents/123"); });
it("should return the object being built", function () { var builder = new ContentBuilder(); var content = builder.discussion().subject("YO").body("a").build(); content.should.have.property("type"); content.should.have.property("content"); content.content.should.have.property("type"); });
it("should should set the content text field", function () { var builder = new ContentBuilder(); var b = ["a","b"]; builder.discussion().subject("YO"); b.forEach(function (body) { var content = builder.body(body).build(); content.content.text.should.equal(body); }) });
helpers.getDiscussionForIssue(jiveApi, placeUrl, gitData.issue.id).then(function (discussion) { jiveApi.attachPropsToContent(discussion.contentID, createExtProps(gitData)); var tags = editGitHubTags(discussion, gitData); var builder = new JiveContentBuilder(discussion); var content = builder.discussion() .tags(tags) .build(); jiveApi.update(content).then(function (contentResponse) { jive.logger.debug(contentResponse); }); });
function createIssueDiscussion(placeID, gitData, jiveApi) { jive.logger.info("New Issue! Creating a discussion for it."); var builder = new JiveContentBuilder(); var content = builder.discussion() .parentPlace(placeID) .subject(formatDiscussionSubject(gitData)) .body(gitData.issue.body) .build(); jiveApi.create(content).then(function (contentResponse) { var contentID = contentResponse.apiID; //attach ext props to query for discussion later return jiveApi.attachPropsToContent(contentID, createExtProps(gitData)); }); }
it("should create a subject member",function(){ var builder = new ContentBuilder(); builder.discussion().body("a").subject("YO").build() .should.have.property("subject").and.equal("YO"); });
it("should create an object with type discussion", function () { var builder = new ContentBuilder(); builder.discussion().subject("YO").body("a").build().should.have.property("type").and.equal("discussion"); });
expect(function () { builder.discussion().subject("YO").body("a").reset().build(); }).to.throw(builder.MISSING_TYPE);
expect(function () { builder.discussion().body("a").build(); }).to.throw(builder.MISSING_SUBJECT);
expect(function () { builder.discussion().subject("YO").build(); }).to.throw(builder.MISSING_BODY);
it("should accept a valid Jive content object", function () { var builder = new ContentBuilder(); var content = builder.discussion().subject("YO").body("a").build(); builder = new ContentBuilder(content); });
expect(function () { builder.discussion().subject("A").body("a").place(); }).to.throw(builder.MISSING_PARENT);
it("should change visibility", function () { var builder = new ContentBuilder(); builder.discussion().subject("A").body("a").all().build() .should.have.property("visibility").and.equal("all"); });
it("should change the content type", function () { var builder = new ContentBuilder(); builder.discussion().body("a").subject("YO").bodyType("text/plain").build() .content.type.should.equal("text/plain"); });