Sha256: 0322ff0df71e01f2a167edf5b325b9fe7c43775a76815b9bb48f0cd67c255004
Contents?: true
Size: 1.46 KB
Versions: 2
Compression:
Stored size: 1.46 KB
Contents
require 'dry/view/part' RSpec.describe Dry::View::ValuePart do subject(:part) do Dry::View::ValuePart.new(renderer, data) end let(:name) { :user } let(:data) { { user: { email: 'jane@doe.org' } } } let(:renderer) { double(:renderer) } describe '#[]' do it 'gives access to data values' do expect(part[:email]).to eql('jane@doe.org') end end describe '#render' do it 'renders given template' do expect(renderer).to receive(:render).with('row.slim', part) part.render('row.slim') end end describe '#template?' do it 'asks renderer if there is a valid template for a given identifier' do expect(renderer).to receive(:lookup).with('_row').and_return('row.slim') expect(part.template?('row')).to eql('row.slim') end end describe '#method_missing' do it 'renders template' do expect(renderer).to receive(:lookup).with('_row').and_return('_row.slim') expect(renderer).to receive(:render).with('_row.slim', part) part.row end it 'renders template within another when block is passed' do block = proc { part.fields } expect(renderer).to receive(:lookup).with('_form').and_return('form.slim') expect(renderer).to receive(:lookup).with('_fields').and_return('fields.slim') expect(renderer).to receive(:render).with('form.slim', part, &block) expect(renderer).to receive(:render).with('fields.slim', part) part.form(block) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-view-0.1.1 | spec/unit/value_part_spec.rb |
dry-view-0.1.0 | spec/unit/value_part_spec.rb |