Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <title>Unit Testing Components: User Interaction</title>
  <meta name="description" content="guide: testing-components-2" />
  <meta charset="utf-8">
  <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.14.0.css">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  <script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v1.2.1.js"></script>
  <script src="http://builds.emberjs.com/release/ember.js"></script>
  <script src="http://code.jquery.com/qunit/qunit-1.14.0.js"></script>
  <script src="https://rawgithub.com/rpflorence/ember-qunit/master/dist/globals/main.js"></script>
</head>
<body>
  
  <div id="qunit"></div>
  <div id="ember-testing"></div>
  
  <script type="text/x-handlebars">
    {{my-foo}}
  </script>
  <script type="text/x-handlebars"
          data-template-name="components/my-foo">
    <h2>{{title}}</h2>
    <button {{action 'updateTitle'}}>Click Me</button>
  </script>
  
</body>
</html>
 
/* Put your CSS here */
html, body {
    margin: 10px;
}
 
/*=================== APP ====================*/
App = Ember.Application.create();
App.MyFooComponent = Em.Component.extend({
  title:'Hello World',
  
  actions:{
    updateTitle: function(){
      this.set('title', 'Hello Ember World');
    }
  }
});
/*=================== TESTS ====================*/
emq.globalize();
App.setupForTesting();
App.injectTestHelpers();
App.rootElement = '#ember-testing';
setResolver(Ember.DefaultResolver.create({namespace: App}));
moduleForComponent('my-foo', 'MyFooComponent');
test('clicking link updates the title', function() {
  var component = this.subject();
  
  // append the component to the DOM
  this.append();
  
  // assert default state
  equal(find('h2').text(), 'Hello World');
  
  // perform click action
  click('button');
  
  andThen(function() { // wait for async helpers to complete
    equal(find('h2').text(), 'Hello Ember World');
  });
});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x