steak 1.1.0 → 2.0.0.beta1

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 (149) hide show
  1. data/{MIT-LICENSE → LICENSE} +1 -1
  2. data/README.md +110 -0
  3. data/lib/generators/steak/install_generator.rb +12 -0
  4. data/lib/generators/steak/spec_generator.rb +11 -0
  5. data/lib/generators/steak/templates/acceptance_spec.rb +13 -0
  6. data/lib/generators/steak/templates/spec/acceptance/acceptance_helper.rb +4 -0
  7. data/lib/generators/steak/templates/spec/acceptance/support/helpers.rb +6 -0
  8. data/lib/{rspec-2/rails/generators/templates → generators/steak/templates/spec/acceptance/support}/paths.rb +1 -1
  9. data/lib/steak.rb +4 -10
  10. data/lib/steak/acceptance_example_group.rb +12 -0
  11. data/lib/steak/railtie.rb +7 -0
  12. data/lib/steak/version.rb +3 -0
  13. data/lib/tasks/steak_tasks.rake +14 -0
  14. data/spec/acceptance/creating_specs_spec.rb +75 -0
  15. data/spec/acceptance/getting_started_spec.rb +33 -0
  16. data/spec/acceptance/rake_support_spec.rb +40 -0
  17. data/spec/fixtures/rails_project/.gitignore +5 -0
  18. data/spec/fixtures/rails_project/Gemfile +55 -0
  19. data/spec/fixtures/rails_project/README +261 -0
  20. data/spec/fixtures/rails_project/Rakefile +7 -0
  21. data/spec/fixtures/rails_project/app/assets/images/rails.png +0 -0
  22. data/spec/fixtures/rails_project/app/assets/javascripts/application.js +9 -0
  23. data/spec/fixtures/rails_project/app/assets/stylesheets/application.css +7 -0
  24. data/spec/fixtures/rails_project/app/controllers/application_controller.rb +3 -0
  25. data/spec/fixtures/rails_project/app/helpers/application_helper.rb +2 -0
  26. data/spec/fixtures/rails_project/app/mailers/.gitkeep +0 -0
  27. data/spec/fixtures/rails_project/app/models/.gitkeep +0 -0
  28. data/spec/fixtures/rails_project/app/views/layouts/application.html.erb +14 -0
  29. data/spec/fixtures/rails_project/config.ru +4 -0
  30. data/spec/fixtures/rails_project/config/application.rb +49 -0
  31. data/spec/fixtures/rails_project/config/boot.rb +6 -0
  32. data/spec/fixtures/rails_project/config/database.yml +48 -0
  33. data/spec/fixtures/rails_project/config/environment.rb +5 -0
  34. data/spec/fixtures/rails_project/config/environments/development.rb +24 -0
  35. data/spec/fixtures/rails_project/config/environments/production.rb +52 -0
  36. data/spec/fixtures/rails_project/config/environments/test.rb +39 -0
  37. data/spec/fixtures/rails_project/config/initializers/backtrace_silencers.rb +7 -0
  38. data/spec/fixtures/rails_project/config/initializers/inflections.rb +10 -0
  39. data/spec/fixtures/rails_project/config/initializers/mime_types.rb +5 -0
  40. data/spec/fixtures/rails_project/config/initializers/secret_token.rb +7 -0
  41. data/spec/fixtures/rails_project/config/initializers/session_store.rb +8 -0
  42. data/spec/fixtures/rails_project/config/initializers/wrap_parameters.rb +12 -0
  43. data/spec/fixtures/rails_project/config/locales/en.yml +5 -0
  44. data/spec/fixtures/rails_project/config/routes.rb +58 -0
  45. data/spec/fixtures/rails_project/db/seeds.rb +7 -0
  46. data/spec/fixtures/rails_project/doc/README_FOR_APP +2 -0
  47. data/spec/fixtures/rails_project/lib/tasks/.gitkeep +0 -0
  48. data/spec/fixtures/rails_project/log/.gitkeep +0 -0
  49. data/spec/fixtures/rails_project/public/404.html +26 -0
  50. data/spec/fixtures/rails_project/public/422.html +26 -0
  51. data/spec/fixtures/rails_project/public/500.html +26 -0
  52. data/spec/fixtures/rails_project/public/favicon.ico +0 -0
  53. data/spec/fixtures/rails_project/public/index.html +241 -0
  54. data/spec/fixtures/rails_project/public/robots.txt +5 -0
  55. data/spec/fixtures/rails_project/script/rails +6 -0
  56. data/spec/fixtures/rails_project/test/fixtures/.gitkeep +0 -0
  57. data/spec/fixtures/rails_project/test/functional/.gitkeep +0 -0
  58. data/spec/fixtures/rails_project/test/integration/.gitkeep +0 -0
  59. data/spec/fixtures/rails_project/test/performance/browsing_test.rb +12 -0
  60. data/spec/fixtures/rails_project/test/test_helper.rb +13 -0
  61. data/spec/fixtures/rails_project/test/unit/.gitkeep +0 -0
  62. data/spec/fixtures/rails_project/vendor/assets/stylesheets/.gitkeep +0 -0
  63. data/spec/fixtures/rails_project/vendor/plugins/.gitkeep +0 -0
  64. data/spec/fixtures/rails_project_with_steak/.gitignore +5 -0
  65. data/spec/fixtures/rails_project_with_steak/.rspec +1 -0
  66. data/spec/fixtures/rails_project_with_steak/Gemfile +58 -0
  67. data/spec/fixtures/rails_project_with_steak/README +261 -0
  68. data/spec/fixtures/rails_project_with_steak/Rakefile +7 -0
  69. data/spec/fixtures/rails_project_with_steak/app/assets/images/rails.png +0 -0
  70. data/spec/fixtures/rails_project_with_steak/app/assets/javascripts/application.js +9 -0
  71. data/spec/fixtures/rails_project_with_steak/app/assets/stylesheets/application.css +7 -0
  72. data/spec/fixtures/rails_project_with_steak/app/controllers/application_controller.rb +3 -0
  73. data/spec/fixtures/rails_project_with_steak/app/helpers/application_helper.rb +2 -0
  74. data/spec/fixtures/rails_project_with_steak/app/mailers/.gitkeep +0 -0
  75. data/spec/fixtures/rails_project_with_steak/app/models/.gitkeep +0 -0
  76. data/spec/fixtures/rails_project_with_steak/app/views/layouts/application.html.erb +14 -0
  77. data/spec/fixtures/rails_project_with_steak/config.ru +4 -0
  78. data/spec/fixtures/rails_project_with_steak/config/application.rb +49 -0
  79. data/spec/fixtures/rails_project_with_steak/config/boot.rb +6 -0
  80. data/spec/fixtures/rails_project_with_steak/config/database.yml +48 -0
  81. data/spec/fixtures/rails_project_with_steak/config/environment.rb +5 -0
  82. data/spec/fixtures/rails_project_with_steak/config/environments/development.rb +24 -0
  83. data/spec/fixtures/rails_project_with_steak/config/environments/production.rb +52 -0
  84. data/spec/fixtures/rails_project_with_steak/config/environments/test.rb +39 -0
  85. data/spec/fixtures/rails_project_with_steak/config/initializers/backtrace_silencers.rb +7 -0
  86. data/spec/fixtures/rails_project_with_steak/config/initializers/inflections.rb +10 -0
  87. data/spec/fixtures/rails_project_with_steak/config/initializers/mime_types.rb +5 -0
  88. data/spec/fixtures/rails_project_with_steak/config/initializers/secret_token.rb +7 -0
  89. data/spec/fixtures/rails_project_with_steak/config/initializers/session_store.rb +8 -0
  90. data/spec/fixtures/rails_project_with_steak/config/initializers/wrap_parameters.rb +12 -0
  91. data/spec/fixtures/rails_project_with_steak/config/locales/en.yml +5 -0
  92. data/spec/fixtures/rails_project_with_steak/config/routes.rb +58 -0
  93. data/spec/fixtures/rails_project_with_steak/db/schema.rb +15 -0
  94. data/spec/fixtures/rails_project_with_steak/db/seeds.rb +7 -0
  95. data/spec/fixtures/rails_project_with_steak/doc/README_FOR_APP +2 -0
  96. data/spec/fixtures/rails_project_with_steak/lib/tasks/.gitkeep +0 -0
  97. data/spec/fixtures/rails_project_with_steak/log/.gitkeep +0 -0
  98. data/spec/fixtures/rails_project_with_steak/public/404.html +26 -0
  99. data/spec/fixtures/rails_project_with_steak/public/422.html +26 -0
  100. data/spec/fixtures/rails_project_with_steak/public/500.html +26 -0
  101. data/spec/fixtures/rails_project_with_steak/public/favicon.ico +0 -0
  102. data/spec/fixtures/rails_project_with_steak/public/index.html +241 -0
  103. data/spec/fixtures/rails_project_with_steak/public/robots.txt +5 -0
  104. data/spec/fixtures/rails_project_with_steak/script/rails +6 -0
  105. data/spec/fixtures/rails_project_with_steak/spec/acceptance/acceptance_helper.rb +4 -0
  106. data/spec/fixtures/rails_project_with_steak/spec/acceptance/support/.gitignore +0 -0
  107. data/spec/fixtures/rails_project_with_steak/spec/acceptance/support/helpers.rb +6 -0
  108. data/{generators/steak/templates → spec/fixtures/rails_project_with_steak/spec/acceptance/support}/paths.rb +1 -1
  109. data/spec/fixtures/rails_project_with_steak/spec/spec_helper.rb +27 -0
  110. data/spec/fixtures/rails_project_with_steak/test/fixtures/.gitkeep +0 -0
  111. data/spec/fixtures/rails_project_with_steak/test/functional/.gitkeep +0 -0
  112. data/spec/fixtures/rails_project_with_steak/test/integration/.gitkeep +0 -0
  113. data/spec/fixtures/rails_project_with_steak/test/performance/browsing_test.rb +12 -0
  114. data/spec/fixtures/rails_project_with_steak/test/test_helper.rb +13 -0
  115. data/spec/fixtures/rails_project_with_steak/test/unit/.gitkeep +0 -0
  116. data/spec/fixtures/rails_project_with_steak/vendor/assets/stylesheets/.gitkeep +0 -0
  117. data/spec/fixtures/rails_project_with_steak/vendor/plugins/.gitkeep +0 -0
  118. data/spec/support/helpers.rb +73 -0
  119. data/spec/support/refresh_fixtures_task.rb +30 -0
  120. metadata +255 -117
  121. data/README.rdoc +0 -193
  122. data/Rakefile +0 -23
  123. data/generators/acceptance_spec/USAGE +0 -1
  124. data/generators/acceptance_spec/acceptance_spec_generator.rb +0 -9
  125. data/generators/acceptance_spec/templates/acceptance_spec.rb +0 -12
  126. data/generators/steak/USAGE +0 -8
  127. data/generators/steak/steak_generator.rb +0 -26
  128. data/generators/steak/templates/acceptance_helper.rb +0 -18
  129. data/generators/steak/templates/helpers.rb +0 -5
  130. data/generators/steak/templates/steak.rake +0 -44
  131. data/lib/rspec-1/steak.rb +0 -17
  132. data/lib/rspec-2/rails/generators/install_generator.rb +0 -31
  133. data/lib/rspec-2/rails/generators/spec_generator.rb +0 -36
  134. data/lib/rspec-2/rails/generators/templates/acceptance_helper.rb +0 -5
  135. data/lib/rspec-2/rails/generators/templates/acceptance_spec.rb +0 -12
  136. data/lib/rspec-2/rails/generators/templates/helpers.rb +0 -5
  137. data/lib/rspec-2/rails/railtie.rb +0 -14
  138. data/lib/rspec-2/rails/tasks/steak.rake +0 -14
  139. data/lib/rspec-2/steak.rb +0 -31
  140. data/spec/acceptance/rspec-1/acceptance_helper.rb +0 -98
  141. data/spec/acceptance/rspec-1/acceptance_spec_generator_spec.rb +0 -44
  142. data/spec/acceptance/rspec-1/basic_spec.rb +0 -76
  143. data/spec/acceptance/rspec-1/rails_spec.rb +0 -39
  144. data/spec/acceptance/rspec-1/steak_generator_spec.rb +0 -96
  145. data/spec/acceptance/rspec-2/acceptance_helper.rb +0 -81
  146. data/spec/acceptance/rspec-2/basic_spec.rb +0 -121
  147. data/spec/acceptance/rspec-2/rails_spec.rb +0 -88
  148. data/spec/acceptance/rspec-2/steak_install_generator_spec.rb +0 -62
  149. data/spec/acceptance/rspec-2/steak_spec_generator_spec.rb +0 -77
@@ -1,121 +0,0 @@
1
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
2
-
3
- feature "Acceptance spec execution", %q{
4
- In order to write better software
5
- As a ruby developer
6
- I want to execute acceptance specs
7
- } do
8
-
9
- scenario "Minimal acceptance spec" do
10
- spec_file = create_spec <<-SPEC
11
- require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
12
- feature "Minimal spec" do
13
- scenario "First scenario" do
14
- true.should be_true
15
- end
16
- end
17
- SPEC
18
- output = run_spec spec_file
19
- output.should =~ /1 example, 0 failures/
20
- end
21
-
22
- scenario "Minimal acceptance spec that fails" do
23
- spec_file = create_spec <<-SPEC
24
- require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
25
- feature "Minimal spec" do
26
- scenario "First scenario" do
27
- true.should be_false
28
- end
29
- end
30
- SPEC
31
- output = run_spec spec_file
32
- output.should =~ /1 example, 1 failure/
33
- end
34
-
35
- scenario "Acceptance spec with background" do
36
- spec_file = create_spec <<-SPEC
37
- require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
38
- feature "Minimal spec" do
39
- background do
40
- @value = 17
41
- end
42
- scenario "First scenario" do
43
- @value.should == 17
44
- end
45
- end
46
- SPEC
47
- output = run_spec spec_file
48
- output.should =~ /1 example, 0 failures/
49
- end
50
-
51
- scenario "Acceptance spec metadata" do
52
- spec_file = create_spec <<-SPEC
53
- require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
54
- feature "Minimal spec" do
55
- scenario "should have acceptance metadata" do
56
- example.metadata[:type].should == :acceptance
57
- example.metadata[:steak].should be_true
58
- example.metadata[:file_path].should == __FILE__
59
- end
60
- end
61
- SPEC
62
- output = run_spec spec_file
63
- output.should =~ /1 example, 0 failures/
64
- end
65
-
66
- scenario "Regular specs doesn't have acceptance metadata" do
67
- spec_file = create_spec <<-SPEC
68
- require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
69
- describe "Regular spec" do
70
- it "should not have acceptance metadata" do
71
- example.metadata[:type].should_not == :acceptance
72
- example.metadata[:steak].should_not be_true
73
- end
74
- end
75
- SPEC
76
- output = run_spec spec_file
77
- output.should =~ /1 example, 0 failures/
78
- end
79
-
80
- scenario "Feature-level file path metadata filtering" do
81
- spec_file = create_spec <<-SPEC
82
- require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
83
- RSpec.configuration.before(:each, :example_group => {:file_path => __FILE__}) do
84
- @executed = true
85
- end
86
- feature "Minimal spec" do
87
- scenario "should have run the before block" do
88
- @executed.should be_true
89
- end
90
- end
91
- SPEC
92
- output = run_spec spec_file
93
- output.should =~ /1 example, 0 failures/
94
- end
95
-
96
- scenario "Steak should not pollute Object methods namespace" do
97
- spec_file = create_spec <<-SPEC
98
- require '#{File.dirname(__FILE__) + "/../../../lib/steak"}'
99
-
100
- class Wadus
101
- def call_feature
102
- feature
103
- end
104
-
105
- def method_missing(meth, *args, &blk)
106
- return "Hello!"
107
- end
108
- end
109
-
110
- feature "Wadus class" do
111
- scenario "should not be polluted by Steak" do
112
- w = Wadus.new
113
- w.should_not respond_to(:feature)
114
- w.call_feature.should == "Hello!"
115
- end
116
- end
117
- SPEC
118
- output = run_spec spec_file
119
- output.should =~ /1 example, 0 failures/
120
- end
121
- end
@@ -1,88 +0,0 @@
1
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
2
-
3
- feature "Acceptance spec execution", %q{
4
- In order to write better web apps
5
- As a rails developer
6
- I want to execute acceptance specs
7
- } do
8
-
9
- scenario "Minimal acceptance spec" do
10
- rails_app = create_rails_app
11
- spec_file = create_spec :path => rails_app + "/spec/acceptance",
12
- :content => <<-SPEC
13
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
14
- feature "Minimal spec" do
15
- scenario "First scenario" do
16
- ::Rails.env.should == "test"
17
- end
18
- end
19
- SPEC
20
- output = run_spec spec_file, File.join(File.dirname(spec_file), '../..')
21
- output.should =~ /1 example, 0 failures/
22
- end
23
-
24
- scenario "Integration stuff" do
25
- rails_app = create_rails_app
26
- spec_file = create_spec :path => rails_app + "/spec/acceptance",
27
- :content => <<-SPEC
28
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
29
- feature "Minimal spec" do
30
- scenario "First scenario" do
31
- get "/"
32
- last_response.body.should =~ /Not Found/
33
- end
34
- end
35
- SPEC
36
- output = run_spec spec_file, File.join(File.dirname(spec_file), '../..')
37
- output.should =~ /1 example, 0 failures/
38
- end
39
-
40
- scenario "Path helpers are available" do
41
- rails_app = create_rails_app
42
- spec_file = create_spec :path => rails_app + "/spec/acceptance",
43
- :content => <<-SPEC
44
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
45
- feature "Minimal spec" do
46
- scenario "First scenario" do
47
- homepage.should == "/"
48
- end
49
- end
50
- SPEC
51
- output = run_spec spec_file, File.join(File.dirname(spec_file), '../..')
52
- output.should =~ /1 example, 0 failures/
53
- end
54
-
55
- scenario "Running rake stats" do
56
- rails_app = create_rails_app
57
-
58
- Dir.chdir rails_app do
59
- run "rails generate steak:install"
60
- run("rake stats").should =~ /Acceptance specs/
61
- end
62
- end
63
-
64
- scenario "Running specs with rake" do
65
- rails_app = create_rails_app
66
-
67
- spec_file = create_spec :path => rails_app + "/spec/acceptance",
68
- :content => <<-SPEC
69
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
70
- feature "Basic spec" do
71
- scenario "First scenario" do
72
- true.should == true
73
- end
74
- end
75
- SPEC
76
-
77
- Dir.chdir rails_app do
78
- run "rake db:migrate db:test:prepare"
79
-
80
- output = run("rake spec:acceptance")
81
- output.should =~ /1 example, 0 failures/
82
-
83
- output = run("rake")
84
- output.should =~ /1 example, 0 failures/
85
- end
86
- end
87
-
88
- end
@@ -1,62 +0,0 @@
1
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
2
-
3
- feature "Steak generator for rails", %q{
4
- In order to quickly start to hack my rails project with steak
5
- As a developer
6
- I want to run a generator that sets everything up for me
7
- } do
8
-
9
- scenario "Running generator in an empty project" do
10
-
11
- rails_app = create_rails_app(:setup_steak => false)
12
-
13
- Dir.chdir rails_app do
14
- run "rails generate steak:install"
15
- end
16
-
17
- File.exist?(rails_app + "/spec/acceptance/acceptance_helper.rb").should be_true
18
- File.exist?(rails_app + "/spec/acceptance/support/helpers.rb").should be_true
19
- File.exist?(rails_app + "/spec/acceptance/support/paths.rb").should be_true
20
-
21
- end
22
-
23
- scenario "Running generator with capybara by default" do
24
- rails_app = create_rails_app(:setup_steak => false, :scaffold => :users)
25
-
26
- Dir.chdir rails_app do
27
- run "rails generate steak:install"
28
- end
29
-
30
- spec_file = create_spec :path => rails_app + "/spec/acceptance",
31
- :content => <<-SPEC
32
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
33
- feature "Capybara spec" do
34
- scenario "First scenario" do
35
- visit "/users"
36
- page.should have_content('Listing users')
37
- end
38
- end
39
- SPEC
40
- output = run_spec spec_file, rails_app
41
- output.should =~ /1 example, 0 failures/
42
- end
43
-
44
- scenario "Running generator with webrat" do
45
- rails_app = create_rails_app(:browser_simulator => :webrat, :scaffold => :users)
46
-
47
- spec_file = create_spec :path => rails_app + "/spec/acceptance",
48
- :content => <<-SPEC
49
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
50
- feature "Webrat spec" do
51
- scenario "First scenario" do
52
- visit "/users"
53
- response_body.should contain('Listing users')
54
- end
55
- end
56
- SPEC
57
-
58
- output = run_spec spec_file, rails_app
59
- output.should =~ /1 example, 0 failures/
60
- end
61
-
62
- end
@@ -1,77 +0,0 @@
1
- require File.dirname(__FILE__) + "/acceptance_helper.rb"
2
-
3
- feature "Acceptance spec generator for rails", %q{
4
- In order to quickly add a new acceptance spec
5
- As a developer
6
- I want to run a generator that creates it for me
7
- } do
8
-
9
- background do
10
- @rails_app = create_rails_app
11
- end
12
-
13
- scenario "Adding new acceptance spec" do
14
- Dir.chdir @rails_app do
15
- run "rails generate steak:spec document_creation"
16
- end
17
-
18
- File.exist?(
19
- @rails_app + "/spec/acceptance/document_creation_spec.rb"
20
- ).should be_true
21
- end
22
-
23
- scenario "Adding new acceptance spec (plural name)" do
24
- Dir.chdir @rails_app do
25
- run "rails generate steak:spec creating_documents"
26
- end
27
-
28
- File.exist?(
29
- @rails_app + "/spec/acceptance/creating_documents_spec.rb"
30
- ).should be_true
31
- end
32
-
33
- scenario "Adding new acceptance spec (pascalized name)" do
34
- Dir.chdir @rails_app do
35
- run "rails generate steak:spec DocumentCreation"
36
- end
37
-
38
- File.exist?(
39
- @rails_app + "/spec/acceptance/document_creation_spec.rb"
40
- ).should be_true
41
- end
42
-
43
- scenario "Adding new acceptance spec (name ending with _spec)" do
44
- Dir.chdir @rails_app do
45
- run "rails generate steak:spec document_creation_spec"
46
- end
47
-
48
- File.exist?(
49
- @rails_app + "/spec/acceptance/document_creation_spec.rb"
50
- ).should be_true
51
- end
52
-
53
- scenario "Adding new acceptance spec (namespaced)" do
54
- Dir.chdir @rails_app do
55
- run "rails generate steak:spec document/creation_spec"
56
- end
57
-
58
- file_path = @rails_app + "/spec/acceptance/document/creation_spec.rb"
59
-
60
- File.exist?(file_path).should be_true
61
- File.read(file_path).should include("/../acceptance_helper")
62
- end
63
-
64
- scenario "Removing an acceptance spec" do
65
- Dir.chdir @rails_app do
66
- run "rails generate steak:spec document_creation"
67
- run "rails destroy steak:spec document_creation"
68
- end
69
-
70
- spec_dir = @rails_app + "/spec/acceptance/"
71
-
72
- File.exist?(spec_dir + "document_creation_spec.rb").should be_false
73
- File.exist?(spec_dir + "acceptance_helper.rb").should be_true
74
- File.exist?(spec_dir + "support/helpers.rb").should be_true
75
- File.exist?(spec_dir + "support/paths.rb").should be_true
76
- end
77
- end