Fix builder steps to properly copy configs, and add a new scenario that shows build --clean not working right when the build directory is set to a nested path. When a path is ignored, it doesn't get removed - in fact, no unused paths will get removed, this is just the easiest way to show it in a test.
This commit is contained in:
parent
4bf65e063a
commit
c5063c1e35
|
@ -3,29 +3,39 @@ Feature: Build Clean
|
||||||
Given a fixture app "clean-app"
|
Given a fixture app "clean-app"
|
||||||
And app "clean-app" is using config "empty"
|
And app "clean-app" is using config "empty"
|
||||||
And a successfully built app at "clean-app"
|
And a successfully built app at "clean-app"
|
||||||
|
Then the following files should exist:
|
||||||
|
| build/index.html |
|
||||||
|
| build/should_be_ignored.html |
|
||||||
|
| build/should_be_ignored2.html |
|
||||||
|
| build/should_be_ignored3.html |
|
||||||
And app "clean-app" is using config "complications"
|
And app "clean-app" is using config "complications"
|
||||||
|
|
||||||
Given a successfully built app at "clean-app" with flags "--clean"
|
Given a successfully built app at "clean-app" with flags "--clean"
|
||||||
When I cd to "build"
|
|
||||||
Then the following files should not exist:
|
Then the following files should not exist:
|
||||||
| should_be_ignored.html |
|
| build/should_be_ignored.html |
|
||||||
| should_be_ignored2.html |
|
| build/should_be_ignored2.html |
|
||||||
| should_be_ignored3.html |
|
| build/should_be_ignored3.html |
|
||||||
And the file "index.html" should contain "Comment in layout"
|
And the file "build/index.html" should contain "Comment in layout"
|
||||||
|
|
||||||
Scenario: Clean an app with directory indexes
|
Scenario: Clean an app with directory indexes
|
||||||
Given a successfully built app at "clean-dir-app"
|
Given a successfully built app at "clean-dir-app"
|
||||||
When I cd to "build"
|
|
||||||
Then the following files should exist:
|
Then the following files should exist:
|
||||||
| about/index.html |
|
| build/about/index.html |
|
||||||
|
|
||||||
Given a successfully built app at "clean-dir-app" with flags "--clean"
|
Given a successfully built app at "clean-dir-app" with flags "--clean"
|
||||||
When I cd to "build"
|
|
||||||
Then the following files should exist:
|
Then the following files should exist:
|
||||||
| about/index.html |
|
| build/about/index.html |
|
||||||
|
|
||||||
Scenario: Clean build an app that's never been built
|
Scenario: Clean build an app that's never been built
|
||||||
Given a successfully built app at "clean-dir-app" with flags "--clean"
|
Given a successfully built app at "clean-dir-app" with flags "--clean"
|
||||||
When I cd to "build"
|
|
||||||
Then the following files should exist:
|
Then the following files should exist:
|
||||||
| about/index.html |
|
| build/about/index.html |
|
||||||
|
|
||||||
|
Scenario: Clean build an app with newly ignored files and a nested output directory
|
||||||
|
Given a built app at "clean-nested-app"
|
||||||
|
Then a directory named "sub/dir" should exist
|
||||||
|
Then the following files should exist:
|
||||||
|
| sub/dir/about.html |
|
||||||
|
When I append to "config.rb" with "ignore 'about.html'"
|
||||||
|
Given a built app at "clean-nested-app" with flags "--clean"
|
||||||
|
Then the following files should not exist:
|
||||||
|
| sub/dir/about.html |
|
||||||
|
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
activate :directory_indexes
|
activate :directory_indexes
|
||||||
|
|
||||||
|
|
3
middleman-core/fixtures/clean-nested-app/config.rb
Normal file
3
middleman-core/fixtures/clean-nested-app/config.rb
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
set :build_dir, "sub/dir"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Fun times
|
|
@ -2,12 +2,16 @@ require 'fileutils'
|
||||||
|
|
||||||
Given /^app "([^\"]*)" is using config "([^\"]*)"$/ do |path, config_name|
|
Given /^app "([^\"]*)" is using config "([^\"]*)"$/ do |path, config_name|
|
||||||
target = File.join(PROJECT_ROOT_PATH, "fixtures", path)
|
target = File.join(PROJECT_ROOT_PATH, "fixtures", path)
|
||||||
config_path = File.join(target, "config-#{config_name}.rb")
|
config_path = File.join(current_dir, "config-#{config_name}.rb")
|
||||||
config_dest = File.join(current_dir, "config.rb")
|
config_dest = File.join(current_dir, "config.rb")
|
||||||
FileUtils.cp(config_path, config_dest)
|
FileUtils.cp(config_path, config_dest)
|
||||||
end
|
end
|
||||||
|
|
||||||
Given /^a fixture app "([^\"]*)"$/ do |path|
|
Given /^a fixture app "([^\"]*)"$/ do |path|
|
||||||
|
# This step can be reentered from several places but we don't want
|
||||||
|
# to keep re-copying and re-cd-ing into ever-deeper directories
|
||||||
|
next if File.basename(current_dir) == path
|
||||||
|
|
||||||
step %Q{a directory named "#{path}"}
|
step %Q{a directory named "#{path}"}
|
||||||
|
|
||||||
target_path = File.join(PROJECT_ROOT_PATH, "fixtures", path)
|
target_path = File.join(PROJECT_ROOT_PATH, "fixtures", path)
|
||||||
|
|
Loading…
Reference in a new issue