flood-capybara 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +282 -0
- data/.ruby-version +1 -0
- data/README.md +25 -4
- data/flood-capybara.gemspec +1 -0
- data/lib/cli/application.rb +1 -0
- data/lib/flood-capybara/application.rb +87 -63
- data/lib/flood-capybara/version.rb +1 -1
- data/spec/features/homepage_spec.rb +9 -5
- data/spec/spec_helper.rb +2 -1
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a82db60e58b791d24a3023c728e6810419f0500e
|
4
|
+
data.tar.gz: 05246ab3b4773bffb9661effd9afa1f4297b34b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1614e8c97070239cf819b28bff6e2996216c37b77525b718d86ac4f721d7e61b62c6e874e75dabe3fa4b5a89a8a4d06bf996082d17e310c8211e25d32300403
|
7
|
+
data.tar.gz: 24115bab09ab22e0030182f8c194b4bac22e1e53edb2db290c9bee1991585d8d9bde906eb0f3ce6bf4f22b0c627faf57387c4c040924a6cbbebf1cd361a3365f
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,282 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- db/**/*
|
4
|
+
- config/**/*
|
5
|
+
- script/**/*
|
6
|
+
- spec/**/*
|
7
|
+
- app/admin/**/*
|
8
|
+
|
9
|
+
AccessorMethodName:
|
10
|
+
Enabled: false
|
11
|
+
|
12
|
+
ActionFilter:
|
13
|
+
Enabled: false
|
14
|
+
|
15
|
+
Alias:
|
16
|
+
Enabled: false
|
17
|
+
|
18
|
+
ArrayJoin:
|
19
|
+
Enabled: false
|
20
|
+
|
21
|
+
AsciiComments:
|
22
|
+
Enabled: false
|
23
|
+
|
24
|
+
AsciiIdentifiers:
|
25
|
+
Enabled: false
|
26
|
+
|
27
|
+
Attr:
|
28
|
+
Enabled: false
|
29
|
+
|
30
|
+
BlockNesting:
|
31
|
+
Enabled: false
|
32
|
+
|
33
|
+
CaseEquality:
|
34
|
+
Enabled: false
|
35
|
+
|
36
|
+
CharacterLiteral:
|
37
|
+
Enabled: false
|
38
|
+
|
39
|
+
ClassAndModuleChildren:
|
40
|
+
Enabled: false
|
41
|
+
|
42
|
+
ClassLength:
|
43
|
+
Enabled: false
|
44
|
+
|
45
|
+
ClassVars:
|
46
|
+
Enabled: false
|
47
|
+
|
48
|
+
CollectionMethods:
|
49
|
+
PreferredMethods:
|
50
|
+
find: detect
|
51
|
+
reduce: inject
|
52
|
+
collect: map
|
53
|
+
find_all: select
|
54
|
+
|
55
|
+
ColonMethodCall:
|
56
|
+
Enabled: false
|
57
|
+
|
58
|
+
CommentAnnotation:
|
59
|
+
Enabled: false
|
60
|
+
|
61
|
+
CyclomaticComplexity:
|
62
|
+
Enabled: false
|
63
|
+
|
64
|
+
Delegate:
|
65
|
+
Enabled: false
|
66
|
+
|
67
|
+
DeprecatedHashMethods:
|
68
|
+
Enabled: false
|
69
|
+
|
70
|
+
Documentation:
|
71
|
+
Enabled: false
|
72
|
+
|
73
|
+
DotPosition:
|
74
|
+
EnforcedStyle: trailing
|
75
|
+
|
76
|
+
DoubleNegation:
|
77
|
+
Enabled: false
|
78
|
+
|
79
|
+
EachWithObject:
|
80
|
+
Enabled: false
|
81
|
+
|
82
|
+
EmptyLiteral:
|
83
|
+
Enabled: false
|
84
|
+
|
85
|
+
Encoding:
|
86
|
+
Enabled: false
|
87
|
+
|
88
|
+
EvenOdd:
|
89
|
+
Enabled: false
|
90
|
+
|
91
|
+
FileName:
|
92
|
+
Enabled: false
|
93
|
+
|
94
|
+
FlipFlop:
|
95
|
+
Enabled: false
|
96
|
+
|
97
|
+
FormatString:
|
98
|
+
Enabled: false
|
99
|
+
|
100
|
+
GlobalVars:
|
101
|
+
Enabled: false
|
102
|
+
|
103
|
+
GuardClause:
|
104
|
+
Enabled: false
|
105
|
+
|
106
|
+
IfUnlessModifier:
|
107
|
+
Enabled: false
|
108
|
+
|
109
|
+
IfWithSemicolon:
|
110
|
+
Enabled: false
|
111
|
+
|
112
|
+
InlineComment:
|
113
|
+
Enabled: false
|
114
|
+
|
115
|
+
Lambda:
|
116
|
+
Enabled: false
|
117
|
+
|
118
|
+
LambdaCall:
|
119
|
+
Enabled: false
|
120
|
+
|
121
|
+
LineEndConcatenation:
|
122
|
+
Enabled: false
|
123
|
+
|
124
|
+
LineLength:
|
125
|
+
Max: 120
|
126
|
+
|
127
|
+
MethodLength:
|
128
|
+
Enabled: false
|
129
|
+
|
130
|
+
ModuleFunction:
|
131
|
+
Enabled: false
|
132
|
+
|
133
|
+
NegatedIf:
|
134
|
+
Enabled: false
|
135
|
+
|
136
|
+
NegatedWhile:
|
137
|
+
Enabled: false
|
138
|
+
|
139
|
+
Next:
|
140
|
+
Enabled: false
|
141
|
+
|
142
|
+
NilComparison:
|
143
|
+
Enabled: false
|
144
|
+
|
145
|
+
Not:
|
146
|
+
Enabled: false
|
147
|
+
|
148
|
+
NumericLiterals:
|
149
|
+
Enabled: false
|
150
|
+
|
151
|
+
OneLineConditional:
|
152
|
+
Enabled: false
|
153
|
+
|
154
|
+
OpMethod:
|
155
|
+
Enabled: false
|
156
|
+
|
157
|
+
ParameterLists:
|
158
|
+
Enabled: false
|
159
|
+
|
160
|
+
PercentLiteralDelimiters:
|
161
|
+
Enabled: false
|
162
|
+
|
163
|
+
PerlBackrefs:
|
164
|
+
Enabled: false
|
165
|
+
|
166
|
+
PredicateName:
|
167
|
+
NamePrefixBlacklist:
|
168
|
+
- is_
|
169
|
+
|
170
|
+
Proc:
|
171
|
+
Enabled: false
|
172
|
+
|
173
|
+
RaiseArgs:
|
174
|
+
Enabled: false
|
175
|
+
|
176
|
+
RegexpLiteral:
|
177
|
+
Enabled: false
|
178
|
+
|
179
|
+
SelfAssignment:
|
180
|
+
Enabled: false
|
181
|
+
|
182
|
+
SingleLineBlockParams:
|
183
|
+
Enabled: false
|
184
|
+
|
185
|
+
SingleLineMethods:
|
186
|
+
Enabled: false
|
187
|
+
|
188
|
+
SignalException:
|
189
|
+
Enabled: false
|
190
|
+
|
191
|
+
SpecialGlobalVars:
|
192
|
+
Enabled: false
|
193
|
+
|
194
|
+
StringLiterals:
|
195
|
+
Enabled: true
|
196
|
+
EnforcedStyle: single_quotes
|
197
|
+
|
198
|
+
VariableInterpolation:
|
199
|
+
Enabled: false
|
200
|
+
|
201
|
+
TrailingComma:
|
202
|
+
Enabled: false
|
203
|
+
|
204
|
+
TrivialAccessors:
|
205
|
+
Enabled: false
|
206
|
+
|
207
|
+
VariableInterpolation:
|
208
|
+
Enabled: false
|
209
|
+
|
210
|
+
WhenThen:
|
211
|
+
Enabled: false
|
212
|
+
|
213
|
+
WhileUntilModifier:
|
214
|
+
Enabled: false
|
215
|
+
|
216
|
+
WordArray:
|
217
|
+
Enabled: false
|
218
|
+
|
219
|
+
# Lint
|
220
|
+
|
221
|
+
AmbiguousOperator:
|
222
|
+
Enabled: false
|
223
|
+
|
224
|
+
AmbiguousRegexpLiteral:
|
225
|
+
Enabled: false
|
226
|
+
|
227
|
+
AssignmentInCondition:
|
228
|
+
Enabled: false
|
229
|
+
|
230
|
+
ConditionPosition:
|
231
|
+
Enabled: false
|
232
|
+
|
233
|
+
DeprecatedClassMethods:
|
234
|
+
Enabled: false
|
235
|
+
|
236
|
+
ElseLayout:
|
237
|
+
Enabled: false
|
238
|
+
|
239
|
+
HandleExceptions:
|
240
|
+
Enabled: false
|
241
|
+
|
242
|
+
InvalidCharacterLiteral:
|
243
|
+
Enabled: false
|
244
|
+
|
245
|
+
LiteralInCondition:
|
246
|
+
Enabled: false
|
247
|
+
|
248
|
+
LiteralInInterpolation:
|
249
|
+
Enabled: false
|
250
|
+
|
251
|
+
Loop:
|
252
|
+
Enabled: false
|
253
|
+
|
254
|
+
ParenthesesAsGroupedExpression:
|
255
|
+
Enabled: false
|
256
|
+
|
257
|
+
RequireParentheses:
|
258
|
+
Enabled: false
|
259
|
+
|
260
|
+
UnderscorePrefixedVariableName:
|
261
|
+
Enabled: false
|
262
|
+
|
263
|
+
Void:
|
264
|
+
Enabled: false
|
265
|
+
|
266
|
+
Metrics/AbcSize:
|
267
|
+
Enabled: false
|
268
|
+
|
269
|
+
Metrics/PerceivedComplexity:
|
270
|
+
Severity: warning
|
271
|
+
|
272
|
+
Style/MultilineOperationIndentation:
|
273
|
+
EnforcedStyle: indented
|
274
|
+
SupportedStyles:
|
275
|
+
- aligned
|
276
|
+
- indented
|
277
|
+
|
278
|
+
Style/AlignParameters:
|
279
|
+
EnforcedStyle: with_fixed_indentation
|
280
|
+
SupportedStyles:
|
281
|
+
- with_first_parameter
|
282
|
+
- with_fixed_indentation
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.5
|
data/README.md
CHANGED
@@ -2,9 +2,7 @@
|
|
2
2
|
|
3
3
|
![http://www.bay12forums.com/smf/index.php?action=profile;u=22552](http://i.imgur.com/4nAHS.gif)
|
4
4
|
|
5
|
-
This gem lets you run your Capybara acceptance tests on Flood IO
|
6
|
-
|
7
|
-
This works by essetinally parsing specs from your specs directory, wrapping them up and running them on Flood IO with a specialised docker container (using phantomjs / poltergeist)
|
5
|
+
This gem lets you run your Capybara acceptance tests on Flood IO using RSpec 3.
|
8
6
|
|
9
7
|
## Installation
|
10
8
|
|
@@ -26,7 +24,30 @@ Or install it yourself as:
|
|
26
24
|
|
27
25
|
In your app / rails directory:
|
28
26
|
|
29
|
-
|
27
|
+
```
|
28
|
+
$ flood-capybara spec \
|
29
|
+
--api_token=$FLOOD_API_TOKEN \
|
30
|
+
--grid=1QNtoBftrokSErYJdTHRQg \
|
31
|
+
--rampup=60 \
|
32
|
+
--duration=120 \
|
33
|
+
--url=https://flood.io
|
34
|
+
```
|
35
|
+
|
36
|
+
or as a rake task e.g. `lib/tasks/flood.rake`
|
37
|
+
|
38
|
+
```
|
39
|
+
namespace :flood do
|
40
|
+
task run: :environment do
|
41
|
+
system %{
|
42
|
+
flood-capybara spec
|
43
|
+
--api_token=#{ENV['FLOOD_API_TOKEN']}
|
44
|
+
--rampup=#{ENV['RAMPUP'] || 60}
|
45
|
+
--duration=#{ENV['DURATION'] || 300}
|
46
|
+
--url=#{ENV['URL'] || 'https://flood-newrelic-ruby-kata.herokuapp.com/'}
|
47
|
+
}.squish
|
48
|
+
end
|
49
|
+
end
|
50
|
+
```
|
30
51
|
|
31
52
|
Options available:
|
32
53
|
|
data/flood-capybara.gemspec
CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency "elasticsearch-api"
|
28
28
|
spec.add_development_dependency "selenium-webdriver"
|
29
29
|
spec.add_development_dependency "pry"
|
30
|
+
spec.add_development_dependency "launchy"
|
30
31
|
|
31
32
|
spec.add_dependency "parser"
|
32
33
|
spec.add_dependency "unparser"
|
data/lib/cli/application.rb
CHANGED
@@ -6,37 +6,57 @@ class FloodCapybara
|
|
6
6
|
@steps = []
|
7
7
|
end
|
8
8
|
|
9
|
-
def run(
|
10
|
-
logger.info loading
|
11
|
-
config = RSpec.configuration
|
12
|
-
formatter = RSpec::Core::Formatters::JsonFormatter.new(config.output_stream)
|
13
|
-
reporter = RSpec::Core::Reporter.new(config)
|
9
|
+
def run(args = {})
|
14
10
|
config.instance_variable_set(:@reporter, reporter)
|
15
|
-
loader = config.send(:formatter_loader)
|
16
|
-
notifications = loader.send(:notifications_for, RSpec::Core::Formatters::JsonFormatter)
|
17
11
|
reporter.register_listener(formatter, *notifications)
|
12
|
+
|
18
13
|
RSpec::Core::Runner.run(['spec', '--dry-run'])
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
14
|
+
|
15
|
+
specs = formatter.output_hash
|
16
|
+
|
17
|
+
logger.info "Flood specs: \n" +
|
18
|
+
specs[:examples].collect {|spec| spec[:description]}.to_yaml
|
19
|
+
|
23
20
|
specs = specs[:examples].collect {|spec| spec[:file_path]}
|
24
21
|
|
25
|
-
specs
|
22
|
+
specs.try(:uniq).try(:each) do |spec|
|
26
23
|
ast = Parser::CurrentRuby.parse(File.read(spec))
|
27
|
-
iterate
|
24
|
+
iterate(ast)
|
28
25
|
end
|
29
|
-
|
26
|
+
|
27
|
+
flood(args)
|
30
28
|
end
|
31
29
|
|
32
30
|
private
|
33
31
|
|
32
|
+
def config
|
33
|
+
@_config ||= RSpec.configuration
|
34
|
+
end
|
35
|
+
|
36
|
+
def formatter
|
37
|
+
@_formatter ||= RSpec::Core::Formatters::JsonFormatter.new(File.open(File::NULL, 'w'))
|
38
|
+
end
|
39
|
+
|
40
|
+
def reporter
|
41
|
+
@_reporter ||= RSpec::Core::Reporter.new(config)
|
42
|
+
end
|
43
|
+
|
44
|
+
def loader
|
45
|
+
@_loader ||= config.send(:formatter_loader)
|
46
|
+
end
|
47
|
+
|
48
|
+
def notifications
|
49
|
+
@_notifications ||= loader.send(
|
50
|
+
:notifications_for,
|
51
|
+
RSpec::Core::Formatters::JsonFormatter)
|
52
|
+
end
|
53
|
+
|
34
54
|
def iterate(node)
|
35
55
|
return unless node.is_a?(AST::Node)
|
36
56
|
|
37
57
|
node.children.each_with_index do |child, index|
|
38
58
|
begin
|
39
|
-
if child.to_a.first.children
|
59
|
+
if (child.to_a.first.children & [:it]).present?
|
40
60
|
@steps << Unparser.unparse(child)
|
41
61
|
end
|
42
62
|
rescue
|
@@ -45,61 +65,65 @@ class FloodCapybara
|
|
45
65
|
end
|
46
66
|
end
|
47
67
|
|
48
|
-
def flood(
|
49
|
-
RestClient.proxy =
|
50
|
-
begin
|
51
|
-
file = Tempfile.new(['capybara_rspec', '.rb'])
|
52
|
-
file.write(@steps.join("\n"))
|
53
|
-
file.rewind
|
68
|
+
def flood(args = {})
|
69
|
+
RestClient.proxy = args[:proxy] if args[:proxy]
|
54
70
|
|
55
|
-
|
56
|
-
file: File.new("#{file.path}", 'rb')
|
57
|
-
}
|
71
|
+
response = RestClient.post endpoint(args), flood_params(args)
|
58
72
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
73
|
+
if response.code == 201
|
74
|
+
logger.info "Flood results: #{JSON.parse(response)["permalink"]}"
|
75
|
+
else
|
76
|
+
logger.fatal "Sorry there was an error: #{JSON.parse(response)["error"]}"
|
77
|
+
end
|
63
78
|
|
64
|
-
response = RestClient.post "#{params[:endpoint] ? params[:endpoint] : 'https://api.flood.io'}/floods?auth_token=#{params[:api_token]}",
|
65
|
-
{
|
66
|
-
flood: {
|
67
|
-
tool: 'capybara-rspec',
|
68
|
-
url: params[:url],
|
69
|
-
name: params[:name],
|
70
|
-
notes: params[:notes],
|
71
|
-
tag_list: params[:tag_list],
|
72
|
-
threads: params[:threads],
|
73
|
-
rampup: params[:rampup],
|
74
|
-
duration: params[:duration],
|
75
|
-
override_hosts: params[:override_hosts],
|
76
|
-
override_parameters: params[:override_parameters],
|
77
|
-
started: params[:started],
|
78
|
-
stopped: params[:stopped]
|
79
|
-
},
|
80
|
-
flood_files: flood_files,
|
81
|
-
region: params[:region],
|
82
|
-
multipart: true,
|
83
|
-
content_type: 'application/octet-stream'
|
84
|
-
}.merge(params)
|
85
|
-
|
86
|
-
if response.code == 200
|
87
|
-
logger.info "Flood results at: #{JSON.parse(response)["response"]["results"]["link"]}"
|
88
|
-
else
|
89
|
-
logger.fatal "Sorry there was an error: #{JSON.parse(response)["error_description"]}"
|
90
|
-
end
|
91
79
|
rescue => e
|
92
|
-
logger.fatal "Sorry there was an error: #{JSON.parse(e.response)["
|
93
|
-
end
|
80
|
+
logger.fatal "Sorry there was an error: #{JSON.parse(e.response)["error"]}"
|
94
81
|
end
|
95
82
|
|
96
|
-
def
|
97
|
-
|
98
|
-
|
99
|
-
@log
|
83
|
+
def endpoint(args)
|
84
|
+
"#{args[:endpoint] ? args[:endpoint] : 'https://api.flood.io'}/" +
|
85
|
+
"floods?auth_token=#{args[:api_token]}"
|
100
86
|
end
|
101
87
|
|
102
|
-
def
|
103
|
-
|
88
|
+
def flood_params(args)
|
89
|
+
{
|
90
|
+
flood: {
|
91
|
+
tool: 'capybara-rspec',
|
92
|
+
url: args[:url],
|
93
|
+
name: args[:name],
|
94
|
+
notes: args[:notes],
|
95
|
+
tag_list: args[:tag_list],
|
96
|
+
threads: args[:threads],
|
97
|
+
rampup: args[:rampup],
|
98
|
+
duration: args[:duration],
|
99
|
+
override_hosts: args[:override_hosts],
|
100
|
+
override_parameters: args[:override_parameters],
|
101
|
+
started: args[:started],
|
102
|
+
stopped: args[:stopped]
|
103
|
+
},
|
104
|
+
flood_files: flood_files,
|
105
|
+
region: args[:region],
|
106
|
+
multipart: true,
|
107
|
+
content_type: 'application/octet-stream'
|
108
|
+
}.merge(args)
|
109
|
+
end
|
110
|
+
|
111
|
+
def flood_files
|
112
|
+
{
|
113
|
+
file: File.new("#{file.path}", 'rb')
|
114
|
+
}
|
115
|
+
end
|
116
|
+
|
117
|
+
def file
|
118
|
+
temp = Tempfile.new(['capybara_rspec', '.rb'])
|
119
|
+
temp.write(@steps.join("\n"))
|
120
|
+
temp.rewind
|
121
|
+
temp
|
122
|
+
end
|
123
|
+
|
124
|
+
def logger
|
125
|
+
@_log ||= Logger.new(STDOUT)
|
126
|
+
@_log.level = Logger::DEBUG
|
127
|
+
@_log
|
104
128
|
end
|
105
129
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../spec_helper'
|
2
2
|
require 'cgi'
|
3
|
+
require 'pry'
|
3
4
|
|
4
5
|
ENV['PUBLIC_IPV4'] ||= `curl -s --fail --connect-timeout 1 http://169.254.169.254/latest/meta-data/public-ipv4 || curl -s --connect-timeout 10 ifconfig.me || echo 127.0.0.1`.chomp
|
5
6
|
|
@@ -11,12 +12,14 @@ describe "sign in", type: :feature do
|
|
11
12
|
after :each do
|
12
13
|
Capybara.default_driver == :poltergeist &&
|
13
14
|
page.driver.network_traffic.each do |request|
|
15
|
+
next unless request
|
16
|
+
next unless request.response_parts && request.response_parts.any? && request.response_parts.last
|
14
17
|
@client.index index: "results-#{Time.now.utc.strftime("%Y.%m.%d")}", type: 'capybara', body: {
|
15
18
|
timestamp: (Time.now.utc.to_f * 1000).to_i.to_s,
|
16
19
|
url: request.url,
|
17
20
|
label: CGI::escape(request.url),
|
18
|
-
request_headers: request.headers.
|
19
|
-
response_headers: request.response_parts.last.headers.
|
21
|
+
request_headers: request.headers.map {|header| header['name'] << '=' << header['value'] }.join(';'),
|
22
|
+
response_headers: request.response_parts.last.headers.map {|header| header['name'] << '=' << header['value'] }.join(';'),
|
20
23
|
start_time: (request.time.to_f * 1000).to_i.to_s,
|
21
24
|
end_time: (request.response_parts.last.time.to_f * 1000).to_i.to_s,
|
22
25
|
source_host: ENV['PUBLIC_IPV4'],
|
@@ -24,11 +27,12 @@ describe "sign in", type: :feature do
|
|
24
27
|
latency: nil,
|
25
28
|
sample_count: 1,
|
26
29
|
thread_id: ENV['THREAD_ID'] || 1,
|
27
|
-
active_threads: 1,
|
28
|
-
active_threads_in_group: 1,
|
30
|
+
active_threads: ENV['ACTIVE_THREADS'] || ENV['THREAD_ID'] || 1,
|
31
|
+
active_threads_in_group: ENV['ACTIVE_THREADS'] || ENV['THREAD_ID'] || 1,
|
29
32
|
uuid: ENV['FLOOD_UUID'],
|
30
33
|
response_code: request.response_parts.last.status,
|
31
|
-
|
34
|
+
successful: request.response_parts.last.status.to_s.start_with?('2', '3'),
|
35
|
+
bytes: request.response_parts.first.body_size,
|
32
36
|
request_data: nil,
|
33
37
|
response_data: nil
|
34
38
|
}
|
data/spec/spec_helper.rb
CHANGED
@@ -7,7 +7,8 @@ require 'elasticsearch'
|
|
7
7
|
|
8
8
|
Capybara.default_driver = :poltergeist
|
9
9
|
Capybara.save_and_open_page_path = File.dirname(__FILE__) + '/var/log/flood/custom'
|
10
|
-
Capybara.app_host = "http://127.0.0.1"
|
10
|
+
Capybara.app_host = ENV['APP_HOST'] || "http://127.0.0.1"
|
11
|
+
Capybara.default_wait_time = 5
|
11
12
|
|
12
13
|
RSpec.configure do |config|
|
13
14
|
config.before(:all) do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flood-capybara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Koopmans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: launchy
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: parser
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -201,6 +215,8 @@ extensions: []
|
|
201
215
|
extra_rdoc_files: []
|
202
216
|
files:
|
203
217
|
- ".gitignore"
|
218
|
+
- ".rubocop.yml"
|
219
|
+
- ".ruby-version"
|
204
220
|
- Gemfile
|
205
221
|
- LICENSE.txt
|
206
222
|
- README.md
|