Skip to content

Commit

Permalink
test: reads('task.last.value') tracked prop interop
Browse files Browse the repository at this point in the history
  • Loading branch information
buschtoens committed Jun 3, 2019
1 parent 47d5de7 commit 89b92dd
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 2 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ env:
- EMBER_TRY_SCENARIO=ember-beta
- EMBER_TRY_SCENARIO=ember-canary
- EMBER_TRY_SCENARIO=ember-canary-dev-browser
- EMBER_TRY_SCENARIO=ember-canary-tracked-properties
- EMBER_TRY_SCENARIO=ember-default

matrix:
Expand Down
11 changes: 11 additions & 0 deletions config/ember-try.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,17 @@ module.exports = function() {
}
}
},
{
name: 'ember-canary-tracked-properties',
npm: {
devDependencies: {
'ember-source': urls[2]
}
},
env: {
EMBER_METAL_TRACKED_PROPERTIES: true
}
},
{
name: 'ember-default',
npm: {
Expand Down
5 changes: 3 additions & 2 deletions tests/dummy/config/environment.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ module.exports = function(environment) {
locationType: 'auto',
EmberENV: {
FEATURES: {
// Here you can enable experimental features on an ember canary build
// e.g. 'with-controller': true
EMBER_METAL_TRACKED_PROPERTIES: Boolean(
process.env.EMBER_METAL_TRACKED_PROPERTIES
)
},
EXTEND_PROTOTYPES: {
// Prevent Ember Data from overriding Date.parse.
Expand Down
45 changes: 45 additions & 0 deletions tests/integration/reads-last-value-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render, settled } from '@ember/test-helpers';
import hbs from 'htmlbars-inline-precompile';
import { waitForQueue, task } from 'ember-concurrency';
import EmberObject from '@ember/object';
import { reads } from '@ember/object/computed';

module("Integration | reads('task.last.value')", function(hooks) {
setupRenderingTest(hooks);

test('Ember Object Model', async function(assert) {
this.subject = EmberObject.extend({
task: task(function*() {
yield waitForQueue('afterRender');
return 1337;
}),

otherTask: task(function*() {
yield waitForQueue('afterRender');
return 1337;
}),

lastValue: reads('task.last.value')
}).create();

await render(
hbs`reads: {{this.subject.lastValue}}; direct: {{this.subject.task.last.value}};`
);

assert.strictEqual(this.element.textContent.trim(), 'reads: ; direct: ;');

this.subject.otherTask.perform(); // toggle this line
this.subject.task.perform();

await settled();

assert.strictEqual(this.subject.task.last.value, 1337);
assert.strictEqual(this.subject.lastValue, 1337);
assert.strictEqual(
this.element.textContent.trim(),
'reads: 1337; direct: 1337;'
);
});
});

0 comments on commit 89b92dd

Please sign in to comment.