diff --git a/test/javascripts/widgets/small-action-post-class-test.js b/test/javascripts/widgets/small-action-post-class-test.js new file mode 100644 index 0000000..ad3247f --- /dev/null +++ b/test/javascripts/widgets/small-action-post-class-test.js @@ -0,0 +1,47 @@ +import { setupRenderingTest } from "discourse/tests/helpers/component-test"; +import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers"; +import hbs from "htmlbars-inline-precompile"; +import { render } from "@ember/test-helpers"; +import { test } from "qunit"; +import { withPluginApi } from "discourse/lib/plugin-api"; + +discourseModule( + "Discourse Assign | Integration | Widget | Small Action Post Class", + function (hooks) { + setupRenderingTest(hooks); + + test("When assigns are not public add a private-assign class to the small post", async function (assert) { + this.siteSettings.assigns_public = false; + + this.set("args", { + id: 10, + actionCode: "assigned", + }); + + withPluginApi("1.6.0", (api) => { + api.addPostSmallActionClassesCallback((post) => { + if ( + post.actionCode.includes("assigned") && + !this.siteSettings.assigns_public + ) { + return ["private-assign"]; + } + }); + }); + + await render( + hbs`` + ); + + assert.ok(exists(".small-action.private-assign")); + + this.siteSettings.assigns_public = true; + + await render( + hbs`` + ); + + assert.ok(!exists(".small-action.private-assign")); + }); + } +);