teabag 0.4.6 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. data/README.md +83 -92
  2. data/app/assets/javascripts/teabag-jasmine.js +5 -2
  3. data/app/assets/javascripts/teabag-mocha.js +5 -2
  4. data/app/assets/javascripts/teabag-qunit.js +5 -2
  5. data/app/assets/javascripts/teabag/base/reporters/console.coffee +2 -1
  6. data/app/assets/javascripts/teabag/base/reporters/html/progress_view.coffee +1 -1
  7. data/app/controllers/teabag/spec_controller.rb +2 -2
  8. data/app/helpers/teabag/spec_helper.rb +11 -2
  9. data/app/views/teabag/spec/index.html.erb +1 -1
  10. data/bin/teabag +6 -0
  11. data/config/routes.rb +2 -2
  12. data/lib/generators/teabag/install/POST_INSTALL +0 -2
  13. data/lib/generators/teabag/install/install_generator.rb +46 -5
  14. data/lib/generators/teabag/install/templates/env.rb +28 -0
  15. data/lib/generators/teabag/install/templates/{initializer.rb → jasmine/initializer.rb} +5 -13
  16. data/lib/generators/teabag/install/templates/jasmine/spec_helper.coffee +25 -0
  17. data/lib/generators/teabag/install/templates/jasmine/spec_helper.js +25 -0
  18. data/lib/generators/teabag/install/templates/mocha/initializer.rb +58 -0
  19. data/lib/generators/teabag/install/templates/mocha/spec_helper.coffee +25 -0
  20. data/lib/generators/teabag/install/templates/mocha/spec_helper.js +25 -0
  21. data/lib/generators/teabag/install/templates/qunit/initializer.rb +58 -0
  22. data/lib/generators/teabag/install/templates/qunit/test_helper.coffee +24 -0
  23. data/lib/generators/teabag/install/templates/qunit/test_helper.js +24 -0
  24. data/lib/tasks/teabag.rake +1 -1
  25. data/lib/teabag/command_line.rb +96 -0
  26. data/lib/teabag/configuration.rb +25 -35
  27. data/lib/teabag/console.rb +19 -7
  28. data/lib/teabag/drivers/phantomjs/runner.coffee +2 -2
  29. data/lib/teabag/drivers/selenium_driver.rb +2 -2
  30. data/lib/teabag/environment.rb +46 -0
  31. data/lib/teabag/exceptions.rb +1 -0
  32. data/lib/teabag/formatters/base_formatter.rb +5 -0
  33. data/lib/teabag/formatters/dot_formatter.rb +3 -2
  34. data/lib/teabag/formatters/junit_formatter.rb +19 -0
  35. data/lib/teabag/formatters/swayze_or_oprah_formatter.rb +7 -2
  36. data/lib/teabag/formatters/tap_y_formatter.rb +1 -0
  37. data/lib/teabag/runner.rb +1 -1
  38. data/lib/teabag/suite.rb +15 -6
  39. data/lib/teabag/version.rb +1 -1
  40. data/spec/dummy/log/development.log +62925 -0
  41. data/spec/dummy/log/test.log +614 -0
  42. data/spec/dummy/tmp/cache/assets/C35/A30/sprockets%2F29906bf540f7d2e081088494b2554989 +0 -0
  43. data/spec/dummy/tmp/cache/assets/C4E/9B0/sprockets%2Fa807397434c9262c3d62da3e91152184 +0 -0
  44. data/spec/dummy/tmp/cache/assets/C59/250/sprockets%2Fa80d3fe493d2476e58c4323996064512 +0 -0
  45. data/spec/dummy/tmp/cache/assets/C72/150/sprockets%2F4194031b4b51b6422c14ac697e3455e5 +0 -0
  46. data/spec/dummy/tmp/cache/assets/C75/D50/sprockets%2F5302968a40e08d2c011aa38666d273f6 +0 -0
  47. data/spec/dummy/tmp/cache/assets/C78/F80/sprockets%2F9161622ddd251097a4ab816b8220984c +0 -0
  48. data/spec/dummy/tmp/cache/assets/C7A/EC0/sprockets%2F5c16e4214f5662e1b27932a57c43491b +0 -0
  49. data/spec/dummy/tmp/cache/assets/C89/700/sprockets%2F259935a7704fef0069303ea63fa89408 +0 -0
  50. data/spec/dummy/tmp/cache/assets/C8A/460/sprockets%2F77bffd9959420103906722b404ae8d59 +0 -0
  51. data/spec/dummy/tmp/cache/assets/C91/FA0/sprockets%2F2eb81283f5789ae91a69344552db3856 +0 -0
  52. data/spec/dummy/tmp/cache/assets/C9D/E90/sprockets%2F3045c9533f179d3e1c805d163ed002a0 +0 -0
  53. data/spec/dummy/tmp/cache/assets/CA6/DF0/sprockets%2F7da83747ce56e49393b6b8726587f846 +0 -0
  54. data/spec/dummy/tmp/cache/assets/CA9/C40/sprockets%2F932b7e2cd1e067289ab51190800814df +0 -0
  55. data/spec/dummy/tmp/cache/assets/CAA/0C0/sprockets%2F057b0ce384f16d9202ae84473436cc35 +0 -0
  56. data/spec/dummy/tmp/cache/assets/CAD/410/sprockets%2F651414e5c7e86f05c5108dc71626b25c +0 -0
  57. data/spec/dummy/tmp/cache/assets/CAF/0F0/sprockets%2F6000e67cf3f2377f860c24da7c819701 +0 -0
  58. data/spec/dummy/tmp/cache/assets/CB7/2B0/sprockets%2Fdf3d317564a780186148134f2ddd59a9 +0 -0
  59. data/spec/dummy/tmp/cache/assets/CBB/FA0/sprockets%2F74922109263bdc965b2e9567eec6d154 +0 -0
  60. data/spec/dummy/tmp/cache/assets/CBD/AF0/sprockets%2Fd687ec33822256e9444e8cd04f1b4873 +0 -0
  61. data/spec/dummy/tmp/cache/assets/CBF/630/sprockets%2F707d2db81468088470d476abff35388d +0 -0
  62. data/spec/dummy/tmp/cache/assets/CC1/DB0/sprockets%2F95e6273223502af230a0dbaa25410de8 +0 -0
  63. data/spec/dummy/tmp/cache/assets/CC2/EC0/sprockets%2F76bf80cb571ca530357f78db78167866 +0 -0
  64. data/spec/dummy/tmp/cache/assets/CCE/C50/sprockets%2Fe12774c2fea852112414bb379a71f31a +0 -0
  65. data/spec/dummy/tmp/cache/assets/CD1/620/sprockets%2F06a3eb05fcb4175a679d6084a06026a6 +0 -0
  66. data/spec/dummy/tmp/cache/assets/CD3/460/sprockets%2F7f3f6802b0b309ed142d0b671c9640c4 +0 -0
  67. data/spec/dummy/tmp/cache/assets/CD9/DD0/sprockets%2Fe5774759168a731da1c1149ecf0e1b03 +0 -0
  68. data/spec/dummy/tmp/cache/assets/CE0/090/sprockets%2F48d5d35ae87d0723318b8bc257fa2237 +0 -0
  69. data/spec/dummy/tmp/cache/assets/CE3/1F0/sprockets%2Fe69a515d3a9d14c669be8871012a7d07 +0 -0
  70. data/spec/dummy/tmp/cache/assets/CE6/270/sprockets%2F2c98152560d18470fec8cf4c6829b4d0 +0 -0
  71. data/spec/dummy/tmp/cache/assets/CE6/7C0/sprockets%2Fa03a2c86ce6724be8542295e1cf24798 +0 -0
  72. data/spec/dummy/tmp/cache/assets/CE7/A60/sprockets%2Ff58eee249aa167d23f8220087bb46684 +0 -0
  73. data/spec/dummy/tmp/cache/assets/CE9/9E0/sprockets%2F135480d497ed7e4884462dc0ef0b80d7 +0 -0
  74. data/spec/dummy/tmp/cache/assets/CEB/680/sprockets%2F67f0794ef8c0576d5c7da34f4437305a +0 -0
  75. data/spec/dummy/tmp/cache/assets/CEB/B40/sprockets%2F1150bf8d912aa100a132251eefaf6045 +0 -0
  76. data/spec/dummy/tmp/cache/assets/CF4/6F0/sprockets%2Fed96f92571224b862b84d7078b86ded3 +0 -0
  77. data/spec/dummy/tmp/cache/assets/CF8/780/sprockets%2F8845b81ff27cdb57c835836c9f91a265 +0 -0
  78. data/spec/dummy/tmp/cache/assets/CFA/D20/sprockets%2Fb26796b39b3c5d6ed70be7989637a493 +0 -0
  79. data/spec/dummy/tmp/cache/assets/CFB/210/sprockets%2F9104695bfbf9a9d4b94382e6e90487a9 +0 -0
  80. data/spec/dummy/tmp/cache/assets/CFC/380/sprockets%2Fa7443cbd671446a589867dd5f4a4f989 +0 -0
  81. data/spec/dummy/tmp/cache/assets/D00/110/sprockets%2F6a6353b7723a8b21708e0fbfe04bd422 +0 -0
  82. data/spec/dummy/tmp/cache/assets/D00/F60/sprockets%2F42e279b52511c47d26c0adb125fd04e8 +0 -0
  83. data/spec/dummy/tmp/cache/assets/D03/630/sprockets%2F5d8da32dba6a7be70426a1d554773701 +0 -0
  84. data/spec/dummy/tmp/cache/assets/D04/170/sprockets%2F76ab1dc02e6c7618852708a1e05a2df3 +0 -0
  85. data/spec/dummy/tmp/cache/assets/D04/480/sprockets%2F8bd8f10500b21d2f9d94e4cd1401c936 +0 -0
  86. data/spec/dummy/tmp/cache/assets/D05/8D0/sprockets%2F319f8f235f452343f1ebf03cb262d23d +0 -0
  87. data/spec/dummy/tmp/cache/assets/D09/BF0/sprockets%2F9e6bca5d26f50d9484385d51ba04312c +0 -0
  88. data/spec/dummy/tmp/cache/assets/D0E/570/sprockets%2F90fe371bf8091e88a712124d9cdae260 +0 -0
  89. data/spec/dummy/tmp/cache/assets/D15/750/sprockets%2F8effdd3e668a4036260a3e370f3b6657 +0 -0
  90. data/spec/dummy/tmp/cache/assets/D17/710/sprockets%2Ffa49fb6823d466e79a195e0cd71340c5 +0 -0
  91. data/spec/dummy/tmp/cache/assets/D1A/D30/sprockets%2F815a5177e9edba0c5c996182ef1b3675 +0 -0
  92. data/spec/dummy/tmp/cache/assets/D1D/560/sprockets%2F1ca784ee7ba1922465147e7f8963eae5 +0 -0
  93. data/spec/dummy/tmp/cache/assets/D1E/AA0/sprockets%2F5c8741a556bc955cd36e61c88582b6dc +0 -0
  94. data/spec/dummy/tmp/cache/assets/D31/9C0/sprockets%2Fbd102a4f5a4985c3519dd6ab0295a1c6 +0 -0
  95. data/spec/dummy/tmp/cache/assets/D35/7C0/sprockets%2Ff536a2606eaf7d542c0985104cb62baf +0 -0
  96. data/spec/dummy/tmp/cache/assets/D37/FF0/sprockets%2F96841ca4cfae32c515077f3f5fc303b2 +0 -0
  97. data/spec/dummy/tmp/cache/assets/D3C/840/sprockets%2Fc6202ec91d567a85bd3d46dc43ea9108 +0 -0
  98. data/spec/dummy/tmp/cache/assets/D44/E90/sprockets%2F05cfc0bf7c9938963d1d1c63248db80d +0 -0
  99. data/spec/dummy/tmp/cache/assets/D45/C30/sprockets%2Fcc744877558178a3adb77c441cadce70 +0 -0
  100. data/spec/dummy/tmp/cache/assets/D47/A90/sprockets%2Fe7ca382b607c595ea6505853f7fb63da +0 -0
  101. data/spec/dummy/tmp/cache/assets/D49/1F0/sprockets%2F773b56f87127c6605e7d1d3faf2b6af6 +0 -0
  102. data/spec/dummy/tmp/cache/assets/D49/A10/sprockets%2Fc4656bd995a6f297c26d19b13aadb963 +0 -0
  103. data/spec/dummy/tmp/cache/assets/D50/D70/sprockets%2Fe2a3e6c95b11e0801a4eebae3a026026 +0 -0
  104. data/spec/dummy/tmp/cache/assets/D51/400/sprockets%2Ff5e433d8a31e80985b75ce598de236be +0 -0
  105. data/spec/dummy/tmp/cache/assets/D5C/710/sprockets%2F9427d05cee2caa721241a25a9af1d08f +0 -0
  106. data/spec/dummy/tmp/cache/assets/D5C/CC0/sprockets%2Faa8bf6de211f2765b0a26f112b971f0c +0 -0
  107. data/spec/dummy/tmp/cache/assets/D5E/FA0/sprockets%2Fc81c371ae2d61a6aa1708262fba79e0d +0 -0
  108. data/spec/dummy/tmp/cache/assets/D61/1F0/sprockets%2F0c7a6176d2fc4db00bb9a74d36380fe1 +0 -0
  109. data/spec/dummy/tmp/cache/assets/D67/BC0/sprockets%2F35d2c2b45981ade5a2db2a9c7f37a615 +0 -0
  110. data/spec/dummy/tmp/cache/assets/D69/F90/sprockets%2F6a0795b7b38bd7e6142cd1b88211dade +0 -0
  111. data/spec/dummy/tmp/cache/assets/D6A/950/sprockets%2F429b1806cb7580ebf29f9a12c33cbea6 +0 -0
  112. data/spec/dummy/tmp/cache/assets/D6B/6E0/sprockets%2F266d99da1afe084cac250a6ba864c565 +0 -0
  113. data/spec/dummy/tmp/cache/assets/D6D/DA0/sprockets%2Fac936bf40b42227a2bf9d474ae9ec149 +0 -0
  114. data/spec/dummy/tmp/cache/assets/D6F/5B0/sprockets%2F5dcc801a7a6c340c5baf525839f9b8b6 +0 -0
  115. data/spec/dummy/tmp/cache/assets/D77/B30/sprockets%2F946cf2f17c7eb41037f9ee08ad67ec40 +0 -0
  116. data/spec/dummy/tmp/cache/assets/D78/2F0/sprockets%2F3c61f8915b8f717b1de788e6ecad122c +0 -0
  117. data/spec/dummy/tmp/cache/assets/D7E/C10/sprockets%2F747c98c3cc7494a62dd882752adffb2b +0 -0
  118. data/spec/dummy/tmp/cache/assets/D8C/520/sprockets%2F221cd58a042baac534d27e4cfedc1188 +0 -0
  119. data/spec/dummy/tmp/cache/assets/D93/BD0/sprockets%2Ff5e1b60201e08e3ddf8d3de5211f3d5e +0 -0
  120. data/spec/dummy/tmp/cache/assets/DA0/330/sprockets%2Fcbbb4de706387d50f48a72ee6c9c1b80 +0 -0
  121. data/spec/dummy/tmp/cache/assets/DA5/0A0/sprockets%2F7a4b5928cec69ab65afff309a04d6b47 +0 -0
  122. data/spec/dummy/tmp/cache/assets/DA9/BF0/sprockets%2Fc59f8f7bf494fe030610bc86bb7cc5e5 +0 -0
  123. data/spec/dummy/tmp/cache/assets/DAC/9B0/sprockets%2F5e58701704fefbc8f88ae24c549fab6b +0 -0
  124. data/spec/dummy/tmp/cache/assets/DAE/6C0/sprockets%2F77c7a8676aeefa73156c55dfcf51cc46 +0 -0
  125. data/spec/dummy/tmp/cache/assets/DB3/5D0/sprockets%2Fce1d4d75832c9bdeafd869f6f7b61725 +0 -0
  126. data/spec/dummy/tmp/cache/assets/DB4/1F0/sprockets%2F69ad2749d7bfe831c0e74e7d7fc4dc57 +0 -0
  127. data/spec/dummy/tmp/cache/assets/DB5/040/sprockets%2F9a9da5df88713663b9fbc945facca891 +0 -0
  128. data/spec/dummy/tmp/cache/assets/DC3/230/sprockets%2Fdf52e72eb73be91eccc60182191aed0b +0 -0
  129. data/spec/dummy/tmp/cache/assets/DC7/A10/sprockets%2F84a8af0fcbf401864e1ae5bf092cba94 +0 -0
  130. data/spec/dummy/tmp/cache/assets/DCD/EB0/sprockets%2F4f77f509126ecbced7ea2a5ab290c8d4 +0 -0
  131. data/spec/dummy/tmp/cache/assets/DE4/140/sprockets%2F139e4ab85d1aacb22c115fa136afdc8a +0 -0
  132. data/spec/dummy/tmp/cache/assets/DEB/110/sprockets%2F2dbdab0ce5babca645cdb5780004f875 +0 -0
  133. data/spec/dummy/tmp/cache/assets/DF6/0E0/sprockets%2F85b10db6e1afe643aba6d396abdd77f0 +0 -0
  134. data/spec/dummy/tmp/cache/assets/DF7/E10/sprockets%2F25e4253aba9a9adcefb72552fb1ff0c8 +0 -0
  135. data/spec/dummy/tmp/cache/assets/DFC/C20/sprockets%2Fd9178ad7e3b401c9fceafd64ea2b50d6 +0 -0
  136. data/spec/dummy/tmp/cache/assets/DFC/C30/sprockets%2Fb50a07cb30b0bd0eec8e98e5de79d65d +0 -0
  137. data/spec/dummy/tmp/cache/assets/E02/6E0/sprockets%2F63d6a5cdb8cefa64ef76b5c6e0fd3720 +0 -0
  138. data/spec/dummy/tmp/cache/assets/E08/BB0/sprockets%2Fefac99af1af28543aef6fb607faa4973 +0 -0
  139. data/spec/dummy/tmp/cache/assets/E08/F20/sprockets%2F4fc5cdcd6974efe7adfe809b30bd6513 +0 -0
  140. data/spec/dummy/tmp/cache/assets/E16/D30/sprockets%2Fd69469e6e7439baacd8df989c0fdacc2 +0 -0
  141. data/spec/dummy/tmp/cache/assets/E17/EF0/sprockets%2Fa291ad64a26afd055dfadabbdf03f154 +0 -0
  142. data/spec/dummy/tmp/cache/assets/E2F/790/sprockets%2F7fac280deaa7ef20a77d5c9b5b9cfc34 +0 -0
  143. data/spec/dummy/tmp/cache/assets/E41/250/sprockets%2F97cf8fe3d7ffaff076f655aefb36da03 +0 -0
  144. data/spec/dummy/tmp/cache/assets/E64/1E0/sprockets%2F81ab4c863fbbdec8dd66afc97ebf034d +0 -0
  145. data/spec/dummy/tmp/cache/assets/E6E/260/sprockets%2Fd9f8ab8b91ef582cc6c99a3ba0dedfe6 +0 -0
  146. data/spec/dummy/tmp/cache/assets/F79/360/sprockets%2F0ce035fefee5ebdabc8efabfbdbd6ee4 +0 -0
  147. data/spec/javascripts/spec_helper.coffee +2 -0
  148. data/spec/javascripts/support/json2.js +486 -0
  149. data/spec/javascripts/teabag/base/reporters/console_spec.coffee +14 -2
  150. data/spec/javascripts/teabag/base/teabag_spec.coffee +1 -0
  151. data/spec/javascripts/teabag/mocha/mocha_mspec.coffee +1 -1
  152. data/spec/javascripts/teabag/phantomjs/runner_spec.coffee +1 -0
  153. data/spec/teabag/command_line_spec.rb +50 -0
  154. data/spec/teabag/console_spec.rb +32 -3
  155. data/spec/teabag/drivers/selenium_driver_spec.rb +2 -2
  156. data/spec/teabag/environment_spec.rb +88 -0
  157. data/spec/teabag/formatters/dot_formatter_spec.rb +2 -2
  158. data/spec/teabag/runner_spec.rb +4 -0
  159. data/spec/teabag/suite_spec.rb +8 -2
  160. data/spec/teabag_env.rb +27 -0
  161. metadata +40 -8
  162. data/app/assets/images/teabag/photo-white.jpg +0 -0
  163. data/lib/generators/teabag/install/templates/spec_helper.js +0 -31
@@ -1,10 +1,19 @@
1
1
  module Teabag::SpecHelper
2
2
 
3
+ def stylesheet_link_tag_for_teabag(*sources)
4
+ sources.collect do |source|
5
+ asset = defined?(lookup_asset_for_path) ? lookup_asset_for_path(source, type: :stylesheet) : asset_paths.asset_for(source, "css")
6
+ asset.to_a.map do |dep|
7
+ stylesheet_link_tag(dep.pathname.to_s, href: "/assets/#{dep.logical_path}?body=1", type: "text/css").split("\n")
8
+ end
9
+ end.flatten.uniq.join("\n").html_safe
10
+ end
11
+
3
12
  def javascript_include_tag_for_teabag(*sources)
4
13
  sources.collect do |source|
5
- asset = asset_paths.asset_for(source, "js")
14
+ asset = defined?(lookup_asset_for_path) ? lookup_asset_for_path(source, type: :javascript) : asset_paths.asset_for(source, "js")
6
15
  asset.to_a.map do |dep|
7
- javascript_include_tag(dep.pathname.to_s, src: path_to_asset(dep, ext: "js", body: true), debug: false)
16
+ javascript_include_tag(dep.pathname.to_s, src: "/assets/#{dep.logical_path}?body=1", type: "text/javascript").split("\n")
8
17
  end
9
18
  end.flatten.uniq.join("\n").html_safe
10
19
  end
@@ -2,7 +2,7 @@
2
2
  <html>
3
3
  <head>
4
4
  <title>Teabag :: Javascript Test Runner</title>
5
- <%= stylesheet_link_tag *@suite.stylesheets %>
5
+ <%= stylesheet_link_tag_for_teabag *@suite.stylesheets %>
6
6
  <%= csrf_meta_tags %>
7
7
  <meta name="viewport" content="width=device-width, user-scalable=no">
8
8
  <%= javascript_include_tag_for_teabag *@suite.core_javascripts %>
data/bin/teabag ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ root = File.expand_path('../lib', __FILE__)
3
+ $:.unshift(root) unless $:.include?(root)
4
+
5
+ require "teabag/command_line"
6
+ Teabag::CommandLine.new
data/config/routes.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  Teabag::Engine.routes.draw do
2
- match "/fixtures/*filename", to: "spec#fixtures"
3
- match "/(:suite)", :to => "spec#index", defaults: { suite: nil }
2
+ get "/fixtures/*filename", to: "spec#fixtures", via: :get
3
+ get "/(:suite)", to: "spec#index", via: :get, defaults: { suite: "default" }
4
4
  end
@@ -2,5 +2,3 @@
2
2
  Congratulations! Teabag was successfully installed. Documentation and more can
3
3
  be found at: https://github.com/modeset/teabag
4
4
 
5
- Configure Teabag by editing config/initializers/teabag.rb
6
-
@@ -4,21 +4,62 @@ module Teabag::Generators
4
4
 
5
5
  desc "Installs the Teabag initializer into your application."
6
6
 
7
- def copy_initializer
8
- copy_file "templates/initializer.rb", "config/initializers/teabag.rb"
7
+ class_option :framework, type: :string,
8
+ aliases: "-t",
9
+ default: "jasmine",
10
+ desc: "Specify which test framework to use (Available: jasmine, mocha, or qunit)"
11
+
12
+ class_option :coffee, type: :boolean,
13
+ aliases: "-c",
14
+ default: false,
15
+ desc: "Generate a CoffeeScript spec helper (instead of Javascript)"
16
+
17
+ class_option :env, type: :boolean,
18
+ aliases: "-e",
19
+ default: true,
20
+ desc: "Create the teabag_env.rb file used by the command line interface"
21
+
22
+ def validate_framework
23
+ return if frameworks.include?(options[:framework])
24
+ puts "Unknown framework -- Known: #{frameworks.join(', ')}"
25
+ exit
26
+ end
27
+
28
+ def copy_initializers
29
+ copy_file "templates/#{framework}/initializer.rb", "config/initializers/teabag.rb"
30
+ copy_file "templates/env.rb", "#{framework_type}/teabag_env.rb" if options[:env]
9
31
  end
10
32
 
11
33
  def create_structure
12
- empty_directory "spec/javascripts/support"
13
- empty_directory "spec/javascripts/fixtures"
34
+ empty_directory "#{framework_type}/javascripts/support"
35
+ empty_directory "#{framework_type}/javascripts/fixtures"
14
36
  end
15
37
 
16
38
  def copy_spec_helper
17
- copy_file "templates/spec_helper.js", "spec/javascripts/spec_helper.js"
39
+ copy_file "templates/#{framework}/#{framework_type}_helper.#{helper_ext}", "#{framework_type}/javascripts/#{framework_type}_helper.#{helper_ext}"
18
40
  end
19
41
 
20
42
  def display_readme
21
43
  readme "POST_INSTALL" if behavior == :invoke
22
44
  end
45
+
46
+ private
47
+
48
+ def framework
49
+ options[:framework]
50
+ end
51
+
52
+ def frameworks
53
+ %w{jasmine mocha qunit}
54
+ end
55
+
56
+ def helper_ext
57
+ (options[:coffee]) ? "coffee" : "js"
58
+ end
59
+
60
+ def framework_type
61
+ (options[:framework] == "qunit") ? "test" : "spec"
62
+ end
63
+
23
64
  end
24
65
  end
@@ -0,0 +1,28 @@
1
+ # This file allows you to override various Teabag configuration directives when running from the command line. It is not
2
+ # required from within the Rails environment, so overriding directives that have been defined within the initializer
3
+ # is not possible.
4
+ #
5
+ # Set RAILS_ROOT and load the environment.
6
+ ENV["RAILS_ROOT"] = File.expand_path("../../", __FILE__)
7
+ require File.expand_path("../../config/environment", __FILE__)
8
+
9
+ # Provide default configuration.
10
+ #
11
+ # You can override various configuration directives defined here by using arguments with the teabag command.
12
+ #
13
+ # teabag --driver=selenium --suppress-log
14
+ # rake teabag DRIVER=selenium SUPPRESS_LOG=false
15
+ Teabag.setup do |config|
16
+ # Driver
17
+ #config.driver = "phantomjs" # available: phantomjs, selenium
18
+ #config.phantomjs_bin = nil
19
+
20
+ # Behaviors
21
+ #config.server_timeout = 20 # timeout for starting the server
22
+ #config.fail_fast = true # abort after the first failing suite
23
+
24
+ # Output
25
+ #config.formatters = "dot" # available: dot, tap_y, swayze_or_oprah
26
+ #config.suppress_log = false # suppress logs coming from console[log/error/debug]
27
+ #config.color = true
28
+ end
@@ -10,7 +10,7 @@ Teabag.setup do |config|
10
10
 
11
11
  # These paths are appended to the Rails assets paths (relative to config.root), and by default is an array that you
12
12
  # can replace or add to.
13
- config.asset_paths = ["spec/javascripts", "spec/javascripts/stylesheets", "test/javascripts", "test/javascripts/stylesheets"]
13
+ config.asset_paths = ["spec/javascripts", "spec/javascripts/stylesheets"]
14
14
 
15
15
  # Fixtures are rendered through a standard controller. This means you can use things like HAML or RABL/JBuilder, etc.
16
16
  # to generate fixtures within this path.
@@ -31,8 +31,8 @@ Teabag.setup do |config|
31
31
  # Note: Can also be set to nil.
32
32
  suite.matcher = "{spec/javascripts,app/assets}/**/*_spec.{js,js.coffee,coffee}"
33
33
 
34
- # Each suite can load a different spec helper, which can in turn require additional files. This file is loaded
35
- # before your specs are loaded, and can be used as a manifest.
34
+ # Each suite can load a different helper, which can in turn require additional files. This file is loaded before
35
+ # your specs are loaded, and can be used as a manifest.
36
36
  suite.helper = "spec_helper"
37
37
 
38
38
  # These are the core Teabag javascripts. It's strongly encouraged to include only the base files here. You can
@@ -49,18 +49,10 @@ Teabag.setup do |config|
49
49
  suite.stylesheets = ["teabag"]
50
50
  end
51
51
 
52
- # Example suite. Since we're actually just filtering specs to files already within the root spec/javascripts, these
53
- # files will also be run in the default suite -- but can be focused into a more specific suite.
52
+ # Example suite. Since we're just filtering to files already within the root spec/javascripts, these files will also
53
+ # be run in the default suite -- but can be focused into a more specific suite.
54
54
  #config.suite :targeted do |suite|
55
55
  # suite.matcher = "spec/javascripts/targeted/*_spec.{js,js.coffee,coffee}"
56
56
  #end
57
57
 
58
- # When Teabag is run via the rake task these configuration directives apply.
59
- #
60
- #config.server_timeout = 20 # timeout for starting the server
61
- #config.driver = "phantomjs" # available: phantomjs, selenium
62
- #config.formatters = "dot" # available: dot, tap_y, swayze_or_oprah
63
- #config.fail_fast = true # stop running suites after one has failures
64
- #config.suppress_log = false # suppress logs coming from console[log/error/debug]
65
-
66
58
  end if defined?(Teabag) && Teabag.respond_to?(:setup) # let Teabag be undefined outside of development/test/asset groups
@@ -0,0 +1,25 @@
1
+ # You can require javascript files here. A good place to start is by requiring your application.js.
2
+ # require application
3
+ #
4
+ # Teabag includes some support files, but you can use anything from your own support path too.
5
+ # require support/jasmine-jquery
6
+ # require support/sinon
7
+ # require support/your-support-file
8
+ #
9
+ # Deferring execution
10
+ # If you're using CommonJS, RequireJS or some other asynchronous library you can defer execution. Call Teabag.execute()
11
+ # after everything has been loaded. Simple example of a timeout:
12
+ #
13
+ # Teabag.defer = true
14
+ # setTimeout(Teabag.execute, 1000)
15
+ #
16
+ # Matching files
17
+ # By default Teabag will look for files that match _spec.{js,js.coffee,.coffee}. Add a filename_spec.js file in your
18
+ # spec path and it'll be included in the default suite automatically. If you want to customize suites, check out the
19
+ # configuration in config/initializers/teabag.rb
20
+ #
21
+ # Manifest
22
+ # If you'd rather require your spec files manually (to control order for instance) you can disable the suite matcher in
23
+ # the configuration and use this file as a manifest.
24
+ #
25
+ # For more information: http://github.com/modeset/teabag
@@ -0,0 +1,25 @@
1
+ // You can require javascript files here. A good place to start is by requiring your application.js.
2
+ // require application
3
+ //
4
+ // Teabag includes some support files, but you can use anything from your own support path too.
5
+ // require support/jasmine-jquery
6
+ // require support/sinon
7
+ // require support/your-support-file
8
+ //
9
+ // Deferring execution
10
+ // If you're using CommonJS, RequireJS or some other asynchronous library you can defer execution. Call Teabag.execute()
11
+ // after everything has been loaded. Simple example of a timeout:
12
+ //
13
+ // Teabag.defer = true
14
+ // setTimeout(Teabag.execute, 1000)
15
+ //
16
+ // Matching files
17
+ // By default Teabag will look for files that match _spec.{js,js.coffee,.coffee}. Add a filename_spec.js file in your
18
+ // spec path and it'll be included in the default suite automatically. If you want to customize suites, check out the
19
+ // configuration in config/initializers/teabag.rb
20
+ //
21
+ // Manifest
22
+ // If you'd rather require your spec files manually (to control order for instance) you can disable the suite matcher in
23
+ // the configuration and use this file as a manifest.
24
+ //
25
+ // For more information: http://github.com/modeset/teabag
@@ -0,0 +1,58 @@
1
+ Teabag.setup do |config|
2
+
3
+ # This determines where the Teabag routes will be mounted. Changing this to "/jasmine" would allow you to browse to
4
+ # http://localhost:3000/jasmine to run your specs.
5
+ config.mount_at = "/teabag"
6
+
7
+ # This defaults to Rails.root if left nil. If you're testing an engine using a dummy application it can be useful to
8
+ # set this to your engines root.. E.g. `Teabag::Engine.root`
9
+ config.root = nil
10
+
11
+ # These paths are appended to the Rails assets paths (relative to config.root), and by default is an array that you
12
+ # can replace or add to.
13
+ config.asset_paths = ["spec/javascripts", "spec/javascripts/stylesheets"]
14
+
15
+ # Fixtures are rendered through a standard controller. This means you can use things like HAML or RABL/JBuilder, etc.
16
+ # to generate fixtures within this path.
17
+ config.fixture_path = "spec/javascripts/fixtures"
18
+
19
+ # You can modify the default suite configuration and create new suites here. Suites can be isolated from one another.
20
+ # When defining a suite you can provide a name and a block. If the name is left blank, :default is assumed. You can
21
+ # omit various directives and the defaults will be used.
22
+ #
23
+ # To run a specific suite
24
+ # - in the browser: http://localhost/teabag/[suite_name]
25
+ # - from the command line: rake teabag suite=[suite_name]
26
+ config.suite do |suite|
27
+
28
+ # You can specify a file matcher and all matching files will be loaded when the suite is run. It's important that
29
+ # these files are serve-able from sprockets.
30
+ #
31
+ # Note: Can also be set to nil.
32
+ suite.matcher = "{spec/javascripts,app/assets}/**/*_spec.{js,js.coffee,coffee}"
33
+
34
+ # Each suite can load a different helper, which can in turn require additional files. This file is loaded before
35
+ # your specs are loaded, and can be used as a manifest.
36
+ suite.helper = "spec_helper"
37
+
38
+ # These are the core Teabag javascripts. It's strongly encouraged to include only the base files here. You can
39
+ # require other support libraries in your spec helper, which allows you to change them without having to restart the
40
+ # server.
41
+ #
42
+ # Available frameworks: teabag-jasmine, teabag-mocha, teabag-qunit
43
+ #
44
+ # Note: To use the CoffeeScript source files use `"teabag/mocha"` etc.
45
+ suite.javascripts = ["teabag-mocha"]
46
+
47
+ # If you want to change how Teabag looks, or include your own stylesheets you can do that here. The default is the
48
+ # stylesheet for the HTML reporter.
49
+ suite.stylesheets = ["teabag"]
50
+ end
51
+
52
+ # Example suite. Since we're just filtering to files already within the root spec/javascripts, these files will also
53
+ # be run in the default suite -- but can be focused into a more specific suite.
54
+ #config.suite :targeted do |suite|
55
+ # suite.matcher = "spec/javascripts/targeted/*_spec.{js,js.coffee,coffee}"
56
+ #end
57
+
58
+ end if defined?(Teabag) && Teabag.respond_to?(:setup) # let Teabag be undefined outside of development/test/asset groups
@@ -0,0 +1,25 @@
1
+ # You can require javascript files here. A good place to start is by requiring your application.js.
2
+ # require application
3
+ #
4
+ # Teabag includes some support files, but you can use anything from your own support path too.
5
+ # require support/expect
6
+ # require support/sinon
7
+ # require support/your-support-file
8
+ #
9
+ # Deferring execution
10
+ # If you're using CommonJS, RequireJS or some other asynchronous library you can defer execution. Call Teabag.execute()
11
+ # after everything has been loaded. Simple example of a timeout:
12
+ #
13
+ # Teabag.defer = true
14
+ # setTimeout(Teabag.execute, 1000)
15
+ #
16
+ # Matching files
17
+ # By default Teabag will look for files that match _spec.{js,js.coffee,.coffee}. Add a filename_spec.js file in your
18
+ # spec path and it'll be included in the default suite automatically. If you want to customize suites, check out the
19
+ # configuration in config/initializers/teabag.rb
20
+ #
21
+ # Manifest
22
+ # If you'd rather require your spec files manually (to control order for instance) you can disable the suite matcher in
23
+ # the configuration and use this file as a manifest.
24
+ #
25
+ # For more information: http://github.com/modeset/teabag
@@ -0,0 +1,25 @@
1
+ // You can require javascript files here. A good place to start is by requiring your application.js.
2
+ // require application
3
+ //
4
+ // Teabag includes some support files, but you can use anything from your own support path too.
5
+ // require support/expect
6
+ // require support/sinon
7
+ // require support/your-support-file
8
+ //
9
+ // Deferring execution
10
+ // If you're using CommonJS, RequireJS or some other asynchronous library you can defer execution. Call Teabag.execute()
11
+ // after everything has been loaded. Simple example of a timeout:
12
+ //
13
+ // Teabag.defer = true
14
+ // setTimeout(Teabag.execute, 1000)
15
+ //
16
+ // Matching files
17
+ // By default Teabag will look for files that match _spec.{js,js.coffee,.coffee}. Add a filename_spec.js file in your
18
+ // spec path and it'll be included in the default suite automatically. If you want to customize suites, check out the
19
+ // configuration in config/initializers/teabag.rb
20
+ //
21
+ // Manifest
22
+ // If you'd rather require your spec files manually (to control order for instance) you can disable the suite matcher in
23
+ // the configuration and use this file as a manifest.
24
+ //
25
+ // For more information: http://github.com/modeset/teabag
@@ -0,0 +1,58 @@
1
+ Teabag.setup do |config|
2
+
3
+ # This determines where the Teabag routes will be mounted. Changing this to "/jasmine" would allow you to browse to
4
+ # http://localhost:3000/jasmine to run your tests.
5
+ config.mount_at = "/teabag"
6
+
7
+ # This defaults to Rails.root if left nil. If you're testing an engine using a dummy application it can be useful to
8
+ # set this to your engines root.. E.g. `Teabag::Engine.root`
9
+ config.root = nil
10
+
11
+ # These paths are appended to the Rails assets paths (relative to config.root), and by default is an array that you
12
+ # can replace or add to.
13
+ config.asset_paths = ["test/javascripts", "test/javascripts/stylesheets"]
14
+
15
+ # Fixtures are rendered through a standard controller. This means you can use things like HAML or RABL/JBuilder, etc.
16
+ # to generate fixtures within this path.
17
+ config.fixture_path = "test/javascripts/fixtures"
18
+
19
+ # You can modify the default suite configuration and create new suites here. Suites can be isolated from one another.
20
+ # When defining a suite you can provide a name and a block. If the name is left blank, :default is assumed. You can
21
+ # omit various directives and the defaults will be used.
22
+ #
23
+ # To run a specific suite
24
+ # - in the browser: http://localhost/teabag/[suite_name]
25
+ # - from the command line: rake teabag suite=[suite_name]
26
+ config.suite do |suite|
27
+
28
+ # You can specify a file matcher and all matching files will be loaded when the suite is run. It's important that
29
+ # these files are serve-able from sprockets.
30
+ #
31
+ # Note: Can also be set to nil.
32
+ suite.matcher = "{test/javascripts,app/assets}/**/*_test.{js,js.coffee,coffee}"
33
+
34
+ # Each suite can load a different helper, which can in turn require additional files. This file is loaded before
35
+ # your tests are loaded, and can be used as a manifest.
36
+ suite.helper = "spec_helper"
37
+
38
+ # These are the core Teabag javascripts. It's strongly encouraged to include only the base files here. You can
39
+ # require other support libraries in your test helper, which allows you to change them without having to restart the
40
+ # server.
41
+ #
42
+ # Available frameworks: teabag-jasmine, teabag-mocha, teabag-qunit
43
+ #
44
+ # Note: To use the CoffeeScript source files use `"teabag/qunit"` etc.
45
+ suite.javascripts = ["teabag-qunit"]
46
+
47
+ # If you want to change how Teabag looks, or include your own stylesheets you can do that here. The default is the
48
+ # stylesheet for the HTML reporter.
49
+ suite.stylesheets = ["teabag"]
50
+ end
51
+
52
+ # Example suite. Since we're just filtering to files already within the root test/javascripts, these files will also
53
+ # be run in the default suite -- but can be focused into a more specific suite.
54
+ #config.suite :targeted do |suite|
55
+ # suite.matcher = "test/javascripts/targeted/*_test.{js,js.coffee,coffee}"
56
+ #end
57
+
58
+ end if defined?(Teabag) && Teabag.respond_to?(:setup) # let Teabag be undefined outside of development/test/asset groups
@@ -0,0 +1,24 @@
1
+ # You can require javascript files here. A good place to start is by requiring your application.js.
2
+ # require application
3
+ #
4
+ # Teabag includes some support files, but you can use anything from your own support path too.
5
+ # require support/sinon
6
+ # require support/your-support-file
7
+ #
8
+ # Deferring execution
9
+ # If you're using CommonJS, RequireJS or some other asynchronous library you can defer execution. Call Teabag.execute()
10
+ # after everything has been loaded. Simple example of a timeout:
11
+ #
12
+ # Teabag.defer = true
13
+ # setTimeout(Teabag.execute, 1000)
14
+ #
15
+ # Matching files
16
+ # By default Teabag will look for files that match _test.{js,js.coffee,.coffee}. Add a filename_test.js file in your
17
+ # test path and it'll be included in the default suite automatically. If you want to customize suites, check out the
18
+ # configuration in config/initializers/teabag.rb
19
+ #
20
+ # Manifest
21
+ # If you'd rather require your test files manually (to control order for instance) you can disable the suite matcher in
22
+ # the configuration and use this file as a manifest.
23
+ #
24
+ # For more information: http://github.com/modeset/teabag