qlive 0.2.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -1
- data/lib/qlive/dev_reload.rb +2 -0
- data/lib/qlive/qunit_assets.rb +38 -18
- data/lib/qlive/rack.rb +2 -1
- data/lib/qlive/registry.rb +50 -31
- data/lib/qlive/setup.rb +9 -1
- data/lib/qlive/suite.rb +15 -14
- data/lib/qlive/version.rb +1 -1
- data/qlive.gemspec +1 -1
- data/spec/fixtures/fancy_workflow/as_admin_qlive.rb +11 -0
- data/spec/fixtures/fancy_workflow/as_user_qlive.rb +11 -0
- data/spec/fixtures/regressions/stay_unbroken/{stay_unbroken_qlive.rb → qlive.rb} +1 -1
- data/spec/qlive/rack_spec.rb +12 -11
- data/spec/qlive/registry_spec.rb +10 -9
- data/spec/qlive/suite_spec.rb +12 -22
- metadata +24 -12
- data/spec/fixtures/fancy_workflow/fancy_workflow_qlive.rb +0 -9
data/Gemfile
CHANGED
data/lib/qlive/dev_reload.rb
CHANGED
@@ -12,10 +12,12 @@ module Qlive
|
|
12
12
|
|
13
13
|
|
14
14
|
def self.reload_main
|
15
|
+
Registry.reset_all
|
15
16
|
load "#{File.expand_path('../rack.rb', __FILE__)}"
|
16
17
|
load "#{File.expand_path('../qunit_assets.rb', __FILE__)}"
|
17
18
|
load "#{File.expand_path('../suite.rb', __FILE__)}"
|
18
19
|
load "#{File.expand_path('../registry.rb', __FILE__)}"
|
20
|
+
Registry.find_suites
|
19
21
|
end
|
20
22
|
end
|
21
23
|
end
|
data/lib/qlive/qunit_assets.rb
CHANGED
@@ -5,9 +5,9 @@ module Qlive
|
|
5
5
|
def prepare_assets
|
6
6
|
before_body_close.concat(
|
7
7
|
qunit_html_structure |
|
8
|
-
qunit_support_assets |
|
9
8
|
qunit_framework |
|
10
9
|
qunit_disable_autostart |
|
10
|
+
qunit_support_assets |
|
11
11
|
qunit_javascript_test_sources |
|
12
12
|
qunit_finalize
|
13
13
|
)
|
@@ -21,19 +21,11 @@ module Qlive
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def qunit_support_assets
|
24
|
-
|
25
|
-
path = "#{Qlive.setup[:base_path]}#{support_relpath}"
|
26
|
-
if (File.exist?(path))
|
27
|
-
glob_script_tags(path, "#{Qlive.setup[:url_prefix] || ''}#{support_relpath}")
|
28
|
-
else
|
29
|
-
[]
|
30
|
-
end
|
24
|
+
glob_script_tags("#{sans_slash(base_path)}#{Qlive.setup[:js_support_relpath]}")
|
31
25
|
end
|
32
26
|
|
33
27
|
def qunit_javascript_test_sources
|
34
|
-
|
35
|
-
url_prefix = "#{Qlive.setup[:url_prefix] || ''}/#{suite_name}"
|
36
|
-
glob_script_tags(test_path, url_prefix)
|
28
|
+
glob_script_tags(File.expand_path('..', self.registration.path))
|
37
29
|
end
|
38
30
|
|
39
31
|
def qunit_html_structure
|
@@ -45,7 +37,6 @@ module Qlive
|
|
45
37
|
'<h2 id="qunit-userAgent"></h2>',
|
46
38
|
'<ol id="qunit-tests"></ol>',
|
47
39
|
'<div id="qunit-fixture">test markup, will be hidden</div>',
|
48
|
-
'<div id="display-proxified-tests"></div>',
|
49
40
|
'</div>'
|
50
41
|
]
|
51
42
|
end
|
@@ -57,19 +48,48 @@ module Qlive
|
|
57
48
|
end
|
58
49
|
|
59
50
|
def qunit_finalize
|
60
|
-
|
61
|
-
|
62
|
-
|
51
|
+
js=<<EOJS
|
52
|
+
<script>
|
53
|
+
window.endQlive = function() {
|
54
|
+
if (!$('#qlive-complete').length) {
|
55
|
+
$('body').append('<div id="qlive-complete"></div>');
|
56
|
+
}
|
57
|
+
};
|
58
|
+
QUnit.done = function(failed, passed, total, runtime) {
|
59
|
+
window.endQlive();
|
60
|
+
};
|
61
|
+
</script>
|
62
|
+
EOJS
|
63
|
+
[ js ]
|
63
64
|
end
|
64
65
|
|
65
|
-
def glob_script_tags(src_base_path
|
66
|
-
|
66
|
+
def glob_script_tags(src_base_path)
|
67
|
+
return [] unless File.exist?(src_base_path)
|
68
|
+
sources = Dir.glob("#{src_base_path}#{trailing_slash(src_base_path)}**/*.js").sort.flatten
|
67
69
|
sources.map do |src|
|
68
70
|
src = src.to_s
|
69
|
-
href = "#{url_prefix}#{src.sub(
|
71
|
+
href = "#{url_prefix}#{src.sub(base_path, '')}"
|
70
72
|
"<script type='text/javascript' src='#{href}'></script>"
|
71
73
|
end
|
72
74
|
end
|
73
75
|
|
76
|
+
private
|
77
|
+
|
78
|
+
def url_prefix
|
79
|
+
@url_prefix ||= sans_slash(Qlive.setup[:url_prefix] || '')
|
80
|
+
end
|
81
|
+
|
82
|
+
def sans_slash(path)
|
83
|
+
path.end_with?('/') ? path[0..-1] : path
|
84
|
+
end
|
85
|
+
|
86
|
+
def base_path
|
87
|
+
Qlive.setup[:base_path]
|
88
|
+
end
|
89
|
+
|
90
|
+
def trailing_slash(path)
|
91
|
+
path.end_with?('/') ? '' : '/'
|
92
|
+
end
|
93
|
+
|
74
94
|
end
|
75
95
|
end
|
data/lib/qlive/rack.rb
CHANGED
@@ -22,13 +22,14 @@ module Qlive
|
|
22
22
|
:request => request,
|
23
23
|
:session => env["rack.session"]
|
24
24
|
})
|
25
|
-
suite.
|
25
|
+
suite.before_each_suite(request)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
29
|
status, headers, body = @app.call(env)
|
30
30
|
|
31
31
|
if suite
|
32
|
+
suite.before_suite_response(status, headers, body)
|
32
33
|
inject_html(:after_open, :head, suite.html_after_head_open, body, headers)
|
33
34
|
inject_html(:before_close, :head, suite.html_before_head_close, body, headers)
|
34
35
|
inject_html(:after_open, :body, suite.html_after_body_open, body, headers)
|
data/lib/qlive/registry.rb
CHANGED
@@ -1,62 +1,81 @@
|
|
1
|
+
require 'uri'
|
1
2
|
require 'qlive/setup'
|
2
3
|
require 'qlive/suite'
|
3
4
|
|
4
5
|
module Qlive
|
5
6
|
module Registry
|
6
7
|
|
7
|
-
$
|
8
|
+
$qlive_registrations_by_name ||= {}
|
9
|
+
$qlive_registrations_by_class ||= {}
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
class Registration
|
12
|
+
attr_accessor :name
|
13
|
+
attr_accessor :path
|
14
|
+
attr_accessor :klass
|
15
|
+
attr_accessor :extras
|
12
16
|
|
17
|
+
def initialize(args)
|
18
|
+
[ :name, :path, :klass ].each do |var|
|
19
|
+
instance_variable_set("@#{var}", args[var])
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
13
23
|
|
14
24
|
def self.find_suites
|
15
|
-
suites = {}
|
16
25
|
base_path = Qlive.setup[:base_path]
|
17
|
-
|
18
|
-
sources.each do |path|
|
19
|
-
path = path.to_s
|
26
|
+
Dir.glob("#{base_path}#{base_path.end_with?('/') ? '' : '/'}**/*qlive.rb").sort.flatten.each do |path|
|
20
27
|
name = self.extract_suite_name_from_path(path)
|
21
|
-
|
22
|
-
|
28
|
+
unless all_by_name[name]
|
29
|
+
all_by_name[name] = Registration.new(
|
30
|
+
:name => name,
|
31
|
+
:path => path)
|
32
|
+
@qlive_current_suite_name = name
|
33
|
+
load(path.to_s)
|
34
|
+
@qlive_current_suite_name = nil
|
35
|
+
end
|
23
36
|
end
|
24
|
-
|
25
|
-
$qlive_all_suites = suites
|
37
|
+
all_by_name
|
26
38
|
end
|
27
39
|
|
28
40
|
def self.build_suite(suite_name)
|
29
|
-
|
30
|
-
|
41
|
+
suite_name = URI.unescape(suite_name)
|
42
|
+
registration = Registry.all_by_name[suite_name]
|
43
|
+
unless registration || Qlive.setup[:skip_suite_reloader]
|
31
44
|
Registry.find_suites
|
32
|
-
|
45
|
+
registration = Registry.all_by_name[suite_name]
|
33
46
|
end
|
34
|
-
raise "Qlive Suite not found: #{suite_name}" unless
|
35
|
-
load
|
36
|
-
klass =
|
47
|
+
raise "Qlive Suite not found: #{suite_name}" unless registration
|
48
|
+
load registration.path
|
49
|
+
klass = registration.klass
|
37
50
|
raise "Qlive could not find class for suite: #{suite_name}" unless klass
|
38
51
|
klass.new
|
39
52
|
end
|
40
53
|
|
41
54
|
def self.register_class(klass)
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
55
|
+
registration = $qlive_registrations_by_class[klass]
|
56
|
+
registration ||= Registry.all_by_name[@qlive_current_suite_name]
|
57
|
+
if registration
|
58
|
+
registration.klass = klass
|
59
|
+
$qlive_registrations_by_class[klass] = registration
|
60
|
+
else
|
61
|
+
Qlive.logger.warn "Ignoring Qlive class '#{klass}'. File must be placed within the Qlive base_path: #{Qlive.setup[:base_path]}. Or you can change the base_path with Qlive.setup[:base_path] = /some/other/path"
|
62
|
+
end
|
63
|
+
registration
|
47
64
|
end
|
48
65
|
|
49
|
-
|
66
|
+
def self.reset_all
|
67
|
+
$qlive_registrations_by_name = {}
|
68
|
+
$qlive_registrations_by_class = {}
|
69
|
+
end
|
50
70
|
|
51
|
-
def self.
|
52
|
-
|
53
|
-
res.split('/')[0..-2].join('/')
|
71
|
+
def self.all_by_name
|
72
|
+
$qlive_registrations_by_name
|
54
73
|
end
|
55
74
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
75
|
+
private
|
76
|
+
|
77
|
+
def self.extract_suite_name_from_path(path)
|
78
|
+
path.sub(Qlive.setup[:base_path], '').sub(/_?qlive\.rb$/, '').sub(/^\//, '').sub(/\/$/, '')
|
60
79
|
end
|
61
80
|
|
62
81
|
end
|
data/lib/qlive/setup.rb
CHANGED
@@ -12,7 +12,15 @@ module Qlive
|
|
12
12
|
@qlive_config
|
13
13
|
end
|
14
14
|
|
15
|
+
class DefaultLogger
|
16
|
+
%w( debug info warn error).each do |level|
|
17
|
+
define_method(level) do |raw|
|
18
|
+
$stdout.write("#{level.upcase}: #{raw.to_s}\n")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
15
23
|
def self.logger
|
16
|
-
self.setup[:logger]
|
24
|
+
self.setup[:logger] ||= DefaultLogger.new
|
17
25
|
end
|
18
26
|
end
|
data/lib/qlive/suite.rb
CHANGED
@@ -10,13 +10,13 @@ module Qlive
|
|
10
10
|
InsertionPoints ||= [ 'after_head_open', 'before_head_close', 'after_body_open', 'before_body_close']
|
11
11
|
|
12
12
|
def self.included(base)
|
13
|
-
|
13
|
+
registration = Registry.register_class(base)
|
14
14
|
base.class_eval do
|
15
15
|
class << self
|
16
|
-
attr_reader :
|
16
|
+
attr_reader :suite_registration
|
17
17
|
end
|
18
18
|
end
|
19
|
-
base.instance_variable_set(:@
|
19
|
+
base.instance_variable_set(:@suite_registration, registration)
|
20
20
|
|
21
21
|
InsertionPoints.each do |place|
|
22
22
|
attr_accessor place
|
@@ -42,25 +42,26 @@ module Qlive
|
|
42
42
|
prepare_assets
|
43
43
|
end
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
self.meta_data[:name]
|
48
|
-
end
|
49
|
-
|
50
|
-
def meta_data
|
51
|
-
self.class.suite_meta_data
|
45
|
+
def registration
|
46
|
+
self.class.suite_registration
|
52
47
|
end
|
53
48
|
|
54
|
-
|
55
49
|
def suite_name
|
56
|
-
self.name
|
50
|
+
self.registration.name
|
57
51
|
end
|
58
52
|
|
53
|
+
def before_each_suite(rack_request)
|
54
|
+
# override in suite
|
55
|
+
end
|
59
56
|
|
60
|
-
|
57
|
+
def before_suite_response(status, headers, body)
|
58
|
+
# override in suite
|
59
|
+
end
|
61
60
|
|
61
|
+
# DEPRECATED
|
62
62
|
def before_each_request(rack_request)
|
63
|
-
|
63
|
+
Qlive.logger.warn("Qlive suite '#{suite_name}' uses deprecated 'before_each_request' method. Rename it to 'before_each_suite'.")
|
64
|
+
before_each_suite(rack_request)
|
64
65
|
end
|
65
66
|
|
66
67
|
end
|
data/lib/qlive/version.rb
CHANGED
data/qlive.gemspec
CHANGED
data/spec/qlive/rack_spec.rb
CHANGED
@@ -1,20 +1,21 @@
|
|
1
1
|
require File.expand_path("../../spec_helper.rb", __FILE__)
|
2
2
|
|
3
|
-
|
4
|
-
class HappyGoLuckyQlive
|
5
|
-
include Qlive::Suite
|
3
|
+
Registry = Qlive::Registry
|
6
4
|
|
7
|
-
|
8
|
-
rack_request.session[:logged_in_as] = 1255
|
9
|
-
end
|
10
|
-
end
|
5
|
+
describe Qlive::Rack do
|
11
6
|
|
12
7
|
before(:each) do
|
13
|
-
|
14
|
-
|
8
|
+
Registry.find_suites
|
9
|
+
suite = FancyWorkflow::AsUser.new
|
10
|
+
class << suite
|
11
|
+
def before_each_suite(rack_request)
|
12
|
+
rack_request.session[:logged_in_as] = 1255
|
13
|
+
end
|
14
|
+
end
|
15
|
+
Registry.stub!(:build_suite).with('fancy_workflow/as_user').and_return(suite)
|
15
16
|
end
|
16
17
|
|
17
|
-
let(:environment) { Rack::MockRequest.env_for('/webapp/tinfoiled?qlive=
|
18
|
+
let(:environment) { Rack::MockRequest.env_for('/webapp/tinfoiled?qlive=fancy_workflow/as_user#frontpage') }
|
18
19
|
let(:application) { lambda{|env| [200, {'Content-Type' => 'text/html'}, [ html_page ]]} }
|
19
20
|
let(:middleware) do
|
20
21
|
Qlive::Rack.new(application, { :base_path => fixtures_base_path })
|
@@ -27,7 +28,7 @@ describe Qlive::Rack do
|
|
27
28
|
|
28
29
|
it "should allow suite to modify session data" do
|
29
30
|
middleware.call(environment)
|
30
|
-
environment['rack.session'].should == {:logged_in_as => 1255} # see
|
31
|
+
environment['rack.session'].should == {:logged_in_as => 1255} # see before_each_suite
|
31
32
|
end
|
32
33
|
|
33
34
|
#todo: describe "magic param" do
|
data/spec/qlive/registry_spec.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
require File.expand_path("../../spec_helper.rb", __FILE__)
|
2
2
|
|
3
3
|
describe Qlive::Registry, "find_suites" do
|
4
|
-
it "should find qlive suites" do
|
4
|
+
it "should find qlive suites in the qlive base_path" do
|
5
5
|
suites = Qlive::Registry.find_suites
|
6
6
|
suites.length.should > 0
|
7
|
-
suites['fancy_workflow'].should_not be_nil
|
8
7
|
end
|
9
8
|
|
10
|
-
it "should
|
9
|
+
it "should name suites by pathname within the base path, trimming qlive.rb and lead/trail slashes" do
|
11
10
|
suites = Qlive::Registry.find_suites
|
12
|
-
suites.
|
11
|
+
suites['fancy_workflow/as_user'].should_not be_nil
|
12
|
+
suites['fancy_workflow/as_admin'].should_not be_nil
|
13
13
|
suites['regressions/stay_unbroken'].should_not be_nil
|
14
14
|
end
|
15
15
|
end
|
@@ -18,13 +18,14 @@ end
|
|
18
18
|
describe Qlive::Registry, "build_suite" do
|
19
19
|
|
20
20
|
it "should instantiate suite and add class to meta data registry" do
|
21
|
-
suite = Qlive::Registry.build_suite('fancy_workflow')
|
22
|
-
suite.class.name.should == '
|
21
|
+
suite = Qlive::Registry.build_suite('fancy_workflow/as_user')
|
22
|
+
suite.class.name.should == 'FancyWorkflow::AsUser'
|
23
23
|
end
|
24
24
|
|
25
|
-
it "should
|
26
|
-
|
27
|
-
|
25
|
+
it "should raise an error when suite is not found" do
|
26
|
+
lambda {
|
27
|
+
suite = Qlive::Registry.build_suite('stay_unbroken')
|
28
|
+
}.should raise_error
|
28
29
|
end
|
29
30
|
|
30
31
|
end
|
data/spec/qlive/suite_spec.rb
CHANGED
@@ -1,20 +1,14 @@
|
|
1
1
|
require File.expand_path("../../spec_helper.rb", __FILE__)
|
2
2
|
|
3
|
-
|
4
|
-
class BlueSuite
|
5
|
-
include Qlive::Suite
|
6
|
-
|
7
|
-
def before_each_request(rack_request)
|
8
|
-
@pretend_factory_girl = true
|
9
|
-
@pretend_devise_user_login = true
|
10
|
-
end
|
11
|
-
end
|
3
|
+
Registry = ::Qlive::Registry
|
12
4
|
|
5
|
+
describe Qlive::Suite do
|
13
6
|
let(:suite) do
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
7
|
+
Registry.find_suites
|
8
|
+
res = Registry.build_suite('fancy_workflow/as_user')
|
9
|
+
res.prepare # normally called by rack
|
10
|
+
res.after_head_open << '<script> doSomethingEarly();</script>'
|
11
|
+
res
|
18
12
|
end
|
19
13
|
|
20
14
|
it "should provide array of desired html at all insertion points" do
|
@@ -28,29 +22,25 @@ end
|
|
28
22
|
|
29
23
|
describe Qlive::Suite, "qunit source" do
|
30
24
|
before(:each) do
|
31
|
-
@suite = Qlive::Registry.build_suite('fancy_workflow')
|
25
|
+
@suite = Qlive::Registry.build_suite('fancy_workflow/as_user')
|
32
26
|
@suite.prepare
|
33
27
|
end
|
34
28
|
|
35
29
|
it "should insert qunit resources and all js files in the same directory as the suite" do
|
36
30
|
source_tags = @suite.qunit_javascript_test_sources
|
37
31
|
source_tags.length.should == 2
|
38
|
-
source_tags.join("\n").should match(/#{Regexp.escape("/qlive/sources/fancy_workflow/post-new-recipe.js")}/)
|
32
|
+
source_tags.join("\n").should match(/#{Regexp.escape("/qlive/sources/fancy_workflow/as_user/post-new-recipe.js")}/)
|
39
33
|
end
|
40
34
|
|
41
35
|
end
|
42
36
|
|
43
37
|
|
44
38
|
describe Qlive::Suite, "insertion helper methods" do
|
45
|
-
|
46
|
-
include Qlive::Suite
|
47
|
-
end
|
48
|
-
|
49
|
-
let(:suite) { GreenSuite.new }
|
39
|
+
let(:registration) { Registry.find_suites; Registry.all_by_name['fancy_workflow/as_user'] }
|
50
40
|
|
51
41
|
it "should not mess up metacoding too much" do
|
52
|
-
a =
|
53
|
-
b =
|
42
|
+
a = registration.klass.new
|
43
|
+
b = registration.klass.new
|
54
44
|
a.after_head_open = [ 8 ]
|
55
45
|
b.after_head_open = [ 9 ]
|
56
46
|
a.after_head_open[0].should == 8
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qlive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-03-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,18 +21,28 @@ dependencies:
|
|
21
21
|
version: '1.4'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.4'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rspec
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
31
36
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.
|
37
|
+
version: '2.11'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '2.11'
|
36
46
|
description: run qunit tests against actual back-end server with prepared test fixtures
|
37
47
|
email:
|
38
48
|
- support@proxv.com
|
@@ -52,11 +62,12 @@ files:
|
|
52
62
|
- lib/qlive/suite.rb
|
53
63
|
- lib/qlive/version.rb
|
54
64
|
- qlive.gemspec
|
55
|
-
- spec/fixtures/fancy_workflow/
|
65
|
+
- spec/fixtures/fancy_workflow/as_admin_qlive.rb
|
66
|
+
- spec/fixtures/fancy_workflow/as_user_qlive.rb
|
56
67
|
- spec/fixtures/fancy_workflow/post-new-recipe.js
|
57
68
|
- spec/fixtures/fancy_workflow/verify-creds.js
|
58
69
|
- spec/fixtures/qunit_support/start-qunit.js
|
59
|
-
- spec/fixtures/regressions/stay_unbroken/
|
70
|
+
- spec/fixtures/regressions/stay_unbroken/qlive.rb
|
60
71
|
- spec/fixtures/regressions/stay_unbroken/test-never-again.js
|
61
72
|
- spec/qlive/rack_spec.rb
|
62
73
|
- spec/qlive/registry_spec.rb
|
@@ -83,16 +94,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
94
|
version: '0'
|
84
95
|
requirements: []
|
85
96
|
rubyforge_project: qlive
|
86
|
-
rubygems_version: 1.8.
|
97
|
+
rubygems_version: 1.8.25
|
87
98
|
signing_key:
|
88
99
|
specification_version: 3
|
89
100
|
summary: run qunit tests against actual back-end server with prepared test fixtures
|
90
101
|
test_files:
|
91
|
-
- spec/fixtures/fancy_workflow/
|
102
|
+
- spec/fixtures/fancy_workflow/as_admin_qlive.rb
|
103
|
+
- spec/fixtures/fancy_workflow/as_user_qlive.rb
|
92
104
|
- spec/fixtures/fancy_workflow/post-new-recipe.js
|
93
105
|
- spec/fixtures/fancy_workflow/verify-creds.js
|
94
106
|
- spec/fixtures/qunit_support/start-qunit.js
|
95
|
-
- spec/fixtures/regressions/stay_unbroken/
|
107
|
+
- spec/fixtures/regressions/stay_unbroken/qlive.rb
|
96
108
|
- spec/fixtures/regressions/stay_unbroken/test-never-again.js
|
97
109
|
- spec/qlive/rack_spec.rb
|
98
110
|
- spec/qlive/registry_spec.rb
|