Code coverage report for spec/whitespace-control.js

Statements: 19.51% (8 / 41)      Branches: 100% (0 / 0)      Functions: 25% (2 / 8)      Lines: 19.51% (8 / 41)      Ignored: none     

All files » spec/ » whitespace-control.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 633 3                     3 3               3               3                                         3           3            
describe('whitespace control', function() {
  it('should strip whitespace around mustache calls', function() {
    var hash = {foo: 'bar<'};
 
    shouldCompileTo(' {{~foo~}} ', hash, 'bar&lt;');
    shouldCompileTo(' {{~foo}} ', hash, 'bar&lt; ');
    shouldCompileTo(' {{foo~}} ', hash, ' bar&lt;');
 
    shouldCompileTo(' {{~&foo~}} ', hash, 'bar<');
    shouldCompileTo(' {{~{foo}~}} ', hash, 'bar<');
  });
 
  describe('blocks', function() {
    it('should strip whitespace around simple block calls', function() {
      var hash = {foo: 'bar<'};
 
      shouldCompileTo(' {{~#if foo~}} bar {{~/if~}} ', hash, 'bar');
      shouldCompileTo(' {{#if foo~}} bar {{/if~}} ', hash, ' bar ');
      shouldCompileTo(' {{~#if foo}} bar {{~/if}} ', hash, ' bar ');
      shouldCompileTo(' {{#if foo}} bar {{/if}} ', hash, '  bar  ');
    });
    it('should strip whitespace around inverse block calls', function() {
      var hash = {};
 
      shouldCompileTo(' {{~^if foo~}} bar {{~/if~}} ', hash, 'bar');
      shouldCompileTo(' {{^if foo~}} bar {{/if~}} ', hash, ' bar ');
      shouldCompileTo(' {{~^if foo}} bar {{~/if}} ', hash, ' bar ');
      shouldCompileTo(' {{^if foo}} bar {{/if}} ', hash, '  bar  ');
    });
    it('should strip whitespace around complex block calls', function() {
      var hash = {foo: 'bar<'};
 
      shouldCompileTo('{{#if foo~}} bar {{~^~}} baz {{~/if}}', hash, 'bar');
      shouldCompileTo('{{#if foo~}} bar {{^~}} baz {{/if}}', hash, 'bar ');
      shouldCompileTo('{{#if foo}} bar {{~^~}} baz {{~/if}}', hash, ' bar');
      shouldCompileTo('{{#if foo}} bar {{^~}} baz {{/if}}', hash, ' bar ');
 
      shouldCompileTo('{{#if foo~}} bar {{~else~}} baz {{~/if}}', hash, 'bar');
 
      hash = {};
 
      shouldCompileTo('{{#if foo~}} bar {{~^~}} baz {{~/if}}', hash, 'baz');
      shouldCompileTo('{{#if foo}} bar {{~^~}} baz {{/if}}', hash, 'baz ');
      shouldCompileTo('{{#if foo~}} bar {{~^}} baz {{~/if}}', hash, ' baz');
      shouldCompileTo('{{#if foo~}} bar {{~^}} baz {{/if}}', hash, ' baz ');
 
      shouldCompileTo('{{#if foo~}} bar {{~else~}} baz {{~/if}}', hash, 'baz');
    });
  });
 
  it('should strip whitespace around partials', function() {
    shouldCompileToWithPartials('foo {{~> dude~}} ', [{}, {}, {dude: 'bar'}], true, 'foobar');
    shouldCompileToWithPartials('foo {{> dude~}} ', [{}, {}, {dude: 'bar'}], true, 'foo bar');
    shouldCompileToWithPartials('foo {{> dude}} ', [{}, {}, {dude: 'bar'}], true, 'foo bar ');
  });
 
  it('should only strip whitespace once', function() {
    var hash = {foo: 'bar'};
 
    shouldCompileTo(' {{~foo~}} {{foo}} {{foo}} ', hash, 'barbar bar ');
  });
});