require 'test_helper' module Vedeu module DSL describe Truncate do let(:described) { Vedeu::DSL::Truncate } let(:instance) { described.new(_value, options) } let(:_value) { 'abcdefghijklmnopqrstuvwxyz' } let(:options) { { name: _name, truncate: truncate, width: width, } } let(:_name) { :vedeu_dsl_truncate } let(:truncate) { true } let(:width) { 15 } describe '#initialize' do it { instance.must_be_instance_of(described) } context 'when the value is given' do it { instance.instance_variable_get('@value').must_equal(_value) } end context 'when the value is not given' do let(:_value) {} it { instance.instance_variable_get('@value').must_equal('') } end context 'when the options are given' do it { instance.instance_variable_get('@options').must_equal(options) } end context 'when the options are not given' do let(:options) { {} } let(:expected) { { name: nil, truncate: false, width: nil, } } it { instance.instance_variable_get('@options').must_equal(expected) } end end describe '#text' do subject { instance.text } context 'when the option to truncate is set to true' do context 'when the width option is given' do let(:expected) { 'abcdefghijklmno' } it { subject.must_equal(expected) } end context 'when the width option is not given' do let(:width) {} context 'when the name option is given' do let(:geometry) { Vedeu::Geometries::Geometry.new(name: _name, width: 20) } let(:expected) { 'abcdefghijklmnopqrst' } before { Vedeu.geometries.stubs(:by_name).returns(geometry) } it { subject.must_equal(expected) } end context 'when the name option is not given' do let(:_name) {} it { subject.must_equal(_value) } end end end context 'when the option to truncate is set to false' do let(:truncate) { false } it { subject.must_equal(_value) } end end end # Truncate end # DSL end # Vedeu