File tree Expand file tree Collapse file tree 10 files changed +123
-27
lines changed
Expand file tree Collapse file tree 10 files changed +123
-27
lines changed Original file line number Diff line number Diff line change @@ -8,3 +8,13 @@ cache: bundler
88services :
99 - mongodb
1010
11+ addons :
12+ firefox : 54.0
13+
14+ before_install :
15+ - export DISPLAY=:99.0
16+ - sh -e /etc/init.d/xvfb start
17+ - wget https://github.com/mozilla/geckodriver/releases/download/v0.18.0/geckodriver-v0.18.0-linux64.tar.gz
18+ - mkdir geckodriver
19+ - tar -xzf geckodriver-v0.18.0-linux64.tar.gz -C geckodriver
20+ - export PATH=$PATH:$PWD/geckodriver
Original file line number Diff line number Diff line change @@ -4,16 +4,18 @@ ruby '2.3.1'
44
55gem 'mongoid'
66gem 'mongoid-scroll'
7- gem 'slack-ruby-bot-server'
87gem 'newrelic-slack-ruby-bot'
8+ gem 'slack-ruby-bot-server'
99
1010group :test do
11- gem 'rake '
12- gem 'rspec '
11+ gem 'capybara '
12+ gem 'database_cleaner '
1313 gem 'fabrication'
1414 gem 'faker'
15+ gem 'rack-test'
16+ gem 'rake'
17+ gem 'rspec'
18+ gem 'selenium-webdriver'
1519 gem 'vcr'
1620 gem 'webmock'
17- gem 'database_cleaner'
18- gem 'rack-test'
1921end
Original file line number Diff line number Diff line change 1616 thread_safe (~> 0.3 , >= 0.3.1 )
1717 bson (4.2.2 )
1818 builder (3.2.3 )
19+ capybara (2.15.1 )
20+ addressable
21+ mini_mime (>= 0.1.3 )
22+ nokogiri (>= 1.3.3 )
23+ rack (>= 1.0.0 )
24+ rack-test (>= 0.5.4 )
25+ xpath (~> 2.0 )
1926 celluloid (0.17.3 )
2027 celluloid-essentials
2128 celluloid-extras
3744 timers (>= 4.1.1 )
3845 celluloid-supervision (0.20.6 )
3946 timers (>= 4.1.1 )
47+ childprocess (0.7.1 )
48+ ffi (~> 1.0 , >= 1.0.11 )
4049 coercible (1.0.0 )
4150 descendants_tracker (~> 0.0.1 )
4251 concurrent-ruby (1.0.5 )
5665 multipart-post (>= 1.2 , < 3 )
5766 faraday_middleware (0.12.2 )
5867 faraday (>= 0.7.4 , < 1.0 )
68+ ffi (1.9.18 )
5969 foreman (0.84.0 )
6070 thor (~> 0.19.1 )
6171 gli (2.16.1 )
8393 grape
8494 kaminari-core (~> 1.0 )
8595 kgio (2.11.0 )
96+ mini_mime (0.1.3 )
97+ mini_portile2 (2.2.0 )
8698 minitest (5.10.3 )
8799 mongo (2.4.3 )
88100 bson (>= 4.2.1 , < 5.0.0 )
106118 slack-ruby-bot
107119 newrelic_rpm (4.3.0.335 )
108120 nio4r (2.1.0 )
121+ nokogiri (1.8.0 )
122+ mini_portile2 (~> 2.2.0 )
109123 public_suffix (2.0.5 )
110124 rack (2.0.3 )
111125 rack-accept (0.4.5 )
137151 diff-lcs (>= 1.2.0 , < 2.0 )
138152 rspec-support (~> 3.6.0 )
139153 rspec-support (3.6.0 )
154+ rubyzip (1.2.1 )
140155 safe_yaml (1.0.4 )
156+ selenium-webdriver (3.4.4 )
157+ childprocess (~> 0.5 )
158+ rubyzip (~> 1.0 )
141159 slack-ruby-bot (0.10.4 )
142160 hashie
143161 slack-ruby-client (>= 0.6.0 )
@@ -184,11 +202,14 @@ GEM
184202 websocket-driver (0.6.5 )
185203 websocket-extensions (>= 0.1.0 )
186204 websocket-extensions (0.1.2 )
205+ xpath (2.1.0 )
206+ nokogiri (~> 1.3 )
187207
188208PLATFORMS
189209 ruby
190210
191211DEPENDENCIES
212+ capybara
192213 database_cleaner
193214 fabrication
194215 faker
@@ -198,6 +219,7 @@ DEPENDENCIES
198219 rack-test
199220 rake
200221 rspec
222+ selenium-webdriver
201223 slack-ruby-bot-server
202224 vcr
203225 webmock
Original file line number Diff line number Diff line change 1+ require 'spec_helper'
2+
3+ describe 'Add to Slack' , js : true , type : :feature do
4+ before do
5+ ENV [ 'SLACK_CLIENT_ID' ] = 'client_id'
6+ ENV [ 'SLACK_CLIENT_SECRET' ] = 'client_secret'
7+ end
8+ after do
9+ ENV . delete 'SLACK_CLIENT_ID'
10+ ENV . delete 'SLACK_CLIENT_SECRET'
11+ end
12+ it 'registers a team' do
13+ allow_any_instance_of ( Team ) . to receive ( :ping! ) . and_return ( ok : true )
14+ expect ( SlackRubyBotServer ::Service . instance ) . to receive ( :start! )
15+ oauth_access = { 'bot' => { 'bot_access_token' => 'token' } , 'team_id' => 'team_id' , 'team_name' => 'team_name' }
16+ allow_any_instance_of ( Slack ::Web ::Client ) . to receive ( :oauth_access ) . with ( hash_including ( code : 'code' ) ) . and_return ( oauth_access )
17+ expect do
18+ visit '/?code=code'
19+ expect ( page . find ( '#messages' ) ) . to have_content 'Team successfully registered!'
20+ end . to change ( Team , :count ) . by ( 1 )
21+ end
22+ end
Original file line number Diff line number Diff line change 1+ require 'spec_helper'
2+
3+ describe 'index.html' , js : true , type : :feature do
4+ before do
5+ ENV [ 'SLACK_CLIENT_ID' ] = 'slack-client-id'
6+ visit '/'
7+ end
8+ after do
9+ ENV . delete 'SLACK_CLIENT_ID'
10+ end
11+ it 'includes a link to add to slack with the client id' do
12+ expect ( title ) . to eq ( 'Slack Ruby Bot Server' )
13+ expect ( first ( 'p[id=register] a' ) [ 'href' ] ) . to eq 'https://slack.com/oauth/authorize?scope=bot&client_id=slack-client-id'
14+ end
15+ end
Original file line number Diff line number Diff line change 44
55Bundler . require
66
7- require 'slack-ruby-bot-server/rspec'
8-
9- Mongoid . load! ( File . expand_path ( '../config/mongoid.yml' , __dir__ ) , ENV [ 'RACK_ENV' ] )
10-
11- require 'database_cleaner'
12-
13- RSpec . configure do |config |
14- config . before :suite do
15- Mongo ::Logger . logger . level = Logger ::INFO
16-
17- Mongoid ::Tasks ::Database . create_indexes
18- end
19-
20- config . after :suite do
21- Mongoid . purge!
22- end
23-
24- config . around :each do |example |
25- DatabaseCleaner . cleaning do
26- example . run
27- end
28- end
7+ Dir [ File . join ( File . dirname ( __FILE__ ) , 'support' , '**/*.rb' ) ] . each do |file |
8+ require file
299end
10+
11+ require 'slack-ruby-bot-server/rspec'
Original file line number Diff line number Diff line change 1+ require 'capybara/rspec'
2+
3+ Capybara . configure do |config |
4+ config . app = SlackRubyBotServer ::Api ::Middleware . instance
5+ config . server_port = 9293
6+ end
Original file line number Diff line number Diff line change 1+ require 'database_cleaner'
2+
3+ RSpec . configure do |config |
4+ config . before :suite do
5+ DatabaseCleaner . strategy = :truncation
6+ DatabaseCleaner . clean_with :truncation
7+ end
8+
9+ config . after :suite do
10+ Mongoid . purge!
11+ end
12+
13+ config . around :each do |example |
14+ DatabaseCleaner . cleaning do
15+ example . run
16+ end
17+ end
18+ end
Original file line number Diff line number Diff line change 1+ Mongoid . load! ( File . expand_path ( '../../config/mongoid.yml' , __dir__ ) , ENV [ 'RACK_ENV' ] )
2+
3+ RSpec . configure do |config |
4+ config . before :suite do
5+ Mongoid . logger . level = Logger ::INFO
6+ Mongo ::Logger . logger . level = Logger ::INFO
7+
8+ Mongoid ::Tasks ::Database . create_indexes
9+ end
10+ end
Original file line number Diff line number Diff line change 1+ require 'vcr'
2+
3+ VCR . configure do |config |
4+ config . cassette_library_dir = 'spec/fixtures/slack'
5+ config . hook_into :webmock
6+ # config.default_cassette_options = { record: :new_episodes }
7+ config . configure_rspec_metadata!
8+ config . ignore_localhost = true
9+ end
You can’t perform that action at this time.
0 commit comments