FEATURE: Add group settngs to allow users to leave a group freely.
https://meta.discourse.org/t/split-join-leave-freely-setting-on-groups/65565
This commit is contained in:
@@ -12,7 +12,17 @@ QUnit.test("Editing group", assert => {
|
||||
assert.ok(find('.group-flair-inputs').length === 1, 'it should display avatar flair inputs');
|
||||
assert.ok(find('.group-edit-bio').length === 1, 'it should display group bio input');
|
||||
assert.ok(find('.group-edit-full-name').length === 1, 'it should display group full name input');
|
||||
assert.ok(find('.group-edit-public').length === 1, 'it should display group public input');
|
||||
|
||||
assert.ok(
|
||||
find('.group-edit-public-admission').length === 1,
|
||||
'it should display group public admission input'
|
||||
);
|
||||
|
||||
assert.ok(
|
||||
find('.group-edit-public-exit').length === 1,
|
||||
'it should display group public exit input'
|
||||
);
|
||||
|
||||
assert.ok(find('.group-edit-allow-membership-requests').length === 1, 'it should display group allow_membership_requets input');
|
||||
assert.ok(find('.group-members-input .item').length === 7, 'it should display group members');
|
||||
assert.ok(find('.group-members-input-selector').length === 1, 'it should display input to add group members');
|
||||
@@ -20,14 +30,20 @@ QUnit.test("Editing group", assert => {
|
||||
});
|
||||
|
||||
andThen(() => {
|
||||
assert.ok(find('.group-edit-allow-membership-requests[disabled]').length === 1, 'it should disable group allow_membership_request input');
|
||||
assert.ok(
|
||||
find('.group-edit-allow-membership-requests[disabled]').length === 1,
|
||||
'it should disable group allow_membership_request input'
|
||||
);
|
||||
});
|
||||
|
||||
click('.group-edit-public');
|
||||
click('.group-edit-public-admission');
|
||||
click('.group-edit-allow-membership-requests');
|
||||
|
||||
andThen(() => {
|
||||
assert.ok(find('.group-edit-public[disabled]').length === 1, 'it should disable group public input');
|
||||
assert.ok(
|
||||
find('.group-edit-public-admission[disabled]').length === 1,
|
||||
'it should disable group public admission input'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -37,4 +53,4 @@ QUnit.test("Editing group as an anonymous user", assert => {
|
||||
andThen(() => {
|
||||
assert.ok(count('.group-members tr') > 0, "it should redirect to members page for an anonymous user");
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,18 +2,52 @@ moduleFor('component:group-membership-button');
|
||||
|
||||
QUnit.test('canJoinGroup', function(assert) {
|
||||
this.subject().setProperties({
|
||||
model: { public: false }
|
||||
model: { public_admission: false, is_group_user: true }
|
||||
});
|
||||
|
||||
assert.equal(this.subject().get("canJoinGroup"), false, "non public group cannot be joined");
|
||||
assert.equal(
|
||||
this.subject().get("canJoinGroup"), false,
|
||||
"can't join group if public_admission is false"
|
||||
);
|
||||
|
||||
this.subject().set("model.public", true);
|
||||
this.subject().set("model.public_admission", true);
|
||||
|
||||
assert.equal(this.subject().get("canJoinGroup"), true, "public group can be joined");
|
||||
assert.equal(
|
||||
this.subject().get("canJoinGroup"), false,
|
||||
"can't join group if user is already in the group"
|
||||
);
|
||||
|
||||
this.subject().setProperties({ currentUser: null, model: { public: true } });
|
||||
this.subject().set("model.is_group_user", false);
|
||||
|
||||
assert.equal(this.subject().get("canJoinGroup"), true, "can't join group when not logged in");
|
||||
assert.equal(
|
||||
this.subject().get("canJoinGroup"), true,
|
||||
"allowed to join group"
|
||||
);
|
||||
});
|
||||
|
||||
QUnit.test('canLeaveGroup', function(assert) {
|
||||
this.subject().setProperties({
|
||||
model: { public_exit: false, is_group_user: false }
|
||||
});
|
||||
|
||||
assert.equal(
|
||||
this.subject().get("canLeaveGroup"), false,
|
||||
"can't leave group if public_exit is false"
|
||||
);
|
||||
|
||||
this.subject().set("model.public_exit", true);
|
||||
|
||||
assert.equal(
|
||||
this.subject().get("canLeaveGroup"), false,
|
||||
"can't leave group if user is not in the group"
|
||||
);
|
||||
|
||||
this.subject().set("model.is_group_user", true);
|
||||
|
||||
assert.equal(
|
||||
this.subject().get("canLeaveGroup"), true,
|
||||
"allowed to leave group"
|
||||
);
|
||||
});
|
||||
|
||||
QUnit.test('userIsGroupUser', function(assert) {
|
||||
|
||||
@@ -20,16 +20,22 @@ QUnit.test("disablePublicSetting", function(assert) {
|
||||
|
||||
QUnit.test("disableMembershipRequestSetting", function(assert) {
|
||||
this.subject().setProperties({
|
||||
model: { visibility_level: 1, public: false, canEveryoneMention: true }
|
||||
model: { visibility_level: 1, public_admission: false, canEveryoneMention: true }
|
||||
});
|
||||
|
||||
assert.equal(this.subject().get("disableMembershipRequestSetting"), true, "it should disable setting");
|
||||
|
||||
this.subject().set("model.visibility_level", 0);
|
||||
|
||||
assert.equal(this.subject().get("disableMembershipRequestSetting"), false, "it should enable setting");
|
||||
assert.equal(
|
||||
this.subject().get("disableMembershipRequestSetting"), false,
|
||||
"it should enable setting"
|
||||
);
|
||||
|
||||
this.subject().set("model.public", true);
|
||||
this.subject().set("model.public_admission", true);
|
||||
|
||||
assert.equal(this.subject().get("disableMembershipRequestSetting"), true, "it should disalbe setting");
|
||||
assert.equal(
|
||||
this.subject().get("disableMembershipRequestSetting"), true,
|
||||
"it should disable setting"
|
||||
);
|
||||
});
|
||||
|
||||
@@ -8,7 +8,8 @@ export default {
|
||||
"user_count":8,
|
||||
"alias_level":99,
|
||||
"visible":true,
|
||||
"public":true,
|
||||
"public_admission":true,
|
||||
"public_exit":true,
|
||||
"flair_url": 'fa-adjust',
|
||||
"is_group_owner":true,
|
||||
"mentionable":true
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
export default {
|
||||
"/groups.json": {"groups":[{"id":41,"automatic":false,"name":"discourse","user_count":0,"alias_level":0,"visible":true,"automatic_membership_email_domains":"","automatic_membership_retroactive":false,"primary_group":false,"title":null,"grant_trust_level":null,"has_messages":false,"flair_url":null,"flair_bg_color":null,"flair_color":null,"bio_raw":"","bio_cooked":null,"public":true,"allow_membership_requests":false,"full_name":"Awesome Team"},{"id":42,"automatic":false,"name":"Macdonald","user_count":0,"alias_level":99,"visible":true,"automatic_membership_email_domains":"","automatic_membership_retroactive":false,"primary_group":false,"title":null,"grant_trust_level":null,"has_messages":false,"flair_url":null,"flair_bg_color":null,"flair_color":null,"bio_raw":null,"bio_cooked":null,"public":false,"allow_membership_requests":true,"full_name":null}],"extras":{"group_user_ids":[]},"total_rows_groups":2,"load_more_groups":"/groups?page=1"}
|
||||
"/groups.json": {"groups":[{"id":41,"automatic":false,"name":"discourse","user_count":0,"alias_level":0,"visible":true,"automatic_membership_email_domains":"","automatic_membership_retroactive":false,"primary_group":false,"title":null,"grant_trust_level":null,"has_messages":false,"flair_url":null,"flair_bg_color":null,"flair_color":null,"bio_raw":"","bio_cooked":null,"public_admission":true,"allow_membership_requests":false,"full_name":"Awesome Team"},{"id":42,"automatic":false,"name":"Macdonald","user_count":0,"alias_level":99,"visible":true,"automatic_membership_email_domains":"","automatic_membership_retroactive":false,"primary_group":false,"title":null,"grant_trust_level":null,"has_messages":false,"flair_url":null,"flair_bg_color":null,"flair_color":null,"bio_raw":null,"bio_cooked":null,"public_admission":false,"allow_membership_requests":true,"full_name":null}],"extras":{"group_user_ids":[]},"total_rows_groups":2,"load_more_groups":"/groups?page=1"}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user