blob: 016a9f531298630312a5ab5c776bc46d9ba58486 (
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Dashboard::SnippetsController do
let_it_be(:user) { create(:user) }
before do
sign_in(user)
end
describe 'GET #index' do
it_behaves_like 'paginated collection' do
let(:collection) { Snippet.all }
before do
create(:personal_snippet, :public, author: user)
end
end
it 'fetches snippet counts via the snippet count service' do
service = double(:count_service, execute: {})
expect(Snippets::CountService)
.to receive(:new).with(user, author: user)
.and_return(service)
get :index
end
it_behaves_like 'snippets sort order'
context 'when views are rendered' do
render_views
it 'avoids N+1 database queries' do
# Warming call to load everything non snippet related
get(:index)
project = create(:project, namespace: user.namespace)
create(:project_snippet, project: project, author: user)
control_count = ActiveRecord::QueryRecorder.new { get(:index) }.count
project = create(:project, namespace: user.namespace)
create(:project_snippet, project: project, author: user)
expect { get(:index) }.not_to exceed_query_limit(control_count)
end
end
end
end
|