This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/tests/integration/components/group-membership-button-test.js
Robin Ward 0afcf9e12e
DEV: Support Node 15 with Ember CLI (#12679)
* DEV: Support Node 15 with Ember CLI

* FIX: Broken tests that needed to be updated in newer Ember CLI
2021-04-14 10:16:39 -04:00

90 lines
2.4 KiB
JavaScript

import {
discourseModule,
queryAll,
} from "discourse/tests/helpers/qunit-helpers";
import componentTest, {
setupRenderingTest,
} from "discourse/tests/helpers/component-test";
import hbs from "htmlbars-inline-precompile";
discourseModule(
"Integration | Component | group-membership-button",
function (hooks) {
setupRenderingTest(hooks);
componentTest("canJoinGroup", {
template: hbs`{{group-membership-button model=model}}`,
beforeEach() {
this.set("model", { public_admission: false, is_group_user: true });
},
async test(assert) {
assert.ok(
queryAll(".group-index-join").length === 0,
"can't join group if public_admission is false"
);
this.set("model.public_admission", true);
assert.ok(
queryAll(".group-index-join").length === 0,
"can't join group if user is already in the group"
);
this.set("model.is_group_user", false);
assert.ok(
queryAll(".group-index-join").length,
"allowed to join group"
);
},
});
componentTest("canLeaveGroup", {
template: hbs`{{group-membership-button model=model}}`,
beforeEach() {
this.set("model", { public_exit: false, is_group_user: false });
},
async test(assert) {
assert.ok(
queryAll(".group-index-leave").length === 0,
"can't leave group if public_exit is false"
);
this.set("model.public_exit", true);
assert.ok(
queryAll(".group-index-leave").length === 0,
"can't leave group if user is not in the group"
);
this.set("model.is_group_user", true);
assert.ok(
queryAll(".group-index-leave").length === 1,
"allowed to leave group"
);
},
});
componentTest("canRequestMembership", {
template: hbs`{{group-membership-button model=model}}`,
beforeEach() {
this.set("model", {
allow_membership_requests: true,
is_group_user: true,
});
},
async test(assert) {
assert.ok(
queryAll(".group-index-request").length === 0,
"can't request for membership if user is already in the group"
);
this.set("model.is_group_user", false);
assert.ok(
queryAll(".group-index-request").length,
"allowed to request for group membership"
);
},
});
}
);