11require 'rails_spec_helper'
22
3- require 'random-port'
4-
53require 'net/http'
6- require 'socket'
74
85describe 'remote recording' , :order => :defined do
96 def json_body ( res )
@@ -13,34 +10,16 @@ def json_body(res)
1310 rails_versions . each do |rails_version |
1411 context "with rails #{ rails_version } " do
1512 include_context 'rails app' , rails_version
13+ include_context 'Rails app service running'
1614
17- before ( :context ) do
18- @service_port = RandomPort ::Pool ::SINGLETON . acquire
19- @app . prepare_db
20- @server = @app . spawn_cmd \
21- "./bin/rails server -p #{ @service_port } " ,
22- 'ORM_MODULE' => 'sequel' ,
23- 'APPMAP' => 'true'
24-
25- uri = URI ( "http://localhost:#{ @service_port } /health" )
26-
27- 100 . times do
28- Net ::HTTP . get ( uri )
29- break
30- rescue Errno ::ECONNREFUSED
31- sleep 0.1
32- end
15+ before ( :all ) do
16+ @service_port , @server = start_server
3317 end
34-
35- after ( :context ) do
36- if @server
37- Process . kill 'INT' , @server
38- Process . wait @server
39- end
18+ after ( :all ) do
19+ stop_server ( @server )
4020 end
4121
4222 let ( :service_address ) { URI ( "http://localhost:#{ @service_port } " ) }
43- let ( :users_path ) { '/users' }
4423 let ( :record_path ) { '/_appmap/record' }
4524
4625 it 'returns the recording status' do
@@ -80,10 +59,11 @@ def json_body(res)
8059 end
8160
8261 it 'stops recording' do
83- # Generate some events
84- Net ::HTTP . start ( service_address . hostname , service_address . port ) { |http |
62+ users_res = Net ::HTTP . start ( service_address . hostname , service_address . port ) { |http |
8563 http . request ( Net ::HTTP ::Get . new ( users_path ) )
8664 }
65+ # Request recording is not enabled by environment variable
66+ expect ( users_res ) . to_not include ( 'appmap-file-name' )
8767
8868 res = Net ::HTTP . start ( service_address . hostname , service_address . port ) { |http |
8969 http . request ( Net ::HTTP ::Delete . new ( record_path ) )
0 commit comments