/
rails.feature
123 lines (111 loc) · 5.5 KB
/
rails.feature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Feature: Install the Gem in a Rails application
Background:
Given I have built and installed the "hoptoad_notifier" gem
Scenario: Use the gem without vendoring the gem in a Rails application
When I generate a new Rails application
And I configure the Hoptoad shim
And I configure my application to require the "hoptoad_notifier" gem
And I run the hoptoad generator with "-k myapikey"
Then the command should have run successfully
And I should receive a Hoptoad notification
And I should see the Rails version
Scenario: vendor the gem and uninstall
When I generate a new Rails application
And I configure the Hoptoad shim
And I configure my application to require the "hoptoad_notifier" gem
And I unpack the "hoptoad_notifier" gem
And I run the hoptoad generator with "-k myapikey"
Then the command should have run successfully
When I uninstall the "hoptoad_notifier" gem
And I install cached gems
And I run "rake hoptoad:test"
Then I should see "** [Hoptoad] Success: Net::HTTPOK"
And I should receive two Hoptoad notifications
Scenario: Configure the notifier by hand
When I generate a new Rails application
And I configure the Hoptoad shim
And I configure the notifier to use "myapikey" as an API key
And I configure my application to require the "hoptoad_notifier" gem
And I run the hoptoad generator with ""
Then I should receive a Hoptoad notification
Scenario: Try to install without an api key
When I generate a new Rails application
And I configure my application to require the "hoptoad_notifier" gem
And I run the hoptoad generator with ""
Then I should see "Must pass --api-key or --heroku or create config/initializers/hoptoad.rb"
Scenario: Configure and deploy using only installed gem
When I generate a new Rails application
And I run "capify ."
And I configure the Hoptoad shim
And I configure my application to require the "hoptoad_notifier" gem
And I run the hoptoad generator with "-k myapikey"
And I run "cap -T"
Then I should see "deploy:notify_hoptoad"
Scenario: Configure and deploy using only vendored gem
When I generate a new Rails application
And I run "capify ."
And I configure the Hoptoad shim
And I configure my application to require the "hoptoad_notifier" gem
And I unpack the "hoptoad_notifier" gem
And I run the hoptoad generator with "-k myapikey"
And I uninstall the "hoptoad_notifier" gem
And I install cached gems
And I run "cap -T"
Then I should see "deploy:notify_hoptoad"
Scenario: Try to install when the hoptoad_notifier plugin still exists
When I generate a new Rails application
And I install the "hoptoad_notifier" plugin
And I configure the Hoptoad shim
And I configure the notifier to use "myapikey" as an API key
And I configure my application to require the "hoptoad_notifier" gem
And I run the hoptoad generator with ""
Then I should see "You must first remove the hoptoad_notifier plugin. Please run: script/plugin remove hoptoad_notifier"
Scenario: Rescue an exception in a controller
When I generate a new Rails application
And I configure the Hoptoad shim
And I configure my application to require the "hoptoad_notifier" gem
And I run the hoptoad generator with "-k myapikey"
And I define a response for "TestController#index":
"""
session[:value] = "test"
raise RuntimeError, "some message"
"""
And I route "/test/index" to "test#index"
And I perform a request to "http://example.com:123/test/index?param=value"
Then I should receive the following Hoptoad notification:
| component | test |
| action | index |
| error message | RuntimeError: some message |
| error class | RuntimeError |
| session | value: test |
| parameters | param: value |
| url | http://example.com:123/test/index?param=value |
Scenario: The gem should not be considered a framework gem
When I generate a new Rails application
And I configure the Hoptoad shim
And I configure my application to require the "hoptoad_notifier" gem
And I run the hoptoad generator with "-k myapikey"
And I run "rake gems"
Then I should see that "hoptoad_notifier" is not considered a framework gem
Scenario: The app uses Vlad instead of Capistrano
When I generate a new Rails application
And I configure the Hoptoad shim
And I configure my application to require the "hoptoad_notifier" gem
And I run "touch config/deploy.rb"
And I run "rm Capfile"
And I run the hoptoad generator with "-k myapikey"
Then "config/deploy.rb" should not contain "capistrano"
Scenario: Support the Heroku addon in the generator
When I generate a new Rails application
And I configure the Hoptoad shim
And I configure the Heroku rake shim
And I configure my application to require the "hoptoad_notifier" gem
And I set the environment variable "HOPTOAD_API_KEY" to "myapikey"
And I run the hoptoad generator with "--heroku"
Then the command should have run successfully
And I should receive a Hoptoad notification
And I should see the Rails version
And my Hoptoad configuration should contain the following line:
"""
config.api_key = ENV['HOPTOAD_API_KEY']
"""