discourse/test/javascripts/utils/decorators-test.js.es6

50 lines
1007 B
JavaScript

import { afterRender } from "discourse-common/utils/decorators";
import Component from "@ember/component";
import componentTest from "helpers/component-test";
const fooComponent = Component.extend({
layoutName: "foo-component",
classNames: ["foo-component"],
baz: null,
didInsertElement() {
this._super(...arguments);
this.setBaz(1);
},
willDestroyElement() {
this._super(...arguments);
this.setBaz(2);
},
@afterRender
setBaz(baz) {
this.set("baz", baz);
}
});
moduleForComponent("utils:decorators", { integration: true });
componentTest("afterRender", {
template: "{{foo-component baz=baz}}",
beforeEach() {
this.registry.register("component:foo-component", fooComponent);
this.set("baz", 0);
},
test(assert) {
assert.ok(exists(document.querySelector(".foo-component")));
assert.equal(this.baz, 1);
this.clearRender();
assert.ok(!exists(document.querySelector(".foo-component")));
assert.equal(this.baz, 1);
}
});