Skip to content

Instantly share code, notes, and snippets.

@aquamme
Last active May 25, 2016 20:13
Show Gist options
  • Save aquamme/0daf214d0a9a0a30f2584f54f369d153 to your computer and use it in GitHub Desktop.
Save aquamme/0daf214d0a9a0a30f2584f54f369d153 to your computer and use it in GitHub Desktop.
State leakage via class arrays/objects
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
import Resolver from '../../resolver';
import config from '../../config/environment';
const resolver = Resolver.create();
resolver.namespace = {
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix
};
export default resolver;
import resolver from './helpers/resolver';
import {
setResolver
} from 'ember-qunit';
setResolver(resolver);
import { module } from 'qunit';
import { test } from 'ember-qunit';
module('Demonstate state leakage');
var Person = Ember.Object.extend({
groceryList: ['eggs', 'tuna']
});
test('Shared array can be modified', function(assert) {
let bob = Person.create({name: 'Bob'});
bob.get('groceryList').popObject();
assert.deepEqual(bob.get('groceryList'), ['eggs']);
});
test('The array mutation persists across tests', function (assert) {
let jill = Person.create({name: 'Jill'});
assert.deepEqual(jill.get('groceryList'), ['eggs', 'tuna'], 'the mutation persists');
});
{
"version": "0.8.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": true
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.5.1",
"ember-data": "2.5.2",
"ember-template-compiler": "2.5.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment