From 007652ece51bd85c6c3bbe92af0a37303d512afd Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Tue, 17 Dec 2019 18:39:51 +0100 Subject: [PATCH] DEV: allows this.get in widgets (#8571) --- .../discourse/widgets/widget.js.es6 | 5 +++++ test/javascripts/widgets/widget-test.js.es6 | 20 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/app/assets/javascripts/discourse/widgets/widget.js.es6 b/app/assets/javascripts/discourse/widgets/widget.js.es6 index cb75df16ae..10f7ef50c2 100644 --- a/app/assets/javascripts/discourse/widgets/widget.js.es6 +++ b/app/assets/javascripts/discourse/widgets/widget.js.es6 @@ -12,6 +12,7 @@ import { h } from "virtual-dom"; import DecoratorHelper from "discourse/widgets/decorator-helper"; import { Promise } from "rsvp"; import ENV from "discourse-common/config/environment"; +import { get } from "@ember/object"; const _registry = {}; @@ -150,6 +151,10 @@ export default class Widget { destroy() {} + get(propertyPath) { + return get(this, propertyPath); + } + render(prev) { const { dirtyKeys } = this; diff --git a/test/javascripts/widgets/widget-test.js.es6 b/test/javascripts/widgets/widget-test.js.es6 index 4666285c27..0ab65b0dc5 100644 --- a/test/javascripts/widgets/widget-test.js.es6 +++ b/test/javascripts/widgets/widget-test.js.es6 @@ -380,3 +380,23 @@ widgetTest("override settings", { assert.equal(find(".settings").text(), "age is 37"); } }); + +widgetTest("get accessor", { + template: `{{mount-widget widget="get-accessor-test"}}`, + + beforeEach() { + createWidget("get-accessor-test", { + tagName: "div.test", + template: hbs`Hello {{transformed.name}}`, + transform() { + return { + name: this.get("currentUser.username") + }; + } + }); + }, + + test(assert) { + assert.equal(find("div.test").text(), "Hello eviltrout"); + } +});