From 7c5d5b0417ad49235aa4ff0aecdd281676d39a51 Mon Sep 17 00:00:00 2001 From: Thibault Jouan Date: Tue, 13 Aug 2013 22:45:11 +0000 Subject: [PATCH] Improve Recipe::DSL#initialize spec Fix current examples by testing assignations, and add missing example about @tasks assignation. --- spec/producer/core/recipe/dsl_spec.rb | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/spec/producer/core/recipe/dsl_spec.rb b/spec/producer/core/recipe/dsl_spec.rb index fe51f05..eb62a63 100644 --- a/spec/producer/core/recipe/dsl_spec.rb +++ b/spec/producer/core/recipe/dsl_spec.rb @@ -9,19 +9,22 @@ module Producer::Core subject(:dsl) { Recipe::DSL.new &code } describe '#initialize' do - context 'when a string of code is given as argument' do - subject(:dsl) { Recipe::DSL.new 'nil' } + it 'assigns no task' do + expect(dsl.instance_eval { @tasks }).to be_empty + end - it 'returns the DSL instance' do - expect(dsl).to be_a Recipe::DSL + context 'when a string of code is given as argument' do + let(:code) { 'some_code' } + subject(:dsl) { Recipe::DSL.new(code) } + + it 'assigns the string of code' do + expect(dsl.instance_eval { @code }).to eq code end end context 'when a code block is given as argument' do - subject(:dsl) { Recipe::DSL.new proc { } } - - it 'returns the DSL instance' do - expect(dsl).to be_a Recipe::DSL + it 'assigns the code block' do + expect(dsl.instance_eval { @block }).to be code end end end