teaspoon 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8ffc6219e0e838470408d91b594a02577eea996
4
- data.tar.gz: 554631fbea03ee62eccc64e72e3a01058fcccf40
3
+ metadata.gz: 727bdb9217114560c7755d33ed032e6c05355a7f
4
+ data.tar.gz: b9cdd9f870082cebd6dd8cd3db297a3a425a8620
5
5
  SHA512:
6
- metadata.gz: a01d5ce7d1720a38df484a26bbebc02a702e3f2b45031d130de8db4df46fe22d493823d309340a3cb158ec4f1399878f304f23d70b1b13f332ecac672549e0b8
7
- data.tar.gz: 637de65f6914f5c5fca583c567ca2f6c2e82fb8a57764cced9816e1a782cd00f6e2ed053acd75ba6013254a7a3ddbfed26487c09355a5169e3b11e1d173d32d3
6
+ metadata.gz: 8c7403b545340d18c0290390108fa541d65079f7bc7c955f9816ba10d51aa07f57082754adfc36e63a81f1a5347e1b4081a4de9c4596cc0e844e868ccaa58dd9
7
+ data.tar.gz: 622b7ecb4873067b55e25ebbe2647c61bc6070a50e63c17db2674704e39ffe64b1173a7eefbcf76dfbe619dfd2c79b816a1b1dae7dff30ca50bc494cea6681d7
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Teaspoon
2
2
  ========
3
3
 
4
- [![Gem Version](https://img.shields.io/gem/v/guard-teaspoon.svg)](https://rubygems.org/gems/teaspoon)
4
+ [![Gem Version](https://img.shields.io/gem/v/teaspoon.svg)](https://rubygems.org/gems/teaspoon)
5
5
  [![Dependency Status](https://gemnasium.com/modeset/teaspoon.svg)](https://gemnasium.com/modeset/teaspoon)
6
6
  [![Build Status](https://img.shields.io/travis/modeset/teaspoon.svg)](https://travis-ci.org/modeset/teaspoon)
7
7
  [![Code Climate](https://codeclimate.com/github/modeset/teaspoon/badges/gpa.svg)](https://codeclimate.com/github/modeset/teaspoon)
@@ -344,11 +344,10 @@
344
344
  }).call(this);
345
345
  (function() {
346
346
  Teaspoon.hook = function(name, payload) {
347
- var method, xhr, xhrRequest;
347
+ var xhr, xhrRequest;
348
348
  if (payload == null) {
349
349
  payload = {};
350
350
  }
351
- method = "POST";
352
351
  xhr = null;
353
352
  xhrRequest = function(url, payload, callback) {
354
353
  var e;
@@ -941,13 +940,13 @@
941
940
 
942
941
  viewId = 0;
943
942
 
944
- function SuiteView(suite1, reporter) {
945
- this.suite = suite1;
943
+ function SuiteView(suite, reporter) {
944
+ this.suite = suite;
946
945
  this.reporter = reporter;
947
946
  this.views = this.reporter.views;
948
947
  this.suite.viewId = viewId += 1;
949
948
  this.views.suites[this.suite.viewId] = this;
950
- this.suite = new Teaspoon.Suite(suite);
949
+ this.suite = new Teaspoon.Suite(this.suite);
951
950
  SuiteView.__super__.constructor.apply(this, arguments);
952
951
  }
953
952
 
@@ -344,11 +344,10 @@
344
344
  }).call(this);
345
345
  (function() {
346
346
  Teaspoon.hook = function(name, payload) {
347
- var method, xhr, xhrRequest;
347
+ var xhr, xhrRequest;
348
348
  if (payload == null) {
349
349
  payload = {};
350
350
  }
351
- method = "POST";
352
351
  xhr = null;
353
352
  xhrRequest = function(url, payload, callback) {
354
353
  var e;
@@ -941,13 +940,13 @@
941
940
 
942
941
  viewId = 0;
943
942
 
944
- function SuiteView(suite1, reporter) {
945
- this.suite = suite1;
943
+ function SuiteView(suite, reporter) {
944
+ this.suite = suite;
946
945
  this.reporter = reporter;
947
946
  this.views = this.reporter.views;
948
947
  this.suite.viewId = viewId += 1;
949
948
  this.views.suites[this.suite.viewId] = this;
950
- this.suite = new Teaspoon.Suite(suite);
949
+ this.suite = new Teaspoon.Suite(this.suite);
951
950
  SuiteView.__super__.constructor.apply(this, arguments);
952
951
  }
953
952
 
@@ -344,11 +344,10 @@
344
344
  }).call(this);
345
345
  (function() {
346
346
  Teaspoon.hook = function(name, payload) {
347
- var method, xhr, xhrRequest;
347
+ var xhr, xhrRequest;
348
348
  if (payload == null) {
349
349
  payload = {};
350
350
  }
351
- method = "POST";
352
351
  xhr = null;
353
352
  xhrRequest = function(url, payload, callback) {
354
353
  var e;
@@ -941,13 +940,13 @@
941
940
 
942
941
  viewId = 0;
943
942
 
944
- function SuiteView(suite1, reporter) {
945
- this.suite = suite1;
943
+ function SuiteView(suite, reporter) {
944
+ this.suite = suite;
946
945
  this.reporter = reporter;
947
946
  this.views = this.reporter.views;
948
947
  this.suite.viewId = viewId += 1;
949
948
  this.views.suites[this.suite.viewId] = this;
950
- this.suite = new Teaspoon.Suite(suite);
949
+ this.suite = new Teaspoon.Suite(this.suite);
951
950
  SuiteView.__super__.constructor.apply(this, arguments);
952
951
  }
953
952
 
@@ -1,5 +1,5 @@
1
1
  Teaspoon.hook = (name, payload = {}) ->
2
- method = "POST"
2
+
3
3
  xhr = null
4
4
 
5
5
  xhrRequest = (url, payload, callback) ->
@@ -6,7 +6,7 @@ class Teaspoon.Reporters.HTML.SuiteView extends Teaspoon.Reporters.BaseView
6
6
  @views = @reporter.views
7
7
  @suite.viewId = viewId += 1
8
8
  @views.suites[@suite.viewId] = @
9
- @suite = new Teaspoon.Suite(suite)
9
+ @suite = new Teaspoon.Suite(@suite)
10
10
  super
11
11
 
12
12
 
@@ -1,4 +1,4 @@
1
- <%= javascript_include_tag *@suite.spec_assets %>
1
+ <%= javascript_include_tag *@suite.spec_assets, debug: @suite.config.expand_assets %>
2
2
  <script type="text/javascript">
3
3
  Teaspoon.onWindowLoad(Teaspoon.execute);
4
4
  </script>
@@ -29,11 +29,18 @@ module Teaspoon
29
29
  'support/*.js'
30
30
  ]
31
31
 
32
+ routes do
33
+ root to: "suite#index"
34
+ match "/fixtures/*filename", to: "suite#fixtures", via: :get, as: "fixture"
35
+ match "/:suite", to: "suite#show", via: :get, as: "suite", defaults: { suite: "default" }
36
+ match "/:suite/:hook", to: "suite#hook", via: :post, as: "suite_hook", defaults: { suite: "default", hook: "default" }
37
+ end
38
+
32
39
  initializer :assets, group: :all do |app|
33
40
  begin
34
41
  Teaspoon::Environment.require_environment
35
42
  rescue Teaspoon::EnvironmentNotFound
36
- # it's ok for this to fail sometimes, like before the initializer is run etc
43
+ # it's ok for this to fail sometimes, like before the generator is run etc
37
44
  end
38
45
 
39
46
  Teaspoon::Engine.default_root_path(app.root) # default the root if it's not set
@@ -71,9 +78,7 @@ module Teaspoon
71
78
  return if app.routes.recognize_path(mount_at)[:action] != "routing_error" rescue nil
72
79
  require Teaspoon::Engine.root.join("app/controllers/teaspoon/suite_controller")
73
80
 
74
- app.routes.prepend do
75
- mount Teaspoon::Engine => mount_at, as: "teaspoon"
76
- end
81
+ app.routes.prepend { mount Teaspoon::Engine => mount_at, as: "teaspoon" }
77
82
  end
78
83
  end
79
84
  end
@@ -101,7 +101,7 @@ module Teaspoon
101
101
  end
102
102
 
103
103
  def glob
104
- @glob ||= Dir[config.matcher.present? ? Teaspoon.configuration.root.join(config.matcher) : ""]
104
+ @glob ||= Dir[config.matcher.present? ? Teaspoon.configuration.root.join(config.matcher) : ""].sort!
105
105
  end
106
106
 
107
107
  def suite_configuration
@@ -1,3 +1,3 @@
1
1
  module Teaspoon
2
- VERSION = "0.9.0"
2
+ VERSION = "0.9.1"
3
3
  end
@@ -1,3 +1,3 @@
1
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
1
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
2
2
 
3
3
  require 'bundler/setup' # Set up gems listed in the Gemfile.
@@ -9,8 +9,12 @@ feature "testing with teaspoon in the console", aruba: true do
9
9
  Teaspoon running default suite at http://127.0.0.1:31337/teaspoon/default
10
10
  TypeError: 'undefined' is not a function (evaluating 'foo()')
11
11
  # http://127.0.0.1:31337/relative/assets/integration/spec_helper.js:12
12
- # http://127.0.0.1:31337/relative/assets/integration/spec_helper.js:14
12
+ OUTPUT
13
+ output = all_output.gsub(/127\.0\.0\.1:\d+/, "127.0.0.1:31337")
14
+ output = output.gsub("undefined is not a constructor", "'undefined' is not a function")
15
+ assert_partial_output(expected, output)
13
16
 
17
+ expected = <<-OUTPUT.strip_heredoc
14
18
  testing console output
15
19
  ..FF.*.
16
20
 
@@ -34,8 +38,8 @@ feature "testing with teaspoon in the console", aruba: true do
34
38
  teaspoon -s default --filter="Integration tests allows failing specs."
35
39
  teaspoon -s default --filter="Integration tests allows erroring specs."
36
40
  OUTPUT
37
- output = all_output.gsub(/Finished in [\d\.]+ seconds/, "Finished in 0.31337 seconds")
38
- output = output.gsub(/127\.0\.0\.1:\d+/, "127.0.0.1:31337")
41
+ output = all_output.gsub(/127\.0\.0\.1:\d+/, "127.0.0.1:31337")
42
+ output = output.gsub(/Finished in [\d\.]+ seconds/, "Finished in 0.31337 seconds")
39
43
  assert_partial_output(expected, output)
40
44
  end
41
45
 
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: 0.9.0
4
+ version: 0.9.1
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: 2015-02-25 00:00:00.000000000 Z
14
+ date: 2015-03-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: railties
@@ -77,7 +77,6 @@ files:
77
77
  - app/views/teaspoon/suite/index.html.erb
78
78
  - app/views/teaspoon/suite/show.html.erb
79
79
  - bin/teaspoon
80
- - config/routes.rb
81
80
  - lib/generators/teaspoon/install/POST_INSTALL
82
81
  - lib/generators/teaspoon/install/install_generator.rb
83
82
  - lib/generators/teaspoon/install/templates/_body.html.erb
@@ -98,7 +97,6 @@ files:
98
97
  - lib/teaspoon.rb
99
98
  - lib/teaspoon/command_line.rb
100
99
  - lib/teaspoon/configuration.rb
101
- - lib/teaspoon/configuration.rb.orig
102
100
  - lib/teaspoon/console.rb
103
101
  - lib/teaspoon/coverage.rb
104
102
  - lib/teaspoon/deprecated.rb
data/config/routes.rb DELETED
@@ -1,6 +0,0 @@
1
- Teaspoon::Engine.routes.draw do
2
- root to: "suite#index"
3
- match "/fixtures/*filename", to: "suite#fixtures", via: :get
4
- match "/:suite", as: "suite", to: "suite#show", via: :get, defaults: { suite: "default" }
5
- match "/:suite/:hook", as: "suite_hook", to: "suite#hook", via: :post, defaults: { suite: "default", hook: "default" }
6
- end
@@ -1,187 +0,0 @@
1
- require "singleton"
2
-
3
- module Teaspoon
4
- autoload :Formatters, "teaspoon/formatters/base"
5
- autoload :Drivers, "teaspoon/drivers/base"
6
-
7
- class Configuration
8
- include Singleton
9
-
10
- # CONTRIBUTORS:
11
- # If you add a configuration option you should do the following before it will be considered for merging.
12
- # - think about if it should be a suite, coverage, or global configuration
13
- # - write specs for it, and add it to existing specs in spec/teaspoon/configuration_spec.rb
14
- # - add it to the readme so it's documented
15
- # - add it to the command_line.rb if appropriate (_only_ if it's appropriate)
16
- # - add it to ENV_OVERRIDES if it can be overridden from ENV
17
- # - add it to the initializers in /lib/generators/install/templates so it's documented there as well
18
-
19
- cattr_accessor :mount_at, :root, :asset_paths, :fixture_paths
20
- @@mount_at = "/teaspoon"
21
- @@root = nil # will default to Rails.root
22
- @@asset_paths = ["spec/javascripts", "spec/javascripts/stylesheets", "test/javascripts", "test/javascripts/stylesheets"]
23
- @@fixture_paths = ["spec/javascripts/fixtures", "test/javascripts/fixtures"]
24
-
25
- # console runner specific
26
-
27
- cattr_accessor :driver, :driver_options, :driver_timeout, :server, :server_port, :server_timeout, :fail_fast,
28
- :formatters, :color, :suppress_log,
29
- :use_coverage
30
- @@driver = "phantomjs"
31
- @@driver_options = nil
32
- @@driver_timeout = 180
33
- @@server = nil
34
- @@server_port = nil
35
- @@server_timeout = 20
36
- @@fail_fast = true
37
-
38
- @@formatters = ["dot"]
39
- @@color = true
40
- @@suppress_log = false
41
-
42
- @@use_coverage = nil
43
-
44
- # options that can be specified in the ENV
45
-
46
- ENV_OVERRIDES = {
47
- boolean: %w(FAIL_FAST SUPPRESS_LOG COLOR),
48
- integer: %w(DRIVER_TIMEOUT SERVER_TIMEOUT),
49
- string: %w(DRIVER DRIVER_OPTIONS SERVER SERVER_PORT FORMATTERS USE_COVERAGE)
50
- }
51
-
52
- # suite configurations
53
-
54
- cattr_accessor :suite_configs
55
- @@suite_configs = { "default" => { block: proc {} } }
56
-
57
- def self.suite(name = :default, &block)
58
- @@suite_configs[name.to_s] = { block: block, instance: Suite.new(&block) }
59
- end
60
-
61
- class Suite
62
- FRAMEWORKS = {
63
- jasmine: ["1.3.1", "2.0.0"],
64
- mocha: ["1.10.0", "1.17.1"],
65
- qunit: ["1.12.0", "1.14.0"],
66
- }
67
-
68
- attr_accessor :matcher, :helper, :javascripts, :stylesheets,
69
- :boot_partial, :body_partial, :no_coverage, :hooks,
70
- :expand_assets
71
-
72
- def initialize
73
- @matcher = "{spec/javascripts,app/assets}/**/*_spec.{js,js.coffee,coffee}"
74
- @helper = "spec_helper"
75
- @javascripts = ["jasmine/1.3.1", "teaspoon-jasmine"]
76
- @stylesheets = ["teaspoon"]
77
-
78
- @boot_partial = "boot"
79
- @body_partial = "body"
80
-
81
- @no_coverage = [%r{/lib/ruby/gems/}, %r{/vendor/assets/}, %r{/support/}, %r{/(.+)_helper.}]
82
-
83
- <<<<<<< Updated upstream
84
- @hooks = Hash.new { |h, k| h[k] = [] }
85
- =======
86
- @hooks = Hash.new{ |h, k| h[k] = [] }
87
- @expand_assets = true
88
- >>>>>>> Stashed changes
89
-
90
- default = Teaspoon.configuration.suite_configs["default"]
91
- instance_eval(&default[:block]) if default
92
- yield self if block_given?
93
- end
94
-
95
- def use_framework(name, version = nil)
96
- name = name.to_sym
97
- version ||= FRAMEWORKS[name].last if FRAMEWORKS[name]
98
- unless FRAMEWORKS[name] && FRAMEWORKS[name].include?(version)
99
- message = "Unknown framework \"#{name}\""
100
- if FRAMEWORKS[name] && version
101
- message += " with version #{version} -- available versions #{FRAMEWORKS[name].join(', ')}"
102
- end
103
- raise Teaspoon::UnknownFramework, message
104
- end
105
-
106
- @javascripts = [[name, version].join("/"), "teaspoon-#{name}"]
107
- case name.to_sym
108
- when :qunit
109
- @matcher = "{test/javascripts,app/assets}/**/*_test.{js,js.coffee,coffee}"
110
- @helper = "test_helper"
111
- end
112
- end
113
- alias_method :use_framework=, :use_framework
114
-
115
- def hook(group = :default, &block)
116
- @hooks[group.to_s] << block
117
- end
118
- end
119
-
120
- # coverage configurations
121
-
122
- cattr_accessor :coverage_configs
123
- @@coverage_configs = { "default" => { block: proc {} } }
124
-
125
- def self.coverage(name = :default, &block)
126
- @@coverage_configs[name.to_s] = { block: block, instance: Coverage.new(&block) }
127
- end
128
-
129
- class Coverage
130
- attr_accessor :reports, :output_path,
131
- :statements, :functions, :branches, :lines
132
-
133
- def initialize
134
- @reports = ["text-summary"]
135
- @output_path = "coverage"
136
-
137
- @statements = nil
138
- @functions = nil
139
- @branches = nil
140
- @lines = nil
141
-
142
- default = Teaspoon.configuration.coverage_configs["default"]
143
- instance_eval(&default[:block]) if default
144
- yield self if block_given?
145
- end
146
- end
147
-
148
- # custom getters / setters
149
-
150
- def self.root=(path)
151
- @@root = Pathname.new(path.to_s) if path.present?
152
- end
153
-
154
- def self.formatters
155
- return ["dot"] if @@formatters.blank?
156
- return @@formatters if @@formatters.is_a?(Array)
157
- @@formatters.to_s.split(/,\s?/)
158
- end
159
-
160
- # override from env or options
161
-
162
- def self.override_from_options(options)
163
- options.each { |k, v| override(k, v) }
164
- end
165
-
166
- def self.override_from_env(env)
167
- ENV_OVERRIDES[:boolean].each { |o| override(o, env[o] == "true") if env[o].present? }
168
- ENV_OVERRIDES[:integer].each { |o| override(o, env[o].to_i) if env[o].present? }
169
- ENV_OVERRIDES[:string].each { |o| override(o, env[o]) if env[o].present? }
170
- end
171
-
172
- def self.override(config, value)
173
- setter = "#{config.to_s.downcase}="
174
- send(setter, value) if respond_to?(setter)
175
- end
176
- end
177
-
178
- mattr_accessor :configured, :configuration
179
- @@configured = false
180
- @@configuration = Configuration
181
-
182
- def self.configure
183
- yield @@configuration
184
- @@configured = true
185
- @@configuration.override_from_env(ENV)
186
- end
187
- end