Sha256: 2c3f0830603e22e63e0d501d3647aba8ee211743af419ba442d645d40d957ae7

Contents?: true

Size: 1.1 KB

Versions: 2

Compression:

Stored size: 1.1 KB

Contents

require 'test_helper'
require 'chillout/creations_container'

module Chillout
  class CreationsMonitorRackTest < ChilloutTestCase
    include Rack::Test::Methods

    def setup
      api_key = "xyz123"
      stub_api_request(api_key, "metrics")
      @config = Chillout::Config.new(api_key)
      @client = Chillout::Client.new(@config)
      @client.start_worker
    end

    def app
      client = @client
      deepest_level = lambda do |env|
        Thread.current[:creations] = CreationsContainer.new
        2.times { Thread.current[:creations].increment!("User") }
        3.times { Thread.current[:creations].increment!("Cart") }
        [200, env, ['hello']]
      end
      Rack::Builder.new do
        use Middleware::CreationsMonitor, client
        run(deepest_level)
      end
    end

    def test_creations_values
      get "/"
      Thread.pass
      assert_equal 2, request_body["content"]["creations"]["User"]
      assert_equal 3, request_body["content"]["creations"]["Cart"]
    end

    private
      def request_body
        assert_request_body("metrics") { |body| return body }
      end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
chillout-0.4.1 test/integration/creations_monitor_rack_test.rb
chillout-0.4.0 test/integration/creations_monitor_rack_test.rb