discourse/test/javascripts/models/post-test.js.es6

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

100 lines
2.4 KiB
Plaintext
Raw Normal View History

import Post from "discourse/models/post";
2019-11-14 04:55:32 +08:00
import User from "discourse/models/user";
QUnit.module("model: Post");
var buildPost = function(args) {
return Post.create(
_.merge(
{
id: 1,
can_delete: true,
version: 1
},
args || {}
2018-06-15 23:03:24 +08:00
)
);
};
2017-06-15 01:57:58 +08:00
QUnit.test("defaults", assert => {
var post = Post.create({ id: 1 });
2017-06-15 01:57:58 +08:00
assert.blank(post.get("deleted_at"), "it has no deleted_at by default");
assert.blank(post.get("deleted_by"), "there is no deleted_by by default");
});
2017-06-15 01:57:58 +08:00
QUnit.test("new_user", assert => {
var post = Post.create({ trust_level: 0 });
2017-06-15 01:57:58 +08:00
assert.ok(post.get("new_user"), "post is from a new user");
post.set("trust_level", 1);
2017-06-15 01:57:58 +08:00
assert.ok(!post.get("new_user"), "post is no longer from a new user");
});
2017-06-15 01:57:58 +08:00
QUnit.test("firstPost", assert => {
var post = Post.create({ post_number: 1 });
2017-06-15 01:57:58 +08:00
assert.ok(post.get("firstPost"), "it's the first post");
post.set("post_number", 10);
2017-06-15 01:57:58 +08:00
assert.ok(!post.get("firstPost"), "post is no longer the first post");
});
2017-06-15 01:57:58 +08:00
QUnit.test("updateFromPost", assert => {
var post = Post.create({
post_number: 1,
raw: "hello world"
});
post.updateFromPost(
Post.create({
raw: "different raw",
wat: function() {
return 123;
}
})
);
2017-06-15 01:57:58 +08:00
assert.equal(post.get("raw"), "different raw", "raw field updated");
2013-07-05 23:53:09 +08:00
});
2017-06-15 01:57:58 +08:00
QUnit.test("destroy by staff", assert => {
2019-11-14 04:55:32 +08:00
var user = User.create({ username: "staff", moderator: true }),
post = buildPost({ user: user });
post.destroy(user);
2017-06-15 01:57:58 +08:00
assert.present(post.get("deleted_at"), "it has a `deleted_at` field.");
assert.equal(
post.get("deleted_by"),
user,
"it has the user in the `deleted_by` field"
);
2013-07-11 04:19:42 +08:00
post.recover();
2017-06-15 01:57:58 +08:00
assert.blank(
post.get("deleted_at"),
"it clears `deleted_at` when recovering"
);
assert.blank(
post.get("deleted_by"),
"it clears `deleted_by` when recovering"
2018-06-15 23:03:24 +08:00
);
});
2017-06-15 01:57:58 +08:00
QUnit.test("destroy by non-staff", assert => {
var originalCooked = "this is the original cooked value",
2019-11-14 04:55:32 +08:00
user = User.create({ username: "evil trout" }),
post = buildPost({ user: user, cooked: originalCooked });
return post.destroy(user).then(() => {
assert.ok(
!post.get("can_delete"),
"the post can't be deleted again in this session"
);
assert.ok(
post.get("cooked") !== originalCooked,
"the cooked content changed"
2018-06-15 23:03:24 +08:00
);
assert.equal(post.get("version"), 2, "the version number increased");
});
});