Skip to content

Commit

Permalink
Fix checkbox issues, closes indexiatech#36
Browse files Browse the repository at this point in the history
  • Loading branch information
pedrokiefer committed Jun 5, 2015
1 parent cf3b5b5 commit 44d581e
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 1 deletion.
2 changes: 1 addition & 1 deletion addon/components/em-checkbox.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export default FormGroupComponent.extend({
yieldInLabel: true,
controlView: Ember.Checkbox.extend(ControlMixin, {
"class": false,
model: Ember.computed.alias('form.model'),
model: Ember.computed.alias('mainComponent.model'),
propertyName: Ember.computed.alias('mainComponent.propertyName'),
init: function() {
this._super();
Expand Down
71 changes: 71 additions & 0 deletions tests/unit/components/em-form-checkbox-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import {
moduleForComponent,
test
} from 'ember-qunit';
import Ember from 'ember';

moduleForComponent('em-form', 'em-form checkbox', {
// Specify the other units that are required for this test
needs: ['component:form-group', 'component:form-group-control',
'component:control-within-label', 'component:em-form-label',
'component:em-checkbox']
});

var someModel = Ember.Object.create({
userAgree: false,
errors: Ember.Object.create(),
validate() {
var promise = new Ember.RSVP.Promise((resolve) => {
resolve('ok!');
});
return promise;
}
});

test('a checkbox clicked updates its model', function(assert) {
assert.expect(1);

var component = this.subject({
submitButton: false,
targetObject: Ember.Controller.create({}),
model: someModel,
showErrorsOnFocusIn: true,
template: Ember.HTMLBars.compile('{{em-checkbox property="userAgree" label="label:"}}')
});

this.render();

Ember.run(() => {
Ember.$(component.element).find('input').click();
});

Ember.run(() => {
assert.ok(someModel.get('userAgree'), "Checkbox click");
// reset model after assertion
someModel.set('userAgree', false);
});
});

test('a checkbox without a label updates data', function(assert) {
assert.expect(1);

var component = this.subject({
submitButton: false,
targetObject: Ember.Controller.create({}),
model: someModel,
showErrorsOnFocusIn: true,
template: Ember.HTMLBars.compile('Something here: {{em-checkbox property="userAgree"}}')
});

this.render();

Ember.run(() => {
Ember.$(component.element).find('input').click();
});

Ember.run(() => {
assert.ok(someModel.get('userAgree'), "Checkbox click");
// reset model after assertion
someModel.set('userAgree', false);
});
});

0 comments on commit 44d581e

Please sign in to comment.