65 lines
1.8 KiB
Ruby
65 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe 'Commit > User view commits' do
|
|
let_it_be(:user) { create(:user) }
|
|
let_it_be(:group) { create(:group, :public) }
|
|
|
|
shared_examples 'can view commits' do
|
|
it 'displays the correct number of commits per day in the header' do
|
|
expect(first('.js-commit-header').find('.commits-count').text).to eq('1 commit')
|
|
end
|
|
|
|
it 'lists the correct number of commits' do
|
|
expect(page).to have_selector('#commits-list > li:nth-child(2) > ul', count: 1)
|
|
end
|
|
end
|
|
|
|
describe 'Commits List' do
|
|
context 'when project is public' do
|
|
let(:project) { create(:project, :public, :repository, group: group) }
|
|
|
|
before do
|
|
visit project_commits_path(project)
|
|
end
|
|
|
|
it_behaves_like 'can view commits'
|
|
end
|
|
|
|
context 'when project is public with private repository' do
|
|
let(:project) { create(:project, :public, :repository, :repository_private, group: group) }
|
|
|
|
context 'and user is an inherited member from the group' do
|
|
context 'and user is a guest' do
|
|
before do
|
|
group.add_guest(user)
|
|
sign_in(user)
|
|
visit project_commits_path(project)
|
|
end
|
|
|
|
it_behaves_like 'can view commits'
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'when project is private' do
|
|
let(:project) { create(:project, :private, :repository, group: group) }
|
|
|
|
context 'and user is an inherited member from the group' do
|
|
context 'and user is a guest' do
|
|
before do
|
|
group.add_guest(user)
|
|
sign_in(user)
|
|
visit project_commits_path(project)
|
|
end
|
|
|
|
it 'renders not found' do
|
|
expect(page).to have_title('Not Found')
|
|
expect(page).to have_content('Page Not Found')
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|