/*global buster, assert, dome, gts*/
buster.testCase("Comments", {
"renderForm": {
"renders comment div": function () {
var div = gts.comments.renderComment({
body: "
Hey
",
createdAt: "2013-01-01T23:10:15+02:00",
updatedAt: "2013-01-01T23:10:15+02:00",
author: {
avatarPath: "/some/avatar.png",
profilePath: "/~cjohansen",
name: "Christian Johansen",
login: "cjohansen"
}
});
assert.tagName(div, "div");
assert.className(div, "gts-comment");
assert.equals(div.firstChild.firstChild.innerHTML, "Hey");
assert.match(div.innerHTML, "/some/avatar.png");
assert.match(div.innerHTML, "href=\"/~cjohansen\">Christian Johansen");
assert.match(div.innerHTML, "2013");
refute.match(div.innerHTML, "Edit comment");
refute.match(div.innerHTML, "edited");
},
"renders editable comment": function () {
var div = gts.comments.renderComment({
body: "Hey
",
createdAt: "2013-01-01T23:10:15+02:00",
updatedAt: "2013-01-01T23:10:15+02:00",
editPath: "/comments/123456789/edit",
author: {
avatarPath: "/some/avatar.png",
profilePath: "/~cjohansen",
name: "Christian Johansen",
login: "cjohansen"
}
});
assert.match(div.innerHTML, "/comments/123456789/edit");
assert.match(div.innerHTML, "Edit comment");
},
"renders edited comment": function () {
var div = gts.comments.renderComment({
body: "Hey
",
createdAt: "2013-01-01T23:10:15+02:00",
updatedAt: "2013-01-01T23:25:15+02:00",
editPath: "/comments/123456789/edit",
author: {
avatarPath: "/some/avatar.png",
profilePath: "/~cjohansen",
name: "Christian Johansen",
login: "cjohansen"
}
});
assert.match(div.innerHTML, "edited");
}
},
"personalizeForm": {
setUp: function () {
this.form = dome.el("form", {
style: { display: "none" }
}, dome.el("div", { className: "gts-comment-author-ph" }));
},
"displays form": function () {
gts.comments.personalizeForm({}, this.form);
assert.equals(this.form.style.display, "block");
},
"renders user in placeholder": function () {
this.useFakeTimers(new Date(2013, 0, 1, 12, 0, 0).getTime());
gts.comments.personalizeForm({
login: "cjohansen",
name: "Christian Johansen",
avatarPath: "/some/avatar.png",
profilePath: "/~cjohansen"
}, this.form);
assert.tagName(this.form.firstChild, "p");
var markup = this.form.firstChild.innerHTML;
assert.match(markup, "![]()