diff --git a/.gitignore b/.gitignore index 9f3f2a22..9f6bba4c 100755 --- a/.gitignore +++ b/.gitignore @@ -7,9 +7,8 @@ pkg .tmp Gemfile.lock docs -.rvmrc .rbenv-version -fixtures/test-app/build +fixtures/generator-test .*.swp build doc diff --git a/features/generator.feature b/features/generator.feature index 303a3e99..b6f1c01c 100644 --- a/features/generator.feature +++ b/features/generator.feature @@ -2,7 +2,7 @@ Feature: Generator In order to generate static assets for client Scenario: Copying template files - Given generated directory at "generator-test" - Then template files should exist at "generator-test" - And empty directories should exist at "generator-test" - And cleanup at "generator-test" \ No newline at end of file + Given a project at "generator-test" + And the project has been initialized + Then template files should exist + And empty directories should exist \ No newline at end of file diff --git a/lib/middleman/step_definitions.rb b/lib/middleman/step_definitions.rb index c1959d4e..3849750a 100644 --- a/lib/middleman/step_definitions.rb +++ b/lib/middleman/step_definitions.rb @@ -1,6 +1,7 @@ MIDDLEMAN_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__))) MIDDLEMAN_BIN_PATH = File.join(MIDDLEMAN_ROOT_PATH, "bin") +require "middleman/step_definitions/middleman_steps" require "middleman/step_definitions/builder_steps" require "middleman/step_definitions/generator_steps" require "middleman/step_definitions/server_steps" \ No newline at end of file diff --git a/lib/middleman/step_definitions/generator_steps.rb b/lib/middleman/step_definitions/generator_steps.rb index b1d8d32d..d6bb5478 100644 --- a/lib/middleman/step_definitions/generator_steps.rb +++ b/lib/middleman/step_definitions/generator_steps.rb @@ -1,30 +1,26 @@ require 'fileutils' -Given /^generated directory at "([^\"]*)"$/ do |dirname| - target = File.join(PROJECT_ROOT_PATH, "fixtures", dirname) +Given /^the project has been initialized$/ do + step %Q{the project should be cleaned up} init_cmd = File.join(MIDDLEMAN_BIN_PATH, "middleman init") - `cd #{File.dirname(target)} && #{init_cmd} #{File.basename(target)}` + `cd #{File.dirname(@target)} && #{init_cmd} #{File.basename(@target)}` end -Then /^template files should exist at "([^\"]*)"$/ do |dirname| - target = File.join(PROJECT_ROOT_PATH, "fixtures", dirname) +Then /^template files should exist$/ do template_glob = File.join(MIDDLEMAN_ROOT_PATH, "lib", "middleman", "templates", "default", "*/**/*") Dir[template_glob].each do |f| next if File.directory?(f) - File.exists?("#{target}/#{f.split('template/')[1]}").should be_true + File.exists?("#{@target}/#{f.split('template/')[1]}").should be_true end end -Then /^empty directories should exist at "([^\"]*)"$/ do |dirname| - target = File.join(PROJECT_ROOT_PATH, "fixtures", dirname) - +Then /^empty directories should exist$/ do %w(source/stylesheets source/javascripts source/images).each do |d| - File.exists?("#{target}/#{d}").should be_true + File.exists?("#{@target}/#{d}").should be_true end end -Then /^cleanup at "([^\"]*)"$/ do |dirname| - target = File.join(PROJECT_ROOT_PATH, "fixtures", dirname) - FileUtils.rm_rf(target) +Then /^the project should be cleaned up$/ do + FileUtils.rm_rf(@target) end \ No newline at end of file diff --git a/lib/middleman/step_definitions/middleman_steps.rb b/lib/middleman/step_definitions/middleman_steps.rb new file mode 100644 index 00000000..02139beb --- /dev/null +++ b/lib/middleman/step_definitions/middleman_steps.rb @@ -0,0 +1,3 @@ +Given /^a project at "([^\"]*)"$/ do |dirname| + @target = File.join(PROJECT_ROOT_PATH, "fixtures", dirname) +end \ No newline at end of file