Skip to content

Commit

Permalink
Merge pull request #374 from jimenglish81/master
Browse files Browse the repository at this point in the history
Change descriptors to allow properties to be enumerated and configured
  • Loading branch information
rwjblue committed May 15, 2018
2 parents 5bbf4a4 + eb1efbf commit f7225a8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
10 changes: 10 additions & 0 deletions addon-test-support/@ember/test-helpers/setup-context.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,15 @@ export default function(context, options = {}) {
})
.then(owner => {
Object.defineProperty(context, 'owner', {
configurable: true,
enumerable: true,
value: owner,
writable: false,
});

Object.defineProperty(context, 'set', {
configurable: true,
enumerable: true,
value(key, value) {
let ret = run(function() {
return set(context, key, value);
Expand All @@ -184,6 +188,8 @@ export default function(context, options = {}) {
});

Object.defineProperty(context, 'setProperties', {
configurable: true,
enumerable: true,
value(hash) {
let ret = run(function() {
return setProperties(context, hash);
Expand All @@ -195,13 +201,17 @@ export default function(context, options = {}) {
});

Object.defineProperty(context, 'get', {
configurable: true,
enumerable: true,
value(key) {
return get(context, key);
},
writable: false,
});

Object.defineProperty(context, 'getProperties', {
configurable: true,
enumerable: true,
value(...args) {
return getProperties(context, args);
},
Expand Down
18 changes: 16 additions & 2 deletions addon-test-support/@ember/test-helpers/setup-rendering-context.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,14 +154,26 @@ export default function setupRenderingContext(context) {
// these methods being placed on the context itself will be deprecated in
// a future version (no giant rush) to remove some confusion about which
// is the "right" way to things...
Object.defineProperty(context, 'render', { value: render, writable: false });
Object.defineProperty(context, 'render', {
configurable: true,
enumerable: true,
value: render,
writable: false,
});
Object.defineProperty(context, 'clearRender', {
configurable: true,
enumerable: true,
value: clearRender,
writable: false,
});

if (global.jQuery) {
Object.defineProperty(context, '$', { value: jQuerySelector, writable: false });
Object.defineProperty(context, '$', {
configurable: true,
enumerable: true,
value: jQuerySelector,
writable: false,
});
}

// When the host app uses `setApplication` (instead of `setResolver`) the event dispatcher has
Expand Down Expand Up @@ -194,6 +206,8 @@ export default function setupRenderingContext(context) {
})
.then(() => {
Object.defineProperty(context, 'element', {
configurable: true,
enumerable: true,
// ensure the element is based on the wrapping toplevel view
// Ember still wraps the main application template with a
// normal tagged view
Expand Down

0 comments on commit f7225a8

Please sign in to comment.