зеркало из https://github.com/mislav/hub.git
220 строки
9.7 KiB
Gherkin
220 строки
9.7 KiB
Gherkin
Feature: hub browse
|
|
Background:
|
|
Given I am "mislav" on github.com with OAuth token "OTOKEN"
|
|
|
|
Scenario: No repo
|
|
When I run `hub browse`
|
|
Then the exit status should be 1
|
|
Then the output should contain exactly "Usage: hub browse [-uc] [[<USER>/]<REPOSITORY>|--] [<SUBPAGE>]\n"
|
|
|
|
Scenario: Project with owner
|
|
When I successfully run `hub browse mislav/dotfiles`
|
|
Then there should be no output
|
|
And "open https://github.com/mislav/dotfiles" should be run
|
|
|
|
Scenario: Project without owner
|
|
Given I am "mislav" on github.com
|
|
When I successfully run `hub browse dotfiles`
|
|
Then "open https://github.com/mislav/dotfiles" should be run
|
|
|
|
Scenario: Explicit project overrides current
|
|
Given I am in "git://github.com/josh/rails-behaviors.git" git repo
|
|
And I am "mislav" on github.com
|
|
When I successfully run `hub browse dotfiles`
|
|
Then "open https://github.com/mislav/dotfiles" should be run
|
|
|
|
Scenario: Project issues
|
|
When I successfully run `hub browse mislav/dotfiles issues`
|
|
Then "open https://github.com/mislav/dotfiles/issues" should be run
|
|
|
|
Scenario: Project wiki
|
|
When I successfully run `hub browse mislav/dotfiles wiki`
|
|
Then "open https://github.com/mislav/dotfiles/wiki" should be run
|
|
|
|
Scenario: Project commits on master
|
|
When I successfully run `hub browse mislav/dotfiles commits`
|
|
Then "open https://github.com/mislav/dotfiles/commits/master" should be run
|
|
|
|
Scenario: Specific commit in project
|
|
When I successfully run `hub browse mislav/dotfiles commit/4173c3b`
|
|
Then "open https://github.com/mislav/dotfiles/commit/4173c3b" should be run
|
|
|
|
Scenario: Output the URL instead of browse
|
|
When I successfully run `hub browse -u mislav/dotfiles`
|
|
Then the output should contain exactly "https://github.com/mislav/dotfiles\n"
|
|
But "open https://github.com/mislav/dotfiles" should not be run
|
|
|
|
Scenario: Current project
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
When I successfully run `hub browse`
|
|
Then there should be no output
|
|
And "open https://github.com/mislav/dotfiles" should be run
|
|
|
|
Scenario: Commit in current project
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
When I successfully run `hub browse -- commit/abcd1234`
|
|
Then "open https://github.com/mislav/dotfiles/commit/abcd1234" should be run
|
|
|
|
Scenario: Current branch
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And git "push.default" is set to "upstream"
|
|
And I am on the "feature" branch with upstream "origin/experimental"
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles/tree/experimental" should be run
|
|
|
|
Scenario: Current branch pushed to fork
|
|
Given I am in "git://github.com/blueyed/dotfiles.git" git repo
|
|
And the "mislav" remote has url "git@github.com:mislav/dotfiles.git"
|
|
And I am on the "feature" branch with upstream "mislav/experimental"
|
|
And git "push.default" is set to "upstream"
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles/tree/experimental" should be run
|
|
|
|
Scenario: Current branch pushed to fork with simple tracking
|
|
Given I am in "git://github.com/blueyed/dotfiles.git" git repo
|
|
And the "mislav" remote has url "git@github.com:mislav/dotfiles.git"
|
|
And I am on the "feature" branch with upstream "mislav/feature"
|
|
And git "push.default" is set to "simple"
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles/tree/feature" should be run
|
|
|
|
Scenario: Default branch
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And the default branch for "origin" is "develop"
|
|
And I am on the "develop" branch with upstream "origin/develop"
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles" should be run
|
|
|
|
Scenario: Current branch, no tracking
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And I am on the "feature" branch
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles" should be run
|
|
|
|
Scenario: Default branch in upstream repo as opposed to fork
|
|
Given I am in "git://github.com/jashkenas/coffee-script.git" git repo
|
|
And the "mislav" remote has url "git@github.com:mislav/coffee-script.git"
|
|
And the default branch for "origin" is "master"
|
|
And the "master" branch is pushed to "mislav/master"
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/jashkenas/coffee-script" should be run
|
|
|
|
Scenario: Current branch with special chars
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And I am on the "fix-bug-#123" branch with upstream "origin/fix-bug-#123"
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles/tree/fix-bug-%23123" should be run
|
|
|
|
Scenario: Commits on current branch
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And git "push.default" is set to "upstream"
|
|
And I am on the "feature" branch with upstream "origin/experimental"
|
|
When I successfully run `hub browse -- commits`
|
|
Then "open https://github.com/mislav/dotfiles/commits/experimental" should be run
|
|
|
|
Scenario: Issues subpage ignores tracking configuration
|
|
Given I am in "git://github.com/jashkenas/coffee-script.git" git repo
|
|
And the "mislav" remote has url "git@github.com:mislav/coffee-script.git"
|
|
And git "push.default" is set to "upstream"
|
|
And I am on the "feature" branch with upstream "mislav/experimental"
|
|
When I successfully run `hub browse -- issues`
|
|
Then "open https://github.com/jashkenas/coffee-script/issues" should be run
|
|
|
|
Scenario: Issues subpage ignores current branch
|
|
Given I am in "git://github.com/jashkenas/coffee-script.git" git repo
|
|
And the "mislav" remote has url "git@github.com:mislav/coffee-script.git"
|
|
And I am on the "feature" branch pushed to "mislav/feature"
|
|
When I successfully run `hub browse -- issues`
|
|
Then there should be no output
|
|
Then "open https://github.com/jashkenas/coffee-script/issues" should be run
|
|
|
|
Scenario: Forward Slash Delimited branch
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And git "push.default" is set to "upstream"
|
|
And I am on the "foo/bar" branch with upstream "origin/baz/qux/moo"
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles/tree/baz/qux/moo" should be run
|
|
|
|
Scenario: No branch
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And I am in detached HEAD
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles" should be run
|
|
|
|
Scenario: No branch to pulls
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And I am in detached HEAD
|
|
When I successfully run `hub browse -- pulls`
|
|
Then "open https://github.com/mislav/dotfiles/pulls" should be run
|
|
|
|
Scenario: Dot Delimited branch
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And git "push.default" is set to "upstream"
|
|
And I am on the "fix-glob-for.js" branch with upstream "origin/fix-glob-for.js"
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles/tree/fix-glob-for.js" should be run
|
|
|
|
Scenario: Wiki repo
|
|
Given I am in "git://github.com/defunkt/hub.wiki.git" git repo
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/defunkt/hub/wiki" should be run
|
|
|
|
Scenario: Wiki commits
|
|
Given I am in "git://github.com/defunkt/hub.wiki.git" git repo
|
|
When I successfully run `hub browse -- commits`
|
|
Then "open https://github.com/defunkt/hub/wiki/_history" should be run
|
|
|
|
Scenario: Wiki pages
|
|
Given I am in "git://github.com/defunkt/hub.wiki.git" git repo
|
|
When I successfully run `hub browse -- pages`
|
|
Then "open https://github.com/defunkt/hub/wiki/_pages" should be run
|
|
|
|
Scenario: Repo with remote with local path
|
|
Given I am in "git://github.com/mislav/dotfiles.git" git repo
|
|
And the "upstream" remote has url "../path/to/another/repo.git"
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/mislav/dotfiles" should be run
|
|
|
|
Scenario: Enterprise repo
|
|
Given I am in "git://git.my.org/mislav/dotfiles.git" git repo
|
|
And I am "mislav" on git.my.org with OAuth token "FITOKEN"
|
|
And "git.my.org" is a whitelisted Enterprise host
|
|
When I successfully run `hub browse`
|
|
Then "open https://git.my.org/mislav/dotfiles" should be run
|
|
|
|
Scenario: Multiple Enterprise repos
|
|
Given I am in "git://git.my.org/mislav/dotfiles.git" git repo
|
|
And I am "mislav" on git.my.org with OAuth token "FITOKEN"
|
|
And "git.my.org" is a whitelisted Enterprise host
|
|
And "git.another.org" is a whitelisted Enterprise host
|
|
When I successfully run `hub browse`
|
|
Then "open https://git.my.org/mislav/dotfiles" should be run
|
|
|
|
Scenario: Enterprise repo over HTTP
|
|
Given I am in "git://git.my.org/mislav/dotfiles.git" git repo
|
|
And I am "mislav" on http://git.my.org with OAuth token "FITOKEN"
|
|
And "git.my.org" is a whitelisted Enterprise host
|
|
When I successfully run `hub browse`
|
|
Then "open http://git.my.org/mislav/dotfiles" should be run
|
|
|
|
Scenario: SSH alias
|
|
Given the SSH config:
|
|
"""
|
|
Host gh
|
|
User git
|
|
HostName github.com
|
|
"""
|
|
Given I am in "gh:singingwolfboy/sekrit.git" git repo
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/singingwolfboy/sekrit" should be run
|
|
|
|
Scenario: SSH GitHub alias
|
|
Given the SSH config:
|
|
"""
|
|
Host github.com
|
|
HostName ssh.github.com
|
|
"""
|
|
Given I am in "git@github.com:suan/git-sanity.git" git repo
|
|
When I successfully run `hub browse`
|
|
Then "open https://github.com/suan/git-sanity" should be run
|