Class: Hobby::Devtools::RSpec

Inherits:
Object
  • Object
show all
Defined in:
lib/hobby/devtools/rspec.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ RSpec

Returns a new instance of RSpec.



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
# File 'lib/hobby/devtools/rspec.rb', line 16

def initialize &block
  @path = 'spec/http'
  instance_exec &block

  Dir["#{@path}/**/*.yml"].each do |file|
    test = Hobby::Test.from_file file, format: @format
    ::RSpec.describe [test, @app] do
      before :each do |example|
        test, app = described_class

        socket = "app.for.#{test}.socket"
        @pid = fork do
          server = Puma::Server.new app.call
          server.add_unix_listener socket
          server.run
          sleep
        end

        sleep 0.01 until File.exist? socket

        @report = test[socket]
      end

      after(:each) { `kill -9 #{@pid}` }

      it 'works' do
        expect(@report).to be_ok
      end
    end
  end
end

Class Method Details

.describe(&block) ⇒ Object



12
13
14
# File 'lib/hobby/devtools/rspec.rb', line 12

def self.describe &block
  new &block
end

Instance Method Details

#app(&block) ⇒ Object



48
49
50
# File 'lib/hobby/devtools/rspec.rb', line 48

def app &block
  @app = block
end

#format(format) ⇒ Object



56
57
58
# File 'lib/hobby/devtools/rspec.rb', line 56

def format format
  @format = format
end

#path(path) ⇒ Object



52
53
54
# File 'lib/hobby/devtools/rspec.rb', line 52

def path path
  @path = path
end