mirror of
https://github.com/discourse/discourse.git
synced 2025-06-02 04:08:41 +08:00
Lots of work on tests
This commit is contained in:
@ -13,43 +13,44 @@ var buildAdminUser = function(args) {
|
||||
}, args || {}));
|
||||
};
|
||||
|
||||
moduleFor("controller:flag");
|
||||
moduleFor("controller:flag", "controller:flag", {
|
||||
needs: ['controller:modal']
|
||||
});
|
||||
|
||||
test("canDeleteSpammer not staff", function(){
|
||||
var flagController = controllerFor('flag', buildPost());
|
||||
this.stub(Discourse.User, 'currentProp').withArgs('staff').returns(false);
|
||||
var flagController = this.subject({ model: buildPost() });
|
||||
sandbox.stub(Discourse.User, 'currentProp').withArgs('staff').returns(false);
|
||||
flagController.set('selected', Discourse.PostActionType.create({name_key: 'spam'}));
|
||||
equal(flagController.get('canDeleteSpammer'), false, 'false if current user is not staff');
|
||||
});
|
||||
|
||||
var canDeleteSpammer = function(test, postActionType, expected, testName) {
|
||||
test.flagController.set('selected', Discourse.PostActionType.create({name_key: postActionType}));
|
||||
equal(test.flagController.get('canDeleteSpammer'), expected, testName);
|
||||
var canDeleteSpammer = function(flagController, postActionType, expected, testName) {
|
||||
flagController.set('selected', Discourse.PostActionType.create({name_key: postActionType}));
|
||||
equal(flagController.get('canDeleteSpammer'), expected, testName);
|
||||
};
|
||||
|
||||
test("canDeleteSpammer spam not selected", function(){
|
||||
this.stub(Discourse.User, 'currentProp').withArgs('staff').returns(true);
|
||||
this.flagController = controllerFor('flag', buildPost());
|
||||
this.flagController.set('userDetails', buildAdminUser({can_delete_all_posts: true, can_be_deleted: true}));
|
||||
canDeleteSpammer(this, 'off_topic', false, 'false if current user is staff, but selected is off_topic');
|
||||
canDeleteSpammer(this, 'inappropriate', false, 'false if current user is staff, but selected is inappropriate');
|
||||
canDeleteSpammer(this, 'notify_user', false, 'false if current user is staff, but selected is notify_user');
|
||||
canDeleteSpammer(this, 'notify_moderators', false, 'false if current user is staff, but selected is notify_moderators');
|
||||
sandbox.stub(Discourse.User, 'currentProp').withArgs('staff').returns(true);
|
||||
var flagController = this.subject({ model: buildPost() });
|
||||
flagController.set('userDetails', buildAdminUser({can_delete_all_posts: true, can_be_deleted: true}));
|
||||
canDeleteSpammer(flagController, 'off_topic', false, 'false if current user is staff, but selected is off_topic');
|
||||
canDeleteSpammer(flagController, 'inappropriate', false, 'false if current user is staff, but selected is inappropriate');
|
||||
canDeleteSpammer(flagController, 'notify_user', false, 'false if current user is staff, but selected is notify_user');
|
||||
canDeleteSpammer(flagController, 'notify_moderators', false, 'false if current user is staff, but selected is notify_moderators');
|
||||
});
|
||||
|
||||
test("canDeleteSpammer spam selected", function(){
|
||||
this.stub(Discourse.User, 'currentProp').withArgs('staff').returns(true);
|
||||
this.flagController = controllerFor('flag', buildPost());
|
||||
sandbox.stub(Discourse.User, 'currentProp').withArgs('staff').returns(true);
|
||||
var flagController = this.subject({ model: buildPost() });
|
||||
flagController.set('userDetails', buildAdminUser({can_delete_all_posts: true, can_be_deleted: true}));
|
||||
canDeleteSpammer(flagController, 'spam', true, 'true if current user is staff, selected is spam, posts and user can be deleted');
|
||||
|
||||
this.flagController.set('userDetails', buildAdminUser({can_delete_all_posts: true, can_be_deleted: true}));
|
||||
canDeleteSpammer(this, 'spam', true, 'true if current user is staff, selected is spam, posts and user can be deleted');
|
||||
flagController.set('userDetails', buildAdminUser({can_delete_all_posts: false, can_be_deleted: true}));
|
||||
canDeleteSpammer(flagController, 'spam', false, 'false if current user is staff, selected is spam, posts cannot be deleted');
|
||||
|
||||
this.flagController.set('userDetails', buildAdminUser({can_delete_all_posts: false, can_be_deleted: true}));
|
||||
canDeleteSpammer(this, 'spam', false, 'false if current user is staff, selected is spam, posts cannot be deleted');
|
||||
flagController.set('userDetails', buildAdminUser({can_delete_all_posts: true, can_be_deleted: false}));
|
||||
canDeleteSpammer(flagController, 'spam', false, 'false if current user is staff, selected is spam, user cannot be deleted');
|
||||
|
||||
this.flagController.set('userDetails', buildAdminUser({can_delete_all_posts: true, can_be_deleted: false}));
|
||||
canDeleteSpammer(this, 'spam', false, 'false if current user is staff, selected is spam, user cannot be deleted');
|
||||
|
||||
this.flagController.set('userDetails', buildAdminUser({can_delete_all_posts: false, can_be_deleted: false}));
|
||||
canDeleteSpammer(this, 'spam', false, 'false if current user is staff, selected is spam, user cannot be deleted');
|
||||
flagController.set('userDetails', buildAdminUser({can_delete_all_posts: false, can_be_deleted: false}));
|
||||
canDeleteSpammer(flagController, 'spam', false, 'false if current user is staff, selected is spam, user cannot be deleted');
|
||||
});
|
||||
|
Reference in New Issue
Block a user