1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
Feature: Move file/directory
If you need to move some files/directories you can use the `#move`-method
command. If multiple arguments are given, the last one needs to be a directory.
Background:
Given I use a fixture named "cli-app"
Scenario: Non-existing destination
Given a file named "spec/cd_spec.rb" with:
"""ruby
require 'spec_helper'
RSpec.describe 'Move', :type => :aruba do
let(:old_location) { 'old_dir.d' }
let(:new_location) { 'new_dir.d' }
before(:each) do
create_directory old_location
move old_location, new_location
end
it { expect(new_location).to be_an_existing_directory }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Existing destination
Given a file named "spec/cd_spec.rb" with:
"""ruby
require 'spec_helper'
RSpec.describe 'Move', :type => :aruba do
let(:old_location) { 'old_dir.d' }
let(:new_location) { 'new_dir.d' }
before(:each) do
create_directory old_location
create_directory new_location
move old_location, new_location
end
it { expect(File.join(new_location, old_location)).to be_an_existing_directory }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Source is fixture path
Given a file named "spec/cd_spec.rb" with:
"""ruby
require 'spec_helper'
RSpec.describe 'Move', :type => :aruba do
let(:old_location) { '%/old_dir.d' }
let(:new_location) { 'new_dir.d' }
it { expect { move old_location, new_location }.to raise_error ArgumentError, /fixture/ }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Destination is fixture path
Given a file named "spec/cd_spec.rb" with:
"""ruby
require 'spec_helper'
RSpec.describe 'Move', :type => :aruba do
let(:old_location) { 'old_dir.d' }
let(:new_location) { '%/new_dir.d' }
it { expect { move old_location, new_location }.to raise_error ArgumentError, /fixture/ }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Multiple sources and destination is directory
Given a file named "spec/cd_spec.rb" with:
"""ruby
require 'spec_helper'
RSpec.describe 'Move', :type => :aruba do
let(:old_location) { %w(old_dir1.d old_dir2.d) }
let(:new_location) { 'new_dir.d' }
before :each do
old_location.each { |l| create_directory l }
move old_location, new_location
end
it { expect(old_location.map { |l| File.join(new_location, l) }).to all be_an_existing_directory }
end
"""
When I run `rspec`
Then the specs should all pass
Scenario: Multiple sources and destination is file
Given a file named "spec/cd_spec.rb" with:
"""ruby
require 'spec_helper'
RSpec.describe 'Move', :type => :aruba do
let(:old_location) { %w(old_dir1.d old_dir2.d) }
let(:new_location) { 'new_file.txt' }
before :each do
old_location.each { |l| create_directory l }
touch new_location
end
it { expect { move old_location, new_location }.to raise_error ArgumentError, /Multiple sources/ }
end
"""
When I run `rspec`
Then the specs should all pass
|