git-pivotal-tracker 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +5 -0
- data/.rspec +2 -0
- data/.rvmrc +1 -0
- data/.travis.yml +3 -0
- data/CHANGELOG +45 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +74 -0
- data/LICENSE +21 -0
- data/Rakefile +24 -0
- data/VERSION +1 -0
- data/bin/git-accept +7 -0
- data/bin/git-block +7 -0
- data/bin/git-finish +7 -0
- data/bin/git-info +7 -0
- data/bin/git-start +8 -0
- data/bin/git-unblock +7 -0
- data/features/accept.feature +140 -0
- data/features/block.feature +94 -0
- data/features/finish.feature +119 -0
- data/features/info.feature +99 -0
- data/features/start.feature +113 -0
- data/features/step_definitions/steps.rb +114 -0
- data/features/support/dsl/assertions.rb +11 -0
- data/features/support/dsl/data.rb +11 -0
- data/features/support/dsl/pivotal.rb +76 -0
- data/features/support/env.rb +6 -0
- data/features/support/git-pivotal.rb +69 -0
- data/features/test_repo/origin.git/COMMIT_EDITMSG +1 -0
- data/features/test_repo/origin.git/HEAD +1 -0
- data/features/test_repo/origin.git/config +8 -0
- data/features/test_repo/origin.git/description +1 -0
- data/features/test_repo/origin.git/hooks/applypatch-msg.sample +15 -0
- data/features/test_repo/origin.git/hooks/commit-msg.sample +24 -0
- data/features/test_repo/origin.git/hooks/post-commit.sample +8 -0
- data/features/test_repo/origin.git/hooks/post-receive.sample +15 -0
- data/features/test_repo/origin.git/hooks/post-update.sample +8 -0
- data/features/test_repo/origin.git/hooks/pre-applypatch.sample +14 -0
- data/features/test_repo/origin.git/hooks/pre-commit.sample +46 -0
- data/features/test_repo/origin.git/hooks/pre-rebase.sample +169 -0
- data/features/test_repo/origin.git/hooks/prepare-commit-msg.sample +36 -0
- data/features/test_repo/origin.git/hooks/update.sample +128 -0
- data/features/test_repo/origin.git/index +0 -0
- data/features/test_repo/origin.git/info/exclude +6 -0
- data/features/test_repo/origin.git/logs/HEAD +1 -0
- data/features/test_repo/origin.git/logs/refs/heads/master +1 -0
- data/features/test_repo/origin.git/objects/0c/6f7b1384910d1a2f137590095f008a06c7e00c +0 -0
- data/features/test_repo/origin.git/objects/10/ecf2b7ce989f01f3f7266e712b48d9275f2635 +0 -0
- data/features/test_repo/origin.git/objects/a5/71d56305df09fb060f6ccb730b46080d305beb +0 -0
- data/features/test_repo/origin.git/refs/heads/master +1 -0
- data/features/test_repo/readme +1 -0
- data/features/unblock.feature +68 -0
- data/git-pivotal-tracker.gemspec +27 -0
- data/lib/commands/accept.rb +76 -0
- data/lib/commands/base.rb +128 -0
- data/lib/commands/block.rb +59 -0
- data/lib/commands/bug.rb +19 -0
- data/lib/commands/card.rb +32 -0
- data/lib/commands/chore.rb +19 -0
- data/lib/commands/feature.rb +19 -0
- data/lib/commands/finish.rb +59 -0
- data/lib/commands/info.rb +58 -0
- data/lib/commands/map.rb +10 -0
- data/lib/commands/pick.rb +76 -0
- data/lib/commands/start.rb +35 -0
- data/lib/commands/unblock.rb +55 -0
- data/lib/git-pivotal-tracker.rb +11 -0
- data/readme.markdown +95 -0
- data/spec/commands/base_spec.rb +151 -0
- data/spec/commands/bug_spec.rb +24 -0
- data/spec/commands/chore_spec.rb +24 -0
- data/spec/commands/feature_spec.rb +24 -0
- data/spec/commands/finish_spec.rb +125 -0
- data/spec/commands/map_spec.rb +14 -0
- data/spec/commands/start_spec.rb +29 -0
- data/spec/factories.rb +13 -0
- data/spec/factory.rb +26 -0
- data/spec/spec_helper.rb +24 -0
- metadata +251 -0
@@ -0,0 +1,119 @@
|
|
1
|
+
Feature: git finish
|
2
|
+
|
3
|
+
In order to finish the card for the current topic branch you can issue the following
|
4
|
+
commands:
|
5
|
+
|
6
|
+
git finish
|
7
|
+
git finish <options>
|
8
|
+
|
9
|
+
Supported options:
|
10
|
+
-k <api_key> - specify the Pivotal API key to use. Overrides configuration.
|
11
|
+
-p <project_id> - specify the Pivotal project id to use. Overrides configuration.
|
12
|
+
|
13
|
+
This will do the following:
|
14
|
+
* mark the card as finished in Pivotal
|
15
|
+
* push the topic branch to origin
|
16
|
+
* switch to 'acceptance' integration branch, run git pull, then merge in topic branch
|
17
|
+
* push 'acceptance' integration branch
|
18
|
+
|
19
|
+
Related git configuration settings:
|
20
|
+
* pivotal.acceptance-branch - this is where finished cards are merged. Defaults to acceptance.
|
21
|
+
|
22
|
+
Background:
|
23
|
+
Given I have a started Pivotal Tracker feature
|
24
|
+
And I am on the "CURRENT_CARD-feature" branch
|
25
|
+
|
26
|
+
Scenario: Executing with no settings
|
27
|
+
When I run `git-finish`
|
28
|
+
Then the output should contain:
|
29
|
+
"""
|
30
|
+
Pivotal Tracker API Token and Project ID are required
|
31
|
+
"""
|
32
|
+
And the exit status should be 1
|
33
|
+
|
34
|
+
Scenario: Executing with inline settings
|
35
|
+
When I run `git-finish -k PIVOTAL_API_KEY -p PIVOTAL_TEST_PROJECT`
|
36
|
+
Then the output should contain:
|
37
|
+
"""
|
38
|
+
Marking Story CURRENT_CARD as finished...
|
39
|
+
Pushing CURRENT_CARD-feature to origin
|
40
|
+
Pulling acceptance...
|
41
|
+
Merging CURRENT_CARD-feature into acceptance
|
42
|
+
Pushing acceptance to origin
|
43
|
+
Now on acceptance.
|
44
|
+
"""
|
45
|
+
And I should be on the "acceptance" branch
|
46
|
+
|
47
|
+
Scenario: Executing with git configuration
|
48
|
+
Given a file named ".gitconfig" with:
|
49
|
+
"""
|
50
|
+
[pivotal]
|
51
|
+
api-token = PIVOTAL_API_KEY
|
52
|
+
full-name = PIVOTAL_USER
|
53
|
+
project-id = PIVOTAL_TEST_PROJECT
|
54
|
+
"""
|
55
|
+
When I run `git-finish -k PIVOTAL_API_KEY -p PIVOTAL_TEST_PROJECT`
|
56
|
+
Then the output should contain:
|
57
|
+
"""
|
58
|
+
Marking Story CURRENT_CARD as finished...
|
59
|
+
Pushing CURRENT_CARD-feature to origin
|
60
|
+
Pulling acceptance...
|
61
|
+
Merging CURRENT_CARD-feature into acceptance
|
62
|
+
Pushing acceptance to origin
|
63
|
+
Now on acceptance.
|
64
|
+
"""
|
65
|
+
And I should be on the "acceptance" branch
|
66
|
+
|
67
|
+
Scenario: Executing from a misnamed branch
|
68
|
+
Given I am on the "missing-an-id" branch
|
69
|
+
When I run `git-finish -k PIVOTAL_API_KEY -p PIVOTAL_TEST_PROJECT`
|
70
|
+
Then the output should contain:
|
71
|
+
"""
|
72
|
+
Branch name must contain a Pivotal Tracker story id
|
73
|
+
"""
|
74
|
+
And the exit status should be 1
|
75
|
+
|
76
|
+
Scenario: Specifying an integration branch in Git configuration
|
77
|
+
Given I have a "develop" branch
|
78
|
+
And a file named ".gitconfig" with:
|
79
|
+
"""
|
80
|
+
[pivotal]
|
81
|
+
api-token = PIVOTAL_API_KEY
|
82
|
+
full-name = PIVOTAL_USER
|
83
|
+
acceptance-branch = develop
|
84
|
+
project-id = PIVOTAL_TEST_PROJECT
|
85
|
+
"""
|
86
|
+
When I run `git-finish -k PIVOTAL_API_KEY -p PIVOTAL_TEST_PROJECT`
|
87
|
+
Then the output should contain:
|
88
|
+
"""
|
89
|
+
Marking Story CURRENT_CARD as finished...
|
90
|
+
Pushing CURRENT_CARD-feature to origin
|
91
|
+
Pulling develop...
|
92
|
+
Merging CURRENT_CARD-feature into develop
|
93
|
+
Pushing develop to origin
|
94
|
+
Now on develop.
|
95
|
+
"""
|
96
|
+
And I should be on the "develop" branch
|
97
|
+
|
98
|
+
Scenario: Closing chore stories
|
99
|
+
Given I have a started Pivotal Tracker chore
|
100
|
+
And I am on the "CURRENT_CARD-chore" branch
|
101
|
+
And a file named ".gitconfig" with:
|
102
|
+
"""
|
103
|
+
[pivotal]
|
104
|
+
api-token = PIVOTAL_API_KEY
|
105
|
+
full-name = PIVOTAL_USER
|
106
|
+
project-id = PIVOTAL_TEST_PROJECT
|
107
|
+
"""
|
108
|
+
When I run `git-finish -k PIVOTAL_API_KEY -p PIVOTAL_TEST_PROJECT`
|
109
|
+
Then the output should contain:
|
110
|
+
"""
|
111
|
+
Marking Story CURRENT_CARD as finished...
|
112
|
+
Pushing CURRENT_CARD-chore to origin
|
113
|
+
Pulling acceptance...
|
114
|
+
Merging CURRENT_CARD-chore into acceptance
|
115
|
+
Pushing acceptance to origin
|
116
|
+
Now on acceptance.
|
117
|
+
"""
|
118
|
+
And I should be on the "acceptance" branch
|
119
|
+
|
@@ -0,0 +1,99 @@
|
|
1
|
+
Feature: git info
|
2
|
+
|
3
|
+
In order to get information about a specific card you can issue one of the following
|
4
|
+
commands:
|
5
|
+
|
6
|
+
git info
|
7
|
+
git info <options>
|
8
|
+
git info <card_id>
|
9
|
+
git info <card_id> <options>
|
10
|
+
|
11
|
+
Supported options:
|
12
|
+
--comments - displays comments for the card
|
13
|
+
-k <api_key> - specify the Pivotal API key to use. Overrides configuration.
|
14
|
+
-p <project_id> - specify the Pivotal project id to use. Overrides configuration.
|
15
|
+
-D - do not prompt for user input, use recommended values by default.
|
16
|
+
|
17
|
+
Background:
|
18
|
+
Given I have a Pivotal Tracker feature named "Test Story" with description "This is the description!"
|
19
|
+
And I am on the "CURRENT_CARD-feature" branch
|
20
|
+
|
21
|
+
Scenario: Executing with no settings
|
22
|
+
When I run `git-info`
|
23
|
+
Then the output should contain:
|
24
|
+
"""
|
25
|
+
Pivotal Tracker API Token and Project ID are required
|
26
|
+
"""
|
27
|
+
And the exit status should be 1
|
28
|
+
|
29
|
+
Scenario: Grabbing info about current topic branch
|
30
|
+
Given I have configured the Git repos for Pivotal
|
31
|
+
When I run `git-info`
|
32
|
+
Then the output should contain:
|
33
|
+
"""
|
34
|
+
Story: Test Story
|
35
|
+
URL: http://www.pivotaltracker.com/story/show/CURRENT_CARD
|
36
|
+
State: not accepted
|
37
|
+
Description:
|
38
|
+
This is the description!
|
39
|
+
"""
|
40
|
+
|
41
|
+
Scenario: Supplying Pivotal configuration via command line arguments
|
42
|
+
When I run `git-info -k PIVOTAL_API_KEY -p PIVOTAL_TEST_PROJECT -n "PIVOTAL_USER" -D`
|
43
|
+
Then the output should contain:
|
44
|
+
"""
|
45
|
+
Story: Test Story
|
46
|
+
URL: http://www.pivotaltracker.com/story/show/CURRENT_CARD
|
47
|
+
State: not accepted
|
48
|
+
Description:
|
49
|
+
This is the description!
|
50
|
+
"""
|
51
|
+
|
52
|
+
Scenario: Grabbing info about a specific card in question topic branch
|
53
|
+
Given I have a Pivotal Tracker chore named "Test Chore" with description "The chore description!"
|
54
|
+
And I have configured the Git repos for Pivotal
|
55
|
+
When I run `git-info CURRENT_CARD`
|
56
|
+
Then the output should contain:
|
57
|
+
"""
|
58
|
+
Story: Test Chore
|
59
|
+
URL: http://www.pivotaltracker.com/story/show/CURRENT_CARD
|
60
|
+
State: not accepted
|
61
|
+
Description:
|
62
|
+
The chore description!
|
63
|
+
"""
|
64
|
+
|
65
|
+
Scenario: Grabbing info when the card has labels
|
66
|
+
Given I have a Pivotal Tracker chore named "Test Chore" with description "The chore description!"
|
67
|
+
And the chore is labeled "foo, bar, baz"
|
68
|
+
And I have configured the Git repos for Pivotal
|
69
|
+
When I run `git-info CURRENT_CARD`
|
70
|
+
Then the output should contain:
|
71
|
+
"""
|
72
|
+
Story: Test Chore
|
73
|
+
URL: http://www.pivotaltracker.com/story/show/CURRENT_CARD
|
74
|
+
Labels: bar, baz, foo
|
75
|
+
State: not accepted
|
76
|
+
Description:
|
77
|
+
The chore description!
|
78
|
+
"""
|
79
|
+
|
80
|
+
Scenario: Requesting comments on a card using --comments
|
81
|
+
Given I have a Pivotal Tracker chore named "Test Chore" with description "The chore description!"
|
82
|
+
And the "PIVOTAL_USER" commented on the card "Well, this looks mighty fine!"
|
83
|
+
And I have configured the Git repos for Pivotal
|
84
|
+
When I run `git-info CURRENT_CARD --comments`
|
85
|
+
Then the output should contain "Comments:"
|
86
|
+
And the output should contain "Well, this looks mighty fine!"
|
87
|
+
And the output should contain "PIVOTAL_USER"
|
88
|
+
|
89
|
+
Scenario: Grabbing info when not on a topic branch and not supplying a card id
|
90
|
+
Given I have configured the Git repos for Pivotal
|
91
|
+
And I am on the "foo" branch
|
92
|
+
Then I should be on the "foo" branch
|
93
|
+
When I run `git-info`
|
94
|
+
Then the output should contain:
|
95
|
+
"""
|
96
|
+
No story id was supplied and you aren't on a topic branch!
|
97
|
+
"""
|
98
|
+
|
99
|
+
|
@@ -0,0 +1,113 @@
|
|
1
|
+
Feature: git start
|
2
|
+
|
3
|
+
In order to start the next available card in the project you can issue the following
|
4
|
+
commands:
|
5
|
+
|
6
|
+
git start <options>
|
7
|
+
git start <card_type> <options>
|
8
|
+
|
9
|
+
Supported options:
|
10
|
+
-k <api_key> - specify the Pivotal API key to use. Overrides configuration.
|
11
|
+
-p <project_id> - specify the Pivotal project id to use. Overrides configuration.
|
12
|
+
-D - do not prompt for user input, use recommended values by default.
|
13
|
+
|
14
|
+
This will check out a topic branch for the card and place you on it.
|
15
|
+
|
16
|
+
Scenario Outline: Executing with no settings
|
17
|
+
When I run `<command>`
|
18
|
+
Then the output should contain:
|
19
|
+
"""
|
20
|
+
Pivotal Tracker API Token and Project ID are required
|
21
|
+
"""
|
22
|
+
And the exit status should be 1
|
23
|
+
|
24
|
+
Examples:
|
25
|
+
| command |
|
26
|
+
| git-start bug |
|
27
|
+
| git-start chore |
|
28
|
+
| git-start feature |
|
29
|
+
|
30
|
+
Scenario: Starting the next feature when it is unestimated
|
31
|
+
Given I have an unestimated Pivotal Tracker feature
|
32
|
+
And I have configured the Git repos for Pivotal
|
33
|
+
When I run `git-start feature -D`
|
34
|
+
Then the output should contain:
|
35
|
+
"""
|
36
|
+
Stories in the started state must be estimated.
|
37
|
+
"""
|
38
|
+
And the exit status should be 1
|
39
|
+
|
40
|
+
# Assumption: that chores can be started without being estimated in Pivotal
|
41
|
+
Scenario: Starting the next chore when it is unestimated
|
42
|
+
Given I have an unestimated Pivotal Tracker chore
|
43
|
+
And I have configured the Git repos for Pivotal
|
44
|
+
When I run `git-start chore -D`
|
45
|
+
Then the output should contain "Switched to a new branch 'CURRENT_CARD-chore'"
|
46
|
+
And I should be on the "CURRENT_CARD-chore" branch
|
47
|
+
And card CURRENT_CARD is marked is started in Pivotal Tracker
|
48
|
+
|
49
|
+
# Assumption: that estimating bugs in Pivotal is turned off
|
50
|
+
Scenario: Starting the next bug when it is unestimated
|
51
|
+
Given I have an unestimated Pivotal Tracker bug
|
52
|
+
And I have configured the Git repos for Pivotal
|
53
|
+
When I run `git-start bug -D`
|
54
|
+
Then the output should contain "Switched to a new branch 'CURRENT_CARD-bugfix'"
|
55
|
+
And I should be on the "CURRENT_CARD-bugfix" branch
|
56
|
+
And card CURRENT_CARD is marked is started in Pivotal Tracker
|
57
|
+
|
58
|
+
Scenario Outline: Starting the next estimated card interactively (without -D option)
|
59
|
+
Given I have a Pivotal Tracker <card_type>
|
60
|
+
And I have configured the Git repos for Pivotal
|
61
|
+
When I run `git-start <card_type>` interactively
|
62
|
+
And I type "a_purple_<card_type>"
|
63
|
+
Then the output should contain "Switched to a new branch 'CURRENT_CARD-a_purple_<card_type>'"
|
64
|
+
And I should be on the "CURRENT_CARD-a_purple_<card_type>" branch
|
65
|
+
And card CURRENT_CARD is marked is started in Pivotal Tracker
|
66
|
+
|
67
|
+
Examples:
|
68
|
+
| card_type |
|
69
|
+
| bug |
|
70
|
+
| chore |
|
71
|
+
| feature |
|
72
|
+
|
73
|
+
Scenario Outline: Starting the next estimated card using configured defaults (with -D option)
|
74
|
+
Given I have a Pivotal Tracker <card_type>
|
75
|
+
And I have configured the Git repos for Pivotal
|
76
|
+
When I run `git-start <card_type> -D`
|
77
|
+
Then the output should contain "Switched to a new branch 'CURRENT_CARD-<card_type><branch_suffix>'"
|
78
|
+
And I should be on the "CURRENT_CARD-<card_type><branch_suffix>" branch
|
79
|
+
And card CURRENT_CARD is marked is started in Pivotal Tracker
|
80
|
+
|
81
|
+
Examples:
|
82
|
+
| card_type | branch_suffix |
|
83
|
+
| bug | fix |
|
84
|
+
| chore | |
|
85
|
+
| feature | |
|
86
|
+
|
87
|
+
Scenario Outline: Starting a specific card
|
88
|
+
Given I have a Pivotal Tracker <card_type>
|
89
|
+
And I have configured the Git repos for Pivotal
|
90
|
+
When I run `git-start CURRENT_CARD -D`
|
91
|
+
Then the output should contain "Switched to a new branch 'CURRENT_CARD-<card_type><branch_suffix>'"
|
92
|
+
And I should be on the "CURRENT_CARD-<card_type><branch_suffix>" branch
|
93
|
+
And card CURRENT_CARD is marked is started in Pivotal Tracker
|
94
|
+
|
95
|
+
Examples:
|
96
|
+
| card_type | branch_suffix |
|
97
|
+
| bug | fix |
|
98
|
+
| chore | |
|
99
|
+
| feature | |
|
100
|
+
|
101
|
+
Scenario Outline: Supplying Pivotal configuration via command line arguments
|
102
|
+
Given I have a Pivotal Tracker <card_type>
|
103
|
+
And I have configured the Git repos for Pivotal with bogus information
|
104
|
+
When I run `git-start <card_type> -k PIVOTAL_API_KEY -p PIVOTAL_TEST_PROJECT -n "PIVOTAL_USER" -D`
|
105
|
+
Then the output should contain "Switched to a new branch 'CURRENT_CARD-<card_type><branch_suffix>'"
|
106
|
+
And I should be on the "CURRENT_CARD-<card_type><branch_suffix>" branch
|
107
|
+
And card CURRENT_CARD is marked is started in Pivotal Tracker
|
108
|
+
|
109
|
+
Examples:
|
110
|
+
| card_type | branch_suffix |
|
111
|
+
| bug | fix |
|
112
|
+
| chore | |
|
113
|
+
| feature | |
|
@@ -0,0 +1,114 @@
|
|
1
|
+
STORY_TYPE = /feature|bug|chore|release/
|
2
|
+
STORY_STATE = /unscheduled|unstarted|started|finished|delivered|accepted|rejected/
|
3
|
+
|
4
|
+
Transform /PIVOTAL|CURRENT/ do |placeholder|
|
5
|
+
placeholder.
|
6
|
+
gsub("PIVOTAL_API_KEY", "80f3c308cfdfbaa8f5a21aa524081690").
|
7
|
+
gsub("PIVOTAL_TEST_PROJECT", "516377").
|
8
|
+
gsub("PIVOTAL_USER", "Robotic Zach").
|
9
|
+
gsub("CURRENT_CARD", current_card.id.to_s)
|
10
|
+
end
|
11
|
+
|
12
|
+
Given "I debug" do
|
13
|
+
require 'pry'
|
14
|
+
binding.pry
|
15
|
+
end
|
16
|
+
|
17
|
+
Given /^I have configured the Git repos for Pivotal$/ do
|
18
|
+
step %|a file named ".gitconfig" with:|, <<-EOT.gsub!(/^\s+\S/, '')
|
19
|
+
|[pivotal]
|
20
|
+
| api-token = PIVOTAL_API_KEY
|
21
|
+
| full-name = PIVOTAL_USER
|
22
|
+
| acceptance-branch = acceptance
|
23
|
+
| integration-branch = master
|
24
|
+
| project-id = PIVOTAL_TEST_PROJECT
|
25
|
+
EOT
|
26
|
+
end
|
27
|
+
|
28
|
+
Given /^I have configured the Git repos for Pivotal with bogus information$/ do
|
29
|
+
step %|a file named ".gitconfig" with:|, <<-EOT.gsub!(/^\s+\S/, '')
|
30
|
+
|[pivotal]
|
31
|
+
| api-token = badtoken
|
32
|
+
| full-name = Bad Joe
|
33
|
+
| integration-branch = whoknows
|
34
|
+
| project-id = something
|
35
|
+
| remote = origin
|
36
|
+
EOT
|
37
|
+
end
|
38
|
+
|
39
|
+
Given /^the "([^"]+)" commented on the card "([^"]+)"$/ do |author, text|
|
40
|
+
comment_on_story :author => author, :text => text
|
41
|
+
end
|
42
|
+
|
43
|
+
Given /^the (#{STORY_TYPE}|card) is labeled "([^"]+)"$/ do |type, labels|
|
44
|
+
update_test_story :labels => labels
|
45
|
+
end
|
46
|
+
|
47
|
+
Given /^I have a(?:n)? (#{STORY_STATE})?\s?Pivotal Tracker (#{STORY_TYPE})$/ do |status, type|
|
48
|
+
options = {}
|
49
|
+
options[:current_state] = status if status
|
50
|
+
create_test_story type, options
|
51
|
+
end
|
52
|
+
|
53
|
+
Given /^I have a(?:n)? unestimated \s?Pivotal Tracker (#{STORY_TYPE})$/ do |type|
|
54
|
+
options = { :estimate => -1 }
|
55
|
+
create_test_story type, options
|
56
|
+
end
|
57
|
+
|
58
|
+
Given /^I have a(?:n)? (#{STORY_STATE})?\s?Pivotal Tracker (#{STORY_TYPE}) named "([^"]+)" with description "([^"]+)"$/ do |status, type, name, description|
|
59
|
+
options = { :name => name, :description => description }
|
60
|
+
options[:current_state] = status if status
|
61
|
+
create_test_story type, options
|
62
|
+
end
|
63
|
+
|
64
|
+
Given /the card is a (#{STORY_TYPE})/ do |type|
|
65
|
+
update_test_story :story_type => type
|
66
|
+
end
|
67
|
+
|
68
|
+
Given /the (#{STORY_TYPE}) is unestimated/ do |type|
|
69
|
+
update_test_story :estimate => -1
|
70
|
+
end
|
71
|
+
|
72
|
+
Given /the (#{STORY_TYPE}) is (#{STORY_STATE})/ do |type, state|
|
73
|
+
update_test_story :current_state => state
|
74
|
+
end
|
75
|
+
|
76
|
+
Given /^I am on the "([^"]*)" branch$/ do |branch|
|
77
|
+
`git checkout -b #{branch} > /dev/null 2>&1`
|
78
|
+
end
|
79
|
+
|
80
|
+
Given /^I have a "([^"]*)" branch$/ do |branch|
|
81
|
+
`git branch #{branch} > /dev/null 2>&1`
|
82
|
+
end
|
83
|
+
|
84
|
+
When /^the current card is refreshed$/ do
|
85
|
+
refresh_current_card!
|
86
|
+
end
|
87
|
+
|
88
|
+
Then /^the card CURRENT_CARD should (not )?have the "([^"]*)" label$/ do |negate, label|
|
89
|
+
if negate
|
90
|
+
current_card.labels.to_s.should_not include(label)
|
91
|
+
else
|
92
|
+
current_card.labels.to_s.should include(label)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
Then /^the card CURRENT_CARD should have the comment by "([^"]*)":$/ do |author, str|
|
97
|
+
current_card.notes.all.last.tap do |note|
|
98
|
+
note.author.should eq(author)
|
99
|
+
note.text.should include(str)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
Then /^the card CURRENT_CARD should not have the comment:$/ do |str|
|
104
|
+
current_card.notes.all.detect{ |n| n.text.include?(str) }.should be_nil
|
105
|
+
end
|
106
|
+
|
107
|
+
|
108
|
+
Then /^I should be on the "([^"]*)" branch$/ do |branch|
|
109
|
+
current_branch.should == branch
|
110
|
+
end
|
111
|
+
|
112
|
+
Then /^card (CURRENT_\w+) is marked is started in Pivotal Tracker$/ do |card_id|
|
113
|
+
assert_card_is_started(card_id)
|
114
|
+
end
|