spec/integration/push_spec.rb in braid-1.0.22 vs spec/integration/push_spec.rb in braid-1.1.0
- old
+ new
@@ -108,18 +108,18 @@
@repository_dir = create_git_repo_from_fixture('shiny', :name => 'Some body', :email => 'somebody@example.com')
@vendor_repository_dir = create_git_repo_from_fixture('skit1')
@file_name = 'layouts/layout.liquid'
in_dir(@repository_dir) do
- run_command("#{BRAID_BIN} add #{@vendor_repository_dir} --path layouts")
+ run_command("#{BRAID_BIN} add #{@vendor_repository_dir} --path layouts skit-layouts")
end
in_dir(@vendor_repository_dir) do
run_command('git config receive.denyCurrentBranch updateInstead')
end
- update_dir_from_fixture('shiny/skit1', 'skit1.1/layouts')
+ update_dir_from_fixture('shiny/skit-layouts', 'skit1.1/layouts')
in_dir(@repository_dir) do
run_command('git add *')
run_command('git commit -m "Make some changes to vendored files"')
end
end
@@ -128,21 +128,74 @@
it 'should push changes successfully' do
braid_output = nil
commit_message = 'Make some changes'
in_dir(@repository_dir) do
with_editor_message(commit_message) do
- braid_output = run_command("#{BRAID_BIN} push skit1")
+ braid_output = run_command("#{BRAID_BIN} push skit-layouts")
end
end
expect(braid_output).to match(/Braid: Cloning mirror with local changes./)
expect(braid_output).to match(/Make some changes/)
expect(braid_output).to match(/Braid: Pushing changes to remote branch master./)
- assert_no_diff("#{FIXTURE_PATH}/skit1.1/#{@file_name}", "#{@repository_dir}/skit1/layout.liquid")
+ assert_no_diff("#{FIXTURE_PATH}/skit1.1/#{@file_name}", "#{@repository_dir}/skit-layouts/layout.liquid")
assert_no_diff("#{FIXTURE_PATH}/skit1.1/#{@file_name}", "#{@vendor_repository_dir}/#{@file_name}")
in_dir(@vendor_repository_dir) do
run_command('git checkout master 2>&1')
+
+ assert_commit_subject(commit_message)
+ assert_commit_author('Some body')
+ assert_commit_email('somebody@example.com')
+ end
+ end
+ end
+ end
+
+ describe 'from a git repository braided into a single file' do
+ before do
+ @repository_dir = create_git_repo_from_fixture('shiny', :name => 'Some body', :email => 'somebody@example.com')
+ @vendor_repository_dir = create_git_repo_from_fixture('skit1')
+ @file_name = 'layouts/layout.liquid'
+
+ in_dir(@repository_dir) do
+ run_command("#{BRAID_BIN} add #{@vendor_repository_dir} --path layouts/layout.liquid skit-layout.liquid")
+ end
+
+ in_dir(@vendor_repository_dir) do
+ run_command('git config receive.denyCurrentBranch updateInstead')
+ end
+
+ FileUtils.cp_r(File.join(FIXTURE_PATH, 'skit1.1x') + '/layouts/layout.liquid', "#{@repository_dir}/skit-layout.liquid",
+ {preserve: true})
+ in_dir(@repository_dir) do
+ run_command('git add *')
+ run_command('git commit -m "Make some changes to vendored files"')
+ end
+ end
+
+ context 'with remote updtodate' do
+ it 'should push changes successfully' do
+ braid_output = nil
+ commit_message = 'Make some changes'
+ in_dir(@repository_dir) do
+ with_editor_message(commit_message) do
+ braid_output = run_command("#{BRAID_BIN} push skit-layout.liquid")
+ end
+ end
+ expect(braid_output).to match(/Braid: Cloning mirror with local changes./)
+ expect(braid_output).to match(/Make some changes/)
+ expect(braid_output).to match(/Braid: Pushing changes to remote branch master./)
+
+ assert_no_diff("#{FIXTURE_PATH}/skit1.1x/#{@file_name}", "#{@repository_dir}/skit-layout.liquid")
+ assert_no_diff("#{FIXTURE_PATH}/skit1.1x/#{@file_name}", "#{@vendor_repository_dir}/#{@file_name}")
+
+ in_dir(@vendor_repository_dir) do
+ run_command('git checkout master 2>&1')
+
+ if filemode_enabled
+ expect(File.stat(@file_name).mode & 0100).to eq(0100)
+ end
assert_commit_subject(commit_message)
assert_commit_author('Some body')
assert_commit_email('somebody@example.com')
end