409f2f4dd2
Rails is slow to generate paths dynamically especially when called hundreds/thousands of times. Also, rendering many partials hundreds of times can be slower. This change reduces the number of partials rendered and introduces two fast path methods to speed up path generation.
37 lines
954 B
Ruby
37 lines
954 B
Ruby
require 'spec_helper'
|
|
|
|
describe 'projects/tree/_tree_row' do
|
|
let(:project) { create(:project, :repository) }
|
|
let(:repository) { project.repository }
|
|
let(:blob_item) { Gitlab::Git::Tree.where(repository, SeedRepo::Commit::ID, 'files/ruby').first }
|
|
|
|
before do
|
|
assign(:project, project)
|
|
assign(:repository, repository)
|
|
assign(:id, File.join('master', ''))
|
|
assign(:lfs_blob_ids, [])
|
|
end
|
|
|
|
it 'renders blob item' do
|
|
render_partial(blob_item)
|
|
|
|
expect(rendered).to have_content(blob_item.name)
|
|
expect(rendered).not_to have_selector('.label-lfs', text: 'LFS')
|
|
end
|
|
|
|
describe 'LFS blob' do
|
|
before do
|
|
assign(:lfs_blob_ids, [blob_item].map(&:id))
|
|
|
|
render_partial(blob_item)
|
|
end
|
|
|
|
it 'renders LFS badge' do
|
|
expect(rendered).to have_selector('.label-lfs', text: 'LFS')
|
|
end
|
|
end
|
|
|
|
def render_partial(items)
|
|
render partial: 'projects/tree/tree_row', collection: [items].flatten
|
|
end
|
|
end
|