discourse/test/javascripts/mixins/singleton_test.js

37 lines
1.5 KiB
JavaScript

module("Discourse.Singleton");
test("current", function() {
var DummyModel = Ember.Object.extend({});
DummyModel.reopenClass(Discourse.Singleton);
var current = DummyModel.current();
present(current, 'current returns the current instance');
equal(current, DummyModel.current(), 'calling it again returns the same instance');
notEqual(current, DummyModel.create({}), 'we can create other instances that are not the same as current');
});
test("currentProp reading", function() {
var DummyModel = Ember.Object.extend({});
DummyModel.reopenClass(Discourse.Singleton);
var current = DummyModel.current();
blank(DummyModel.currentProp('evil'), 'by default attributes are blank');
current.set('evil', 'trout');
equal(DummyModel.currentProp('evil'), 'trout', 'after changing the instance, the value is set');
});
test("currentProp writing", function() {
var DummyModel = Ember.Object.extend({});
DummyModel.reopenClass(Discourse.Singleton);
blank(DummyModel.currentProp('adventure'), 'by default attributes are blank');
var result = DummyModel.currentProp('adventure', 'time');
equal(result, 'time', 'it returns the new value');
equal(DummyModel.currentProp('adventure'), 'time', 'after calling currentProp the value is set');
DummyModel.currentProp('count', 0);
equal(DummyModel.currentProp('count'), 0, 'we can set the value to 0');
DummyModel.currentProp('adventure', null);
equal(DummyModel.currentProp('adventure'), null, 'we can set the value to null');
});