Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <title>Components with Embedded Components</title>
  <meta name="description" content="guide: testing-components-6" />
  <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">
    <h2>My Photos</h2>
    {{#my-album title="Cats"}}
      {{my-kitten width="200" height="300"}}
      {{my-kitten width="100" height="100"}}
      {{my-kitten width="50" height="50"}}
    {{/my-album}}
  </script>
  
</body>
</html>
 
/* Put your CSS here */
html, body {
    margin: 10px;
}
 
/*=================== APP ====================*/
App = Ember.Application.create();
App.MyAlbumComponent = Ember.Component.extend({
  tagName: 'section',
  layout: Ember.Handlebars.compile(
      "<section>" +
      "  <h3>{{title}}</h3>" +
      "  {{yield}}" +
      "</section>"
  ),
  titleBinding: ['title']
});
App.MyKittenComponent = Ember.Component.extend({
  tagName: 'img',
  attributeBindings: ['width', 'height', 'src'],
  src: function() {
    return 'http://placekitten.com/' + this.get('width') + '/' + this.get('height');
  }.property('width', 'height')
});
/*=================== TESTS ====================*/
emq.globalize();
App.setupForTesting();
App.injectTestHelpers();
setResolver(Ember.DefaultResolver.create({ namespace: App }));
App.rootElement = '#ember-testing';
moduleForComponent('my-album', 'MyAlbumComponent', {
  needs: ['component:my-kitten']
});
test('renders kittens', function() {
  expect(2);
  
  // component instance
  var component = this.subject({
    template: Ember.Handlebars.compile(
      '{{#my-album title="Cats"}}' +
      '  {{my-kitten width="200" height="300"}}' +
      '  {{my-kitten width="100" height="100"}}' +
      '  {{my-kitten width="50" height="50"}}' +
      '{{/my-album}}'
    )
  });
  
  // append component to the dom
  var $component = this.append();
  
  // perform assertions
  equal($component.find('h3:contains("Cats")').length, 1);
  equal($component.find('img').length, 3);
});
Output

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

Dismiss x