summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/middleware/go_spec.rb
blob: fd3769d75b5162896c884133ffdc214dcb3e9614 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require 'spec_helper'

describe Gitlab::Middleware::Go, lib: true do
  let(:app) { double(:app) }
  let(:middleware) { described_class.new(app) }

  describe '#call' do
    describe 'when go-get=0' do
      it 'skips go-import generation' do
        env = { 'rack.input' => '',
                'QUERY_STRING' => 'go-get=0' }
        expect(app).to receive(:call).with(env).and_return('no-go')
        middleware.call(env)
      end
    end

    describe 'when go-get=1' do
      it 'returns a document' do
        env = { 'rack.input' => '',
                'QUERY_STRING' => 'go-get=1',
                'PATH_INFO' => '/group/project/path' }
        resp = middleware.call(env)
        expect(resp[0]).to eq(200)
        expect(resp[1]['Content-Type']).to eq('text/html')
        expected_body = "<!DOCTYPE html><html><head><meta content='#{Gitlab.config.gitlab.host}/group/project git http://#{Gitlab.config.gitlab.host}/group/project.git' name='go-import'></head></html>\n"
        expect(resp[2].body).to eq([expected_body])
      end
    end
  end
end