Sha256: 327e3b067ffe5db1ed9acf2560e4268ff2204ce9a3a383ae61a6a1d4b492c7b6

Contents?: true

Size: 1.86 KB

Versions: 18

Compression:

Stored size: 1.86 KB

Contents

require "spec_helper"

describe Lita::Handlers::Info, lita_handler: true do
  it { is_expected.to route_command("info").to(:chat) }
  it { is_expected.to route_http(:get, "/lita/info").to(:web) }

  let(:request) { double("Rack::Request") }
  let(:response) { Rack::Response.new }

  describe "#chat" do
    it "responds with the current version of Lita" do
      send_command("info")
      expect(replies.first).to include(Lita::VERSION)
    end

    it "responds with a link to the website" do
      send_command("info")
      expect(replies.first).to include("lita.io")
    end

    it "responds with the Redis version and memory usage" do
      send_command("info")
      expect(replies.last).to match(/Redis [\d\.]+ - Memory used: [\d\.]+[BKMG]/)
    end
  end

  describe "#web" do
    let(:json) { MultiJson.load(response.body.join) }

    it "returns JSON" do
      subject.web(request, response)
      expect(response.headers["Content-Type"]).to eq("application/json")
    end

    it "includes the current version of Lita" do
      subject.web(request, response)
      expect(json).to include("lita_version" => Lita::VERSION)
    end

    it "includes the adapter being used" do
      subject.web(request, response)
      expect(json).to include("adapter" => Lita.config.robot.adapter.to_s)
    end

    it "includes the robot's name" do
      subject.web(request, response)
      expect(json).to include("robot_name" => robot.name)
    end

    it "includes the robot's mention name" do
      subject.web(request, response)
      expect(json).to include("robot_mention_name" => robot.mention_name)
    end

    it "includes the Redis version" do
      subject.web(request, response)
      expect(json).to have_key("redis_version")
    end

    it "includes the Redis memory usage" do
      subject.web(request, response)
      expect(json).to have_key("redis_memory_usage")
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
lita-4.5.0 spec/lita/handlers/info_spec.rb
lita-4.4.3 spec/lita/handlers/info_spec.rb
lita-4.4.2 spec/lita/handlers/info_spec.rb
lita-4.4.1 spec/lita/handlers/info_spec.rb
lita-4.4.0 spec/lita/handlers/info_spec.rb
lita-4.3.2 spec/lita/handlers/info_spec.rb
lita-4.3.1 spec/lita/handlers/info_spec.rb
lita-4.3.0 spec/lita/handlers/info_spec.rb
lita-4.2.1 spec/lita/handlers/info_spec.rb
lita-4.2.0 spec/lita/handlers/info_spec.rb
lita-4.1.0 spec/lita/handlers/info_spec.rb
lita-4.0.4 spec/lita/handlers/info_spec.rb
lita-4.0.3 spec/lita/handlers/info_spec.rb
lita-4.0.2 spec/lita/handlers/info_spec.rb
lita-4.0.1 spec/lita/handlers/info_spec.rb
lita-4.0.0 spec/lita/handlers/info_spec.rb
lita-4.0.0.rc2 spec/lita/handlers/info_spec.rb
lita-4.0.0.rc1 spec/lita/handlers/info_spec.rb