Meta topic: https://meta.discourse.org/t/cant-pin-unpin-topic-from-the-title/213444?u=osama. I know there is an inconsistency between the category of the linked topic (#bug) and the title prefix of this PR, but I really couldn't find anything in the code base that suggested this ever worked before, so I'm categorizing this PR as a feature.
83 lines
2.4 KiB
JavaScript
83 lines
2.4 KiB
JavaScript
import componentTest, {
|
|
setupRenderingTest,
|
|
} from "discourse/tests/helpers/component-test";
|
|
import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers";
|
|
import { click } from "@ember/test-helpers";
|
|
import TopicStatusIcons from "discourse/helpers/topic-status-icons";
|
|
import hbs from "htmlbars-inline-precompile";
|
|
|
|
discourseModule(
|
|
"Integration | Component | Widget | topic-status",
|
|
function (hooks) {
|
|
setupRenderingTest(hooks);
|
|
|
|
componentTest("basics", {
|
|
template: hbs`{{mount-widget widget="topic-status" args=args}}`,
|
|
beforeEach(store) {
|
|
this.set("args", {
|
|
topic: store.createRecord("topic", { closed: true }),
|
|
disableActions: true,
|
|
});
|
|
},
|
|
test(assert) {
|
|
assert.ok(exists(".topic-status .d-icon-lock"));
|
|
},
|
|
});
|
|
|
|
componentTest("extendability", {
|
|
template: hbs`{{mount-widget widget="topic-status" args=args}}`,
|
|
beforeEach(store) {
|
|
TopicStatusIcons.addObject([
|
|
"has_accepted_answer",
|
|
"far-check-square",
|
|
"solved",
|
|
]);
|
|
this.set("args", {
|
|
topic: store.createRecord("topic", {
|
|
has_accepted_answer: true,
|
|
}),
|
|
disableActions: true,
|
|
});
|
|
},
|
|
test(assert) {
|
|
assert.ok(exists(".topic-status .d-icon-far-check-square"));
|
|
},
|
|
});
|
|
|
|
componentTest("toggling pin status", {
|
|
template: hbs`{{mount-widget widget="topic-status" args=args}}`,
|
|
beforeEach(store) {
|
|
this.set("args", {
|
|
topic: store.createRecord("topic", { closed: true, pinned: true }),
|
|
});
|
|
},
|
|
async test(assert) {
|
|
assert.ok(exists(".topic-statuses .pinned"), "pinned icon is shown");
|
|
assert.ok(
|
|
!exists(".topic-statuses .unpinned"),
|
|
"unpinned icon is not shown"
|
|
);
|
|
|
|
await click(".topic-statuses .pin-toggle-button");
|
|
|
|
assert.ok(
|
|
!exists(".topic-statuses .pinned"),
|
|
"pinned icon is not shown"
|
|
);
|
|
assert.ok(
|
|
exists(".topic-statuses .unpinned"),
|
|
"unpinned icon is shown"
|
|
);
|
|
|
|
await click(".topic-statuses .pin-toggle-button");
|
|
|
|
assert.ok(exists(".topic-statuses .pinned"), "pinned icon is shown");
|
|
assert.ok(
|
|
!exists(".topic-statuses .unpinned"),
|
|
"unpinned icon is not shown"
|
|
);
|
|
},
|
|
});
|
|
}
|
|
);
|