lolcommits 0.2.0 → 0.3.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/.travis.yml +7 -2
- data/CHANGELOG +4 -0
- data/NOTES +17 -0
- data/README.md +6 -3
- data/Rakefile +4 -1
- data/bin/lolcommits +91 -22
- data/features/bugs.feature +30 -0
- data/features/lolcommits.feature +126 -12
- data/features/plugins.feature +33 -0
- data/features/step_definitions/lolcommits_steps.rb +37 -0
- data/features/support/env.rb +27 -7
- data/lib/core_ext/class.rb +7 -0
- data/lib/lolcommits.rb +24 -178
- data/lib/lolcommits/capture_fake.rb +10 -0
- data/lib/lolcommits/capture_linux.rb +20 -0
- data/lib/lolcommits/capture_mac.rb +17 -0
- data/lib/lolcommits/capture_windows.rb +18 -0
- data/lib/lolcommits/capturer.rb +10 -0
- data/lib/lolcommits/configuration.rb +128 -0
- data/lib/lolcommits/git_info.rb +12 -0
- data/lib/lolcommits/plugin.rb +29 -0
- data/lib/lolcommits/plugins/dot_com.rb +32 -0
- data/lib/lolcommits/plugins/loltext.rb +45 -0
- data/lib/lolcommits/plugins/tranzlate.rb +16 -0
- data/lib/lolcommits/runner.rb +71 -0
- data/lib/lolcommits/version.rb +1 -1
- data/lolcommits.gemspec +4 -1
- data/test/test_lolcommits.rb +9 -3
- metadata +59 -9
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -3,8 +3,13 @@ rvm:
|
|
3
3
|
- 1.8.7
|
4
4
|
- 1.9.2
|
5
5
|
- 1.9.3
|
6
|
+
- ruby-head
|
6
7
|
|
7
8
|
before_install:
|
8
|
-
- sudo apt-get update
|
9
|
-
- sudo apt-get install mplayer libmagick9-dev
|
9
|
+
- sudo apt-get -qq update
|
10
|
+
- sudo apt-get -qq -y install mplayer libmagick9-dev
|
10
11
|
|
12
|
+
#test against ruby-head as well so we know what's coming down the pipe
|
13
|
+
matrix:
|
14
|
+
allow_failures:
|
15
|
+
- rvm: ruby-head
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
0.3.0 (in development)
|
2
|
+
* fix bug involving git repositories with spaces in the name
|
3
|
+
* internal refactoring for modularity (thanks @kenmazaika!)
|
4
|
+
|
1
5
|
0.2.0 (6 July 2012)
|
2
6
|
* improved build system and testing with cucumber/methadone
|
3
7
|
- goal is to get into a better framework to start doing major feature work
|
data/NOTES
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
AFTER:
|
3
|
+
* update version (.pre)
|
4
|
+
* update README
|
5
|
+
* open3 and unit assertions in cuke tests, can remove with aruba ?
|
6
|
+
* better plugin list output, showing enabled status etc
|
7
|
+
* GET RID OF LOLCOMMITS_DIR in TEST ENV and FAKE $HOME instead
|
8
|
+
* clean up bin/lolcommits or refactor or whatever it's a mess
|
9
|
+
|
10
|
+
MUCH LATER:
|
11
|
+
* auto version detection? (to encourage people to update)
|
12
|
+
* push stats to statsd or something so i know how many people are using it!
|
13
|
+
* pimp twitter
|
14
|
+
- in readme
|
15
|
+
- in post_install_message from gemspec
|
16
|
+
* a real website
|
17
|
+
|
data/README.md
CHANGED
@@ -10,7 +10,7 @@ By default, the lolimages are stored by a Github style short SHA in a `~/.lolcom
|
|
10
10
|
## Installation (Mac OS X)
|
11
11
|
You'll need ImageMagick installed. [Homebrew](http://mxcl.github.com/homebrew/) makes this easy. Simply do:
|
12
12
|
|
13
|
-
brew install imagemagick
|
13
|
+
brew install imagemagick
|
14
14
|
|
15
15
|
Then simply do:
|
16
16
|
|
@@ -72,8 +72,11 @@ environment variables.
|
|
72
72
|
* Set webcam device on mac - set `LOLCOMMITS_DEVICE` environment variable.
|
73
73
|
* Set delay persistently (for slow to warmup webcams) - set
|
74
74
|
`LOLCOMMITS_DELAY` var to time in seconds.
|
75
|
-
|
76
|
-
|
75
|
+
|
76
|
+
## Plugins
|
77
|
+
|
78
|
+
* TRANZLATE YOAR COMMIT_MSG TO LOLSPEKK - do
|
79
|
+
`lolcommits --config -p tranzlate` and set enabled to `true`.
|
77
80
|
|
78
81
|
## Contributing
|
79
82
|
|
data/Rakefile
CHANGED
@@ -21,7 +21,9 @@ end
|
|
21
21
|
CUKE_RESULTS = 'results.html'
|
22
22
|
CLEAN << CUKE_RESULTS
|
23
23
|
Cucumber::Rake::Task.new(:features) do |t|
|
24
|
-
|
24
|
+
optstr = "features --format html -o #{CUKE_RESULTS} --format pretty --no-source -x"
|
25
|
+
optstr << " -t @#{ENV["tag"]}" unless ENV["tag"].nil?
|
26
|
+
t.cucumber_opts = optstr
|
25
27
|
t.fork = false
|
26
28
|
end
|
27
29
|
|
@@ -38,6 +40,7 @@ task :default => [:test,:features]
|
|
38
40
|
|
39
41
|
desc "Migrate an existing local .lolcommits directory to Dropbox"
|
40
42
|
task :dropboxify do
|
43
|
+
$home = ENV['HOME']
|
41
44
|
dropbox_loldir = "#{$home}/Dropbox/lolcommits"
|
42
45
|
loldir = "#{$home}/.lolcommits"
|
43
46
|
backup_loldir = "#{$home}/.lolcommits.old"
|
data/bin/lolcommits
CHANGED
@@ -8,6 +8,8 @@ rescue LoadError
|
|
8
8
|
end
|
9
9
|
|
10
10
|
include Lolcommits
|
11
|
+
require "launchy"
|
12
|
+
require "choice"
|
11
13
|
|
12
14
|
#
|
13
15
|
# CHECK FOR FURTHER DEPENDENCIES
|
@@ -19,28 +21,32 @@ def command?(name)
|
|
19
21
|
$?.success?
|
20
22
|
end
|
21
23
|
|
22
|
-
if is_mac?
|
23
|
-
|
24
|
-
#if not command?('imagesnap')
|
25
|
-
# puts "Couldn't find imagesnap in your PATH!"
|
26
|
-
# puts "Easiest way to get it is to install homebrew and do `brew install imagesnap`"
|
27
|
-
# exit 1
|
28
|
-
#end
|
29
|
-
unless File.executable? File.join(LOLCOMMITS_ROOT, "ext", "imagesnap", "imagesnap")
|
24
|
+
if Configuration.is_mac?
|
25
|
+
unless File.executable? File.join(Configuration::LOLCOMMITS_ROOT, "ext", "imagesnap", "imagesnap")
|
30
26
|
puts "Couldn't properly execute imagesnap for some reason, please file a bug?!"
|
31
27
|
exit 1
|
32
28
|
end
|
33
|
-
elsif is_linux?
|
29
|
+
elsif Configuration.is_linux?
|
34
30
|
if not command?('mplayer')
|
35
31
|
puts "Couldn't find mplayer in your PATH!"
|
36
32
|
exit 1
|
37
33
|
end
|
38
34
|
end
|
39
|
-
unless File.readable? File.join(LOLCOMMITS_ROOT, "fonts", "Impact.ttf")
|
35
|
+
unless File.readable? File.join(Configuration::LOLCOMMITS_ROOT, "fonts", "Impact.ttf")
|
40
36
|
puts "Couldn't properly read Impact font from gem package, please file a bug?!"
|
41
37
|
exit 1
|
42
38
|
end
|
43
39
|
|
40
|
+
def die_if_not_git_repo!
|
41
|
+
begin
|
42
|
+
g=Git.open('.')
|
43
|
+
rescue ArgumentError
|
44
|
+
# ruby-git throws an argument error if path isnt for a valid git repo...
|
45
|
+
puts "Erm? Can't do that since we're not in a valid git repository!"
|
46
|
+
exit 1
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
44
50
|
#
|
45
51
|
# NO ARGUMENTS SPECIFIED, HELP THE USER OUT
|
46
52
|
#
|
@@ -48,6 +54,7 @@ def do_noargs
|
|
48
54
|
#TODO: make this a contextual helper to know status of whether lolcommits is enabled
|
49
55
|
puts "Do what exactly?"
|
50
56
|
puts "Try: lolcommits --enable (when in a git repository)"
|
57
|
+
puts "Or: lolcommits --help"
|
51
58
|
end
|
52
59
|
|
53
60
|
HOOK_PATH = File.join ".git", "hooks", "post-commit"
|
@@ -96,6 +103,14 @@ def do_disable
|
|
96
103
|
end
|
97
104
|
end
|
98
105
|
|
106
|
+
def configuration
|
107
|
+
if Choice.choices[:test]
|
108
|
+
Configuration.new(:loldir => Configuration.loldir_for('test'))
|
109
|
+
else
|
110
|
+
Configuration.new
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
99
114
|
#
|
100
115
|
# IF --CAPTURE, DO CAPTURE
|
101
116
|
#
|
@@ -104,11 +119,37 @@ def do_capture
|
|
104
119
|
capture_device = Choice.choices[:device] || ENV['LOLCOMMITS_DEVICE'] || nil
|
105
120
|
|
106
121
|
if Choice.choices[:test]
|
107
|
-
puts "***
|
108
|
-
Lolcommits.
|
122
|
+
puts "*** Capturing in test mode."
|
123
|
+
runner = Lolcommits::Runner.new(:capture_delay => capture_delay,
|
124
|
+
:capture_device => capture_device,
|
125
|
+
:message => Choice.choices[:msg],
|
126
|
+
:sha => Choice.choices[:sha],
|
127
|
+
:config => configuration
|
128
|
+
)
|
129
|
+
runner.run
|
130
|
+
|
131
|
+
Launchy.open(runner.main_image)
|
109
132
|
else
|
110
|
-
Lolcommits.
|
133
|
+
runner = Lolcommits::Runner.new(:capture_delay => capture_delay,
|
134
|
+
:capture_device => capture_device,
|
135
|
+
:config => configuration
|
136
|
+
)
|
137
|
+
runner.run
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def do_configure
|
142
|
+
configuration.do_configure! Choice.choices[:plugin]
|
143
|
+
end
|
144
|
+
|
145
|
+
def do_last
|
146
|
+
die_if_not_git_repo!
|
147
|
+
lolimage = configuration.most_recent
|
148
|
+
if lolimage.nil?
|
149
|
+
puts "No lolcommits have been captured for this repository yet."
|
150
|
+
exit 1
|
111
151
|
end
|
152
|
+
Launchy.open lolimage
|
112
153
|
end
|
113
154
|
|
114
155
|
#
|
@@ -140,18 +181,35 @@ Choice.options do
|
|
140
181
|
long "--last"
|
141
182
|
short "-l"
|
142
183
|
desc "view the most recent lolcommit"
|
143
|
-
action do
|
144
|
-
Launchy.open Lolcommits.most_recent
|
145
|
-
end
|
146
184
|
end
|
147
185
|
|
148
186
|
option :browse do
|
149
187
|
long "--browse"
|
150
188
|
short "-b"
|
151
189
|
desc "browse this repo's lolcommits"
|
152
|
-
|
153
|
-
|
154
|
-
|
190
|
+
end
|
191
|
+
|
192
|
+
option :configure do
|
193
|
+
long "--config"
|
194
|
+
desc "configure a plugin"
|
195
|
+
end
|
196
|
+
|
197
|
+
option :show_config do
|
198
|
+
short "-sc"
|
199
|
+
long "--show-config"
|
200
|
+
desc "display configuration file"
|
201
|
+
end
|
202
|
+
|
203
|
+
option :plugin do
|
204
|
+
desc "pass plugin name for --config"
|
205
|
+
long "--plugin"
|
206
|
+
short "-p"
|
207
|
+
default nil
|
208
|
+
end
|
209
|
+
|
210
|
+
option :plugins do
|
211
|
+
desc "list all available plugins"
|
212
|
+
long "--plugins"
|
155
213
|
end
|
156
214
|
|
157
215
|
option :test do
|
@@ -160,14 +218,14 @@ Choice.options do
|
|
160
218
|
end
|
161
219
|
|
162
220
|
option :sha do
|
163
|
-
desc "pass SHA manually
|
221
|
+
desc "pass SHA manually [TEST-MODE]"
|
164
222
|
long "--sha"
|
165
223
|
short '-s'
|
166
224
|
default "test-#{rand(10 ** 10)}"
|
167
225
|
end
|
168
226
|
|
169
227
|
option :msg do
|
170
|
-
desc "pass commit msg manually
|
228
|
+
desc "pass commit msg manually [TEST-MODE]"
|
171
229
|
long "--msg"
|
172
230
|
short '-m'
|
173
231
|
default "this is a test message i didnt really commit something"
|
@@ -189,9 +247,20 @@ end
|
|
189
247
|
#
|
190
248
|
# Handle actions manually since choice seems weird
|
191
249
|
#
|
192
|
-
if not (Choice.choices[:enable] || Choice.choices[:disable]
|
250
|
+
if not (Choice.choices[:enable] || Choice.choices[:disable])
|
193
251
|
if Choice.choices[:capture]
|
194
252
|
do_capture()
|
253
|
+
elsif Choice.choices[:configure]
|
254
|
+
do_configure()
|
255
|
+
elsif Choice.choices[:show_config]
|
256
|
+
puts configuration.user_configuration.to_yaml
|
257
|
+
elsif Choice.choices[:plugins]
|
258
|
+
configuration.puts_plugins()
|
259
|
+
elsif Choice.choices[:last]
|
260
|
+
do_last()
|
261
|
+
elsif Choice.choices[:browse]
|
262
|
+
die_if_not_git_repo!
|
263
|
+
Launchy.open configuration.loldir
|
195
264
|
else
|
196
265
|
do_noargs()
|
197
266
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
Feature: Bug regression testing
|
2
|
+
As a developer
|
3
|
+
I want to ensure fixed bugs stay fixed
|
4
|
+
So that I don't have to fix them again!
|
5
|
+
|
6
|
+
#
|
7
|
+
# issue #58, https://github.com/mroth/lolcommits/issues/58
|
8
|
+
#
|
9
|
+
Scenario: handle git repos with spaces in directory name
|
10
|
+
Given a git repository named "test lolol"
|
11
|
+
And an empty file named "test lolol/FOOBAR"
|
12
|
+
|
13
|
+
When I cd to "test lolol"
|
14
|
+
And I successfully run `lolcommits --enable`
|
15
|
+
And I successfully run `git add .`
|
16
|
+
And I successfully run `git commit -m 'can haz commit'`
|
17
|
+
Then the output should contain "*** Preserving this moment in history."
|
18
|
+
And a directory named "../.lolcommits/test-lolol" should exist
|
19
|
+
|
20
|
+
|
21
|
+
#
|
22
|
+
# issue #53, https://github.com/mroth/lolcommits/issues/53
|
23
|
+
#
|
24
|
+
#@fake-root @simulate-env
|
25
|
+
#Scenario: error if can't read font file
|
26
|
+
# Given "fonts/Impact.ttf" packaged file is not readable
|
27
|
+
# When I run `lolcommits --test --capture`
|
28
|
+
# Then the output should contain "Couldn't properly read Impact font from gem package"
|
29
|
+
# And the exit status should be 1
|
30
|
+
|
data/features/lolcommits.feature
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Feature: Basic functionality
|
1
|
+
Feature: Basic UI functionality
|
2
2
|
|
3
3
|
Scenario: App just runs
|
4
4
|
When I get help for "lolcommits"
|
@@ -6,36 +6,150 @@ Feature: Basic functionality
|
|
6
6
|
And the banner should be present
|
7
7
|
|
8
8
|
Scenario: Enable in a naked git repository
|
9
|
-
Given a git repository named "loltest"
|
10
|
-
And the git repository named "loltest" has no "post-commit" hook
|
11
|
-
|
9
|
+
Given a git repository named "loltest" with no "post-commit" hook
|
12
10
|
When I cd to "loltest"
|
13
11
|
And I successfully run `lolcommits --enable`
|
14
|
-
|
15
12
|
Then the output should contain "installed lolcommmit hook as:"
|
16
13
|
And the output should contain "(to remove later, you can use: lolcommits --disable)"
|
17
14
|
And a file named ".git/hooks/post-commit" should exist
|
18
15
|
And the exit status should be 0
|
19
16
|
|
20
17
|
Scenario: Disable in a enabled git repository
|
21
|
-
Given a git repository named "lolenabled"
|
22
|
-
And the git repository named "lolenabled" has a "post-commit" hook
|
23
|
-
|
18
|
+
Given a git repository named "lolenabled" with a "post-commit" hook
|
24
19
|
When I cd to "lolenabled"
|
25
20
|
And I successfully run `lolcommits --disable`
|
26
|
-
|
27
21
|
Then the output should contain "removed"
|
28
22
|
And a file named ".git/hooks/post-commit" should not exist
|
29
23
|
And the exit status should be 0
|
30
24
|
|
31
|
-
|
32
|
-
|
25
|
+
Scenario: Trying to enable while not in a git repo fails
|
26
|
+
Given a directory named "svnrulez"
|
27
|
+
When I cd to "svnrulez"
|
28
|
+
And I run `lolcommits --enable`
|
29
|
+
Then the output should contain "You don't appear to be in the base directory of a git project."
|
30
|
+
And the exit status should be 1
|
31
|
+
|
32
|
+
Scenario: Commiting in an enabled repo triggers successful capture
|
33
33
|
Given a git repository named "testcapture"
|
34
34
|
And an empty file named "testcapture/FOOBAR"
|
35
|
-
|
36
35
|
When I cd to "testcapture"
|
37
36
|
And I successfully run `lolcommits --enable`
|
38
37
|
And I successfully run `git add .`
|
39
38
|
And I successfully run `git commit -m 'can haz commit'`
|
40
39
|
Then the output should contain "*** Preserving this moment in history."
|
40
|
+
And a directory named "../.lolcommits/testcapture" should exist
|
41
|
+
And a file named "../.lolcommits/testcapture/tmp_snapshot.jpg" should not exist
|
42
|
+
And there should be 1 jpg in "../.lolcommits/testcapture"
|
43
|
+
|
44
|
+
Scenario: Commiting in an enabled repo subdirectory triggers successful capture of parent repo
|
45
|
+
Given a git repository named "testcapture"
|
46
|
+
And a directory named "testcapture/subdir"
|
47
|
+
And an empty file named "testcapture/subdir/FOOBAR"
|
48
|
+
When I cd to "testcapture/"
|
49
|
+
And I successfully run `lolcommits --enable`
|
50
|
+
Then I cd to "subdir/"
|
51
|
+
And I successfully run `git add .`
|
52
|
+
And I successfully run `git commit -m 'can haz commit'`
|
53
|
+
Then the output should contain "*** Preserving this moment in history."
|
54
|
+
And a directory named "../../.lolcommits/testcapture" should exist
|
55
|
+
And a file named "../../.lolcommits/testcapture/tmp_snapshot.jpg" should not exist
|
56
|
+
And there should be 1 jpg in "../../.lolcommits/testcapture"
|
57
|
+
|
58
|
+
Scenario: Show plugins
|
59
|
+
When I successfully run `lolcommits --plugins`
|
60
|
+
Then the output should contain a list of plugins
|
61
|
+
|
62
|
+
#
|
63
|
+
# a stab at recreating ken's scenarios with native aruba steps, not quite there yet in terms
|
64
|
+
# of elegance, but its passing so might as well leave in for now.
|
65
|
+
#
|
66
|
+
Scenario: Configuring plugin (with native aruba steps)
|
67
|
+
Given a git repository named "config-test"
|
68
|
+
When I cd to "config-test"
|
69
|
+
And I run `lolcommits --config` interactively
|
70
|
+
When I type "loltext"
|
71
|
+
When I type "true"
|
72
|
+
Then the output should contain a list of plugins
|
73
|
+
And the output should contain "Name of plugin to configure:"
|
74
|
+
Then the output should contain "enabled:"
|
75
|
+
Then the output should contain "Successfully Configured"
|
76
|
+
And a file named "../.lolcommits/config-test/config.yml" should exist
|
77
|
+
When I successfully run `lolcommits --show-config`
|
78
|
+
Then the output should contain "loltext:"
|
79
|
+
And the output should contain "enabled: true"
|
80
|
+
|
81
|
+
Scenario: Configuring Plugin
|
82
|
+
Given a git repository named "config-test"
|
83
|
+
When I cd to "config-test"
|
84
|
+
And I run `lolcommits --config` and wait for output
|
85
|
+
When I enter "loltext" for "Name of plugin to configure"
|
86
|
+
And I enter "true" for "enabled"
|
87
|
+
Then I should be presented "Successfully Configured"
|
88
|
+
And a file named "../.lolcommits/config-test/config.yml" should exist
|
89
|
+
When I successfully run `lolcommits --show-config`
|
90
|
+
Then the output should contain "loltext:"
|
91
|
+
And the output should contain "enabled: true"
|
92
|
+
|
93
|
+
Scenario: Configuring Plugin In Test Mode
|
94
|
+
Given a git repository named "testmode-config-test"
|
95
|
+
When I cd to "testmode-config-test"
|
96
|
+
And I run `lolcommits --config --test` and wait for output
|
97
|
+
And I enter "loltext" for "Name of plugin to configure"
|
98
|
+
And I enter "true" for "enabled"
|
99
|
+
Then I should be presented "Successfully Configured"
|
100
|
+
And a file named "../.lolcommits/test/config.yml" should exist
|
101
|
+
When I successfully run `lolcommits --test --show-config`
|
102
|
+
Then the output should contain "loltext:"
|
103
|
+
And the output should contain "enabled: true"
|
104
|
+
|
105
|
+
Scenario: test capture should work regardless of whether in a git repository
|
106
|
+
Given a directory named "nothingtoseehere"
|
107
|
+
When I cd to "nothingtoseehere"
|
108
|
+
And I run `lolcommits --test --capture`
|
109
|
+
Then the output should contain "*** Capturing in test mode."
|
110
|
+
And the output should not contain "path does not exist (ArgumentError)"
|
111
|
+
And the exit status should be 0
|
112
|
+
|
113
|
+
Scenario: test capture should store in its own test directory
|
114
|
+
Given a git repository named "randomgitrepo"
|
115
|
+
When I cd to "randomgitrepo"
|
116
|
+
And I successfully run `lolcommits --test --capture`
|
117
|
+
Then a directory named "../.lolcommits/test" should exist
|
118
|
+
And a directory named "../.lolcommits/randomgitrepo" should not exist
|
119
|
+
|
120
|
+
Scenario: last command should work properly when in a lolrepo
|
121
|
+
Given a git repository named "randomgitrepo"
|
122
|
+
And a loldir named "randomgitrepo" with 2 lolimages
|
123
|
+
And I cd to "randomgitrepo"
|
124
|
+
When I run `lolcommits --last`
|
125
|
+
Then the exit status should be 0
|
126
|
+
|
127
|
+
Scenario: last command should fail gracefully if not in a lolrepo
|
128
|
+
Given a directory named "gitsuxcvs4eva"
|
129
|
+
And I cd to "gitsuxcvs4eva"
|
130
|
+
When I run `lolcommits --last`
|
131
|
+
Then the output should contain "Can't do that since we're not in a valid git repository!"
|
132
|
+
Then the exit status should be 1
|
133
|
+
|
134
|
+
Scenario: last command should fail gracefully if zero lolimages in lolrepo
|
135
|
+
Given a git repository named "randomgitrepo"
|
136
|
+
And a loldir named "randomgitrepo" with 0 lolimages
|
137
|
+
And I cd to "randomgitrepo"
|
138
|
+
When I run `lolcommits --last`
|
139
|
+
Then the output should contain "No lolcommits have been captured for this repository yet."
|
140
|
+
Then the exit status should be 1
|
141
|
+
|
142
|
+
Scenario: browse command should work properly when in a lolrepo
|
143
|
+
Given a git repository named "randomgitrepo"
|
144
|
+
And a loldir named "randomgitrepo" with 2 lolimages
|
145
|
+
And I cd to "randomgitrepo"
|
146
|
+
When I run `lolcommits --browse`
|
147
|
+
Then the exit status should be 0
|
148
|
+
|
149
|
+
Scenario: browse command should fail gracefully when not in a lolrepo
|
150
|
+
Given a directory named "gitsuxcvs4eva"
|
151
|
+
And I cd to "gitsuxcvs4eva"
|
152
|
+
When I run `lolcommits --browse`
|
153
|
+
Then the output should contain "Can't do that since we're not in a valid git repository!"
|
154
|
+
Then the exit status should be 1
|
41
155
|
|