teaspoon 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/app/assets/javascripts/support/sinon.js +5406 -3814
- data/app/assets/javascripts/teaspoon/fixture.coffee +4 -4
- data/app/views/teaspoon/suite/_boot.html.erb +1 -1
- data/lib/generators/teaspoon/install/templates/env_comments.rb.tt +3 -0
- data/lib/teaspoon-devkit.rb +8 -0
- data/lib/teaspoon/command_line.rb +3 -0
- data/lib/teaspoon/configuration.rb +2 -1
- data/lib/teaspoon/coverage.rb +3 -0
- data/lib/teaspoon/engine.rb +21 -0
- data/lib/teaspoon/exceptions.rb +7 -0
- data/lib/teaspoon/formatter/base.rb +2 -1
- data/lib/teaspoon/server.rb +6 -4
- data/lib/teaspoon/version.rb +1 -1
- metadata +3 -3
@@ -2,7 +2,7 @@ class Teaspoon.Fixture
|
|
2
2
|
|
3
3
|
@cache: {}
|
4
4
|
@el: null
|
5
|
-
@$el: null # will only be defined if window
|
5
|
+
@$el: null # will only be defined if window.jQuery is defined.
|
6
6
|
@json: []
|
7
7
|
|
8
8
|
# Public API
|
@@ -70,7 +70,7 @@ class Teaspoon.Fixture
|
|
70
70
|
create() unless window.fixture.el
|
71
71
|
|
72
72
|
if jQueryAvailable()
|
73
|
-
parsed =
|
73
|
+
parsed = jQuery(jQuery.parseHTML(content, document, true))
|
74
74
|
window.fixture.el.appendChild(parsed[i]) for i in [0...parsed.length]
|
75
75
|
else
|
76
76
|
window.fixture.el.innerHTML += content
|
@@ -78,7 +78,7 @@ class Teaspoon.Fixture
|
|
78
78
|
|
79
79
|
create = =>
|
80
80
|
window.fixture.el = document.createElement("div")
|
81
|
-
window.fixture.$el =
|
81
|
+
window.fixture.$el = jQuery(window.fixture.el) if jQueryAvailable()
|
82
82
|
window.fixture.el.id = "teaspoon-fixtures"
|
83
83
|
document.body?.appendChild(window.fixture.el)
|
84
84
|
|
@@ -105,4 +105,4 @@ class Teaspoon.Fixture
|
|
105
105
|
|
106
106
|
|
107
107
|
jQueryAvailable = ->
|
108
|
-
typeof(window
|
108
|
+
typeof(window.jQuery) == 'function'
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= javascript_include_tag *@suite.spec_assets, debug: @suite.config.expand_assets %>
|
1
|
+
<%= javascript_include_tag *@suite.spec_assets, debug: @suite.config.expand_assets, allow_non_precompiled: true %>
|
2
2
|
<script type="text/javascript">
|
3
3
|
Teaspoon.onWindowLoad(Teaspoon.execute);
|
4
4
|
</script>
|
@@ -113,6 +113,9 @@ Teaspoon.configure do |config|
|
|
113
113
|
# Specify a server to use with Rack (e.g. thin, mongrel). If nil is provided Rack::Server is used.
|
114
114
|
#config.server = nil
|
115
115
|
|
116
|
+
# Specify a host to run on a specific host, otherwise Teaspoon will use 127.0.0.1.
|
117
|
+
#config.server_host = nil
|
118
|
+
|
116
119
|
# Specify a port to run on a specific port, otherwise Teaspoon will use a random available port.
|
117
120
|
#config.server_port = nil
|
118
121
|
|
data/lib/teaspoon-devkit.rb
CHANGED
@@ -69,6 +69,14 @@ module Teaspoon
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
+
if !loaded_from_teaspoon_root?
|
73
|
+
Rake::Task["release"].clear
|
74
|
+
end
|
75
|
+
|
76
|
+
desc "Build and push teaspoon-#{framework} to Rubygems\n"
|
77
|
+
task "release" => ["build", "release:guard_clean", "release:rubygem_push"] do
|
78
|
+
end
|
79
|
+
|
72
80
|
if !loaded_from_teaspoon_root?
|
73
81
|
Rake::Task["default"].prerequisites.clear
|
74
82
|
Rake::Task["default"].clear
|
@@ -56,6 +56,9 @@ module Teaspoon
|
|
56
56
|
"Sets server to use with Rack.",
|
57
57
|
" e.g. webrick, thin"
|
58
58
|
|
59
|
+
opt :server_host, "--server-host HOST",
|
60
|
+
"Sets the server to use a specific host."
|
61
|
+
|
59
62
|
opt :server_port, "--server-port PORT",
|
60
63
|
"Sets the server to use a specific port."
|
61
64
|
|
@@ -25,13 +25,14 @@ module Teaspoon
|
|
25
25
|
|
26
26
|
# console runner specific
|
27
27
|
|
28
|
-
cattr_accessor :driver, :driver_options, :driver_timeout, :server, :server_port, :server_timeout, :fail_fast,
|
28
|
+
cattr_accessor :driver, :driver_options, :driver_timeout, :server, :server_host, :server_port, :server_timeout, :fail_fast,
|
29
29
|
:formatters, :color, :suppress_log,
|
30
30
|
:use_coverage
|
31
31
|
@@driver = Teaspoon::Driver.default
|
32
32
|
@@driver_options = nil
|
33
33
|
@@driver_timeout = 180
|
34
34
|
@@server = nil
|
35
|
+
@@server_host = nil
|
35
36
|
@@server_port = nil
|
36
37
|
@@server_timeout = 20
|
37
38
|
@@fail_fast = true
|
data/lib/teaspoon/coverage.rb
CHANGED
@@ -13,9 +13,12 @@ module Teaspoon
|
|
13
13
|
@data = data
|
14
14
|
@executable = Teaspoon::Instrumentation.executable
|
15
15
|
@config = self.class.configuration
|
16
|
+
|
17
|
+
raise Teaspoon::CoverageResultsNotFoundError unless @data
|
16
18
|
end
|
17
19
|
|
18
20
|
def generate_reports(&block)
|
21
|
+
|
19
22
|
input_path do |input|
|
20
23
|
results = []
|
21
24
|
@config.reports.each do |format|
|
data/lib/teaspoon/engine.rb
CHANGED
@@ -95,3 +95,24 @@ module Teaspoon
|
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end
|
98
|
+
|
99
|
+
begin
|
100
|
+
require 'action_view'
|
101
|
+
if ActionView::VERSION::STRING == '4.2.5'
|
102
|
+
require 'action_view/helpers/asset_tag_helper'
|
103
|
+
module ActionView::Helpers::AssetTagHelper
|
104
|
+
def javascript_include_tag(*sources)
|
105
|
+
options = sources.extract_options!.stringify_keys
|
106
|
+
path_options = options.extract!('protocol', 'extname').symbolize_keys
|
107
|
+
path_options[:debug] = options['allow_non_precompiled']
|
108
|
+
sources.uniq.map { |source|
|
109
|
+
tag_options = {
|
110
|
+
"src" => path_to_javascript(source, path_options)
|
111
|
+
}.merge!(options)
|
112
|
+
content_tag(:script, "", tag_options)
|
113
|
+
}.join("\n").html_safe
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
rescue
|
118
|
+
end
|
data/lib/teaspoon/exceptions.rb
CHANGED
@@ -151,4 +151,11 @@ module Teaspoon
|
|
151
151
|
super(msg)
|
152
152
|
end
|
153
153
|
end
|
154
|
+
|
155
|
+
class CoverageResultsNotFoundError < Teaspoon::Error
|
156
|
+
def initialize(msg = nil)
|
157
|
+
msg ||= "You requested coverage reports, but no results were found. Are all files being ignored in your coverage config? If you have expand_assets set to false, you will need to remove spec_helper from the ignore list."
|
158
|
+
super(msg)
|
159
|
+
end
|
160
|
+
end
|
154
161
|
end
|
data/lib/teaspoon/server.rb
CHANGED
@@ -4,9 +4,10 @@ require "webrick"
|
|
4
4
|
|
5
5
|
module Teaspoon
|
6
6
|
class Server
|
7
|
-
attr_accessor :port
|
7
|
+
attr_accessor :port, :host
|
8
8
|
|
9
9
|
def initialize
|
10
|
+
@host = Teaspoon.configuration.server_host || "127.0.0.1"
|
10
11
|
@port = Teaspoon.configuration.server_port || find_available_port
|
11
12
|
end
|
12
13
|
|
@@ -24,14 +25,14 @@ module Teaspoon
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def responsive?
|
27
|
-
TCPSocket.new(
|
28
|
+
TCPSocket.new(host, port).close
|
28
29
|
true
|
29
30
|
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
|
30
31
|
false
|
31
32
|
end
|
32
33
|
|
33
34
|
def url
|
34
|
-
"http
|
35
|
+
"http://#{host}:#{port}"
|
35
36
|
end
|
36
37
|
|
37
38
|
protected
|
@@ -54,6 +55,7 @@ module Teaspoon
|
|
54
55
|
def rack_options
|
55
56
|
{
|
56
57
|
app: Rails.application,
|
58
|
+
Host: host,
|
57
59
|
Port: port,
|
58
60
|
environment: "test",
|
59
61
|
AccessLog: [],
|
@@ -63,7 +65,7 @@ module Teaspoon
|
|
63
65
|
end
|
64
66
|
|
65
67
|
def find_available_port
|
66
|
-
server = TCPServer.new(
|
68
|
+
server = TCPServer.new(host, 0)
|
67
69
|
server.addr[1]
|
68
70
|
ensure
|
69
71
|
server.close if server
|
data/lib/teaspoon/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teaspoon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jejacks0n
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2016-01-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: railties
|
@@ -149,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
149
|
version: '0'
|
150
150
|
requirements: []
|
151
151
|
rubyforge_project:
|
152
|
-
rubygems_version: 2.4.
|
152
|
+
rubygems_version: 2.4.5
|
153
153
|
signing_key:
|
154
154
|
specification_version: 4
|
155
155
|
summary: 'Teaspoon: A Javascript test runner built on top of Rails'
|