mirror of
https://github.com/discourse/discourse.git
synced 2024-12-11 20:23:39 +08:00
50 lines
1007 B
JavaScript
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);
|
||
|
}
|
||
|
});
|