Skip to content

Instantly share code, notes, and snippets.

@bastimeyer
Created October 1, 2018 10:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bastimeyer/8c7201ea559a9591219ea58edce56d52 to your computer and use it in GitHub Desktop.
Save bastimeyer/8c7201ea559a9591219ea58edce56d52 to your computer and use it in GitHub Desktop.
New Twiddle
import { module, test, setupTest } from "ember-qunit";
import { default as EmberObject, computed, observer, set } from "@ember/object";
import { addObserver } from "@ember/object/observers";
module( "value observer", function( hooks ) {
setupTest( hooks );
hooks.beforeEach(function() {
// no value observer
this.owner.register( "obj:a", EmberObject.extend({
value: "default"
}) );
// value observer added on init
this.owner.register( "obj:b", EmberObject.extend({
value: "default",
init() {
this._super( ...arguments );
addObserver( this, "value", () => {} );
}
}) );
// observer function
this.owner.register( "obj:c", EmberObject.extend({
value: "default",
_valueObserver: observer( "value", function() {} )
}) );
// observer function and computed property
this.owner.register( "obj:d", EmberObject.extend({
value: computed( () => "default" ),
_valueObserver: observer( "value", function() {} )
}) );
});
test( "value", function( assert ) {
const a = this.owner.lookup( "obj:a" );
const b = this.owner.lookup( "obj:b" );
const c = this.owner.lookup( "obj:c" );
const d = this.owner.lookup( "obj:d" );
assert.strictEqual( a.value, "default", "a.value === 'default'" );
assert.strictEqual( b.value, "default", "b.value === 'default'" );
assert.strictEqual( c.value, "default", "c.value === 'default'" );
assert.strictEqual( d.value, "default", "d.value === 'default'" );
set( a, "value", 123 );
assert.strictEqual( a.value, 123, "a.value === 123" );
set( b, "value", 123 );
assert.strictEqual( b.value, 123, "b.value === 123" );
set( c, "value", 123 );
assert.strictEqual( c.value, 123, "c.value === 123" );
set( d, "value", 123 );
assert.strictEqual( d.value, 123, "d.value === 123" );
set( a, "value", undefined );
assert.strictEqual( a.value, undefined, "a.value === undefined" );
set( b, "value", undefined );
assert.strictEqual( b.value, undefined, "b.value === undefined" );
set( c, "value", undefined );
assert.strictEqual( c.value, undefined, "c.value === undefined" );
set( d, "value", undefined );
assert.strictEqual( d.value, undefined, "d.value === undefined" );
});
});
import { setResolver } from 'ember-qunit';
import { start } from 'ember-cli-qunit';
import Resolver from '../resolver';
import config from '../config/environment';
setResolver(Resolver.create({
namespace: {
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix
}
}));
start();
{
"version": "0.15.0",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": true
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
"ember": "3.2.2",
"ember-template-compiler": "3.2.2",
"ember-testing": "3.2.2"
},
"addons": {
"ember-data": "3.2.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment