samedi 25 juillet 2015

Ember Integration Test for Closure Actions

In Ember-CLI 1.13.1, I have the following integration test in my component:

import { moduleForComponent, test } from 'ember-qunit';
import hbs from 'htmlbars-inline-precompile';

moduleForComponent('category-tabs', 'Integration | Component | category tabs', {
  integration: true
});

test('tapping button fires an external action', function(assert) {
  this.on('onTabTouch', function(value) {
    assert.equal(value, 'Expense');
  });

  this.render(hbs`
    {{category-tabs onTabTouch=(action "onTabTouch")}}
  `);

  this.$('button:first').click();
});

Then in my component, I have this action:

import Ember from 'ember';

export default Ember.Component.extend({
  actions: {
    handleTabTouch(tab) {
      this.attrs.onTabTouch(tab);
    }
  }
});

My test keeps on saying this:

An action named 'onTabTouch' was not found in [object Object].

How do I test a closure action? I also tried:

this.set('onTabTouch', function(value) {
  assert.equal(value, 'Expense');
});

And it didn't work.




Aucun commentaire:

Enregistrer un commentaire