Skip to content
Snippets Groups Projects
namespaces_spec.rb 1.57 KiB
Newer Older
  • Learn to ignore specific revisions
  • Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
    require 'spec_helper'
    
    
    describe API::Namespaces, api: true  do
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
      include ApiHelpers
      let(:admin) { create(:admin) }
    
      let(:user) { create(:user) }
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
      let!(:group1) { create(:group) }
      let!(:group2) { create(:group) }
    
      describe "GET /namespaces" do
        context "when unauthenticated" do
    
          it "returns authentication error" do
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
            get api("/namespaces")
    
            expect(response).to have_http_status(401)
    
        context "when authenticated as admin" do
    
          it "admin: returns an array of all namespaces" do
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
            get api("/namespaces", admin)
    
            expect(response).to have_http_status(200)
    
            expect(json_response).to be_an Array
    
            expect(json_response.length).to eq(Namespace.count)
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
          end
    
          it "admin: returns an array of matched namespaces" do
    
            get api("/namespaces?search=#{group1.name}", admin)
    
            expect(response).to have_http_status(200)
    
            expect(json_response).to be_an Array
    
            expect(json_response.length).to eq(1)
          end
        end
    
        context "when authenticated as a regular user" do
    
          it "user: returns an array of namespaces" do
    
            get api("/namespaces", user)
    
            expect(response).to have_http_status(200)
    
            expect(json_response).to be_an Array
    
            expect(json_response.length).to eq(1)
          end
    
    
          it "admin: returns an array of matched namespaces" do
    
            get api("/namespaces?search=#{user.username}", user)
    
            expect(response).to have_http_status(200)
    
            expect(json_response).to be_an Array
    
            expect(json_response.length).to eq(1)
          end
    
    Dmitriy Zaporozhets's avatar
    Dmitriy Zaporozhets committed
        end
      end
    end