Sha256: c830851f8c06ce2aa416e6cf5e3f93c03d213c422369ef1680fc30b70678e3e7

Contents?: true

Size: 1.92 KB

Versions: 55

Compression:

Stored size: 1.92 KB

Contents

require 'helper'

describe Temple::Filters::ControlFlow do
  before do
    @filter = Temple::Filters::ControlFlow.new
  end

  it 'should process blocks' do
    @filter.call([:block, 'loop do',
      [:static, 'Hello']
    ]).should.equal [:multi,
                     [:code, 'loop do'],
                     [:static, 'Hello'],
                     [:code, 'end']]
  end

  it 'should process if' do
    @filter.call([:if, 'condition',
      [:static, 'Hello']
    ]).should.equal [:multi,
      [:code, 'if condition'],
      [:static, 'Hello'],
      [:code, 'end']
    ]
  end

  it 'should process if with else' do
    @filter.call([:if, 'condition',
      [:static, 'True'],
      [:static, 'False']
    ]).should.equal [:multi,
      [:code, 'if condition'],
      [:static, 'True'],
      [:code, 'else'],
      [:static, 'False'],
      [:code, 'end']
    ]
  end

  it 'should create elsif' do
    @filter.call([:if, 'condition1',
      [:static, '1'],
      [:if, 'condition2',
       [:static, '2'],
       [:static, '3']]
    ]).should.equal [:multi,
      [:code, 'if condition1'],
      [:static, '1'],
      [:code, 'elsif condition2'],
      [:static, '2'],
      [:code, 'else'],
      [:static, '3'],
      [:code, 'end']
    ]
  end

  it 'should process cond' do
    @filter.call([:cond,
      ['cond1', [:exp1]],
      ['cond2', [:exp2]],
      [:else,   [:exp3]],
    ]).should.equal [:multi,
      [:code, 'case'],
      [:code, 'when cond1'],
      [:exp1],
      [:code, 'when cond2'],
      [:exp2],
      [:code, 'else'],
      [:exp3],
      [:code, 'end']
    ]
  end

  it 'should process case' do
    @filter.call([:case, 'var',
      ['Array',  [:exp1]],
      ['String', [:exp2]],
      [:else,    [:exp3]],
    ]).should.equal [:multi,
      [:code, 'case (var)'],
      [:code, 'when Array'],
      [:exp1],
      [:code, 'when String'],
      [:exp2],
      [:code, 'else'],
      [:exp3],
      [:code, 'end']
    ]
  end
end

Version data entries

55 entries across 55 versions & 6 rubygems

Version Path
temple-0.7.4 test/filters/test_control_flow.rb
temple-0.7.3 test/filters/test_control_flow.rb
temple-0.7.2 test/filters/test_control_flow.rb
temple-0.7.1 test/filters/test_control_flow.rb
temple-0.6.10 test/filters/test_control_flow.rb
temple-0.6.9 test/filters/test_control_flow.rb
temple-0.6.8 test/filters/test_control_flow.rb
temple-0.6.7 test/filters/test_control_flow.rb
temple-0.6.6 test/filters/test_control_flow.rb
temple-0.6.5 test/filters/test_control_flow.rb
temple-0.6.4 test/filters/test_control_flow.rb
temple-0.6.3 test/filters/test_control_flow.rb
temple-0.6.0 test/filters/test_control_flow.rb
temple-0.5.5 test/filters/test_control_flow.rb
temple-0.5.4 test/filters/test_control_flow.rb