-
Notifications
You must be signed in to change notification settings - Fork 10
/
copy.feature
82 lines (72 loc) · 2.84 KB
/
copy.feature
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
Feature: Copy files
In order to copy files to another location when I change them
As a developer
I want to use guard-copy
Scenario: Guardfile template
When I run `guard init copy`
Then the file "Guardfile" should contain:
"""
# Any files created or modified in the 'source' directory
# will be copied to the 'target' directory. Update the
# guard as appropriate for your needs.
guard :copy, :from => 'source', :to => 'target'
"""
Scenario: Copy a new file
Given a directory named "source"
And a directory named "target"
And I have run guard with this Guardfile:
"""
guard :copy, :from => 'source', :to => 'target'
"""
When I create a file named "source/foo"
Then "source/foo" should be copied to "target/foo"
Scenario: Copy an updated file
Given a directory named "target"
And an empty file named "source/foo"
And I have run guard with this Guardfile:
"""
guard :copy, :from => 'source', :to => 'target'
"""
When I append to "source/foo" with "xyz"
Then "source/foo" should be copied to "target/foo"
Scenario: Copy a file to two targets
Given a directory named "source"
And a directory named "target_one"
And a directory named "target_two"
And I have run guard with this Guardfile:
"""
guard :copy, :from => 'source', :to => ['target_one', 'target_two']
"""
When I create a file named "source/foo"
Then "source/foo" should be copied to "target_one/foo"
And "source/foo" should be copied to "target_two/foo"
Scenario: Wildcard target
Given a directory named "source"
And a directory named "target_one"
And a directory named "target_two"
And I have run guard with this Guardfile:
"""
guard :copy, :from => 'source', :to => 'target*'
"""
When I create a file named "source/foo"
Then "source/foo" should be copied to "target_one/foo"
And "source/foo" should be copied to "target_two/foo"
Scenario: Newest duplicate option
Given a directory named "source"
And a directory named "target_older" created in 1978
And a directory named "target_newer" created in 2012
And I have run guard with this Guardfile:
"""
guard :copy, :from => 'source', :to => 'target*', :glob => :newest
"""
When I create a file named "source/foo"
Then "source/foo" should be copied to "target_newer/foo"
And "source/foo" should not be copied to "target_older/foo"
Scenario: Create target directory on demand
Given a directory named "source/nes/ted/dir/ectory"
And I have run guard with this Guardfile:
"""
guard :copy, :from => 'source', :to => 'target', :mkpath => true
"""
When I create a file named "source/nes/ted/dir/ectory/foo"
Then "source/nes/ted/dir/ectory/foo" should be copied to "target/nes/ted/dir/ectory/foo"