mirror of
https://github.com/discourse/discourse.git
synced 2024-12-15 10:24:27 +08:00
62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
|
import { acceptance } from "helpers/qunit-helpers";
|
||
|
import { withPluginApi } from "discourse/lib/plugin-api";
|
||
|
|
||
|
const PREFIX = "javascripts/single-test/connectors";
|
||
|
acceptance("Plugin Outlet - Decorator", {
|
||
|
loggedIn: true,
|
||
|
|
||
|
beforeEach() {
|
||
|
Ember.TEMPLATES[
|
||
|
`${PREFIX}/discovery-list-container-top/foo`
|
||
|
] = Ember.HTMLBars.compile("FOO");
|
||
|
Ember.TEMPLATES[
|
||
|
`${PREFIX}/discovery-list-container-top/bar`
|
||
|
] = Ember.HTMLBars.compile("BAR");
|
||
|
|
||
|
withPluginApi("0.8.38", api => {
|
||
|
api.decoratePluginOutlet(
|
||
|
"discovery-list-container-top",
|
||
|
(elem, args) => {
|
||
|
if (elem.classList.contains("foo")) {
|
||
|
elem.style.backgroundColor = "yellow";
|
||
|
|
||
|
if (args.category) {
|
||
|
elem.classList.add("in-category");
|
||
|
} else {
|
||
|
elem.classList.remove("in-category");
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{ id: "yellow-decorator" }
|
||
|
);
|
||
|
});
|
||
|
},
|
||
|
|
||
|
afterEach() {
|
||
|
delete Ember.TEMPLATES[`${PREFIX}/discovery-list-container-top/foo`];
|
||
|
delete Ember.TEMPLATES[`${PREFIX}/discovery-list-container-top/bar`];
|
||
|
}
|
||
|
});
|
||
|
|
||
|
QUnit.test(
|
||
|
"Calls the plugin callback with the rendered outlet",
|
||
|
async assert => {
|
||
|
await visit("/");
|
||
|
|
||
|
const fooConnector = find(".discovery-list-container-top-outlet.foo ")[0];
|
||
|
const barConnector = find(".discovery-list-container-top-outlet.bar ")[0];
|
||
|
|
||
|
assert.ok(exists(fooConnector));
|
||
|
assert.equal(fooConnector.style.backgroundColor, "yellow");
|
||
|
assert.equal(barConnector.style.backgroundColor, "");
|
||
|
|
||
|
await visit("/c/bug");
|
||
|
|
||
|
assert.ok(fooConnector.classList.contains("in-category"));
|
||
|
|
||
|
await visit("/");
|
||
|
|
||
|
assert.notOk(fooConnector.classList.contains("in-category"));
|
||
|
}
|
||
|
);
|