Merge branch 'add-calendar-tests' into 'master'
Add more tests for calendar contribution ## What does this MR do? Add more tests for calendar contribution ## Are there points in the code the reviewer needs to double check? Shouldn't be ## Why was this MR needed? Improve test coverage for calendar ## Screenshots (if relevant) None ## Does this MR meet the acceptance criteria? - [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - Tests - [ ] Added for this feature/bug - [ ] All builds are passing - [ ] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html) - [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [ ] Branch has no merge conflicts with `master` (if you do - rebase it please) - [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) ## What are the relevant issue numbers? Closes #22347 See merge request !6421
This commit is contained in:
commit
90578f4ad0
2 changed files with 101 additions and 9 deletions
|
@ -3,6 +3,7 @@ Please view this file on the master branch, on stable branches it's out of date.
|
|||
v 8.13.0 (unreleased)
|
||||
- Use gitlab-shell v3.6.2 (GIT TRACE logging)
|
||||
- Speed-up group milestones show page
|
||||
- Add more tests for calendar contribution (ClemMakesApps)
|
||||
- Fix robots.txt disallowing access to groups starting with "s" (Matt Harrison)
|
||||
- Revoke button in Applications Settings underlines on hover.
|
||||
- Add organization field to user profile
|
||||
|
|
|
@ -5,13 +5,41 @@ feature 'Contributions Calendar', js: true, feature: true do
|
|||
|
||||
let(:contributed_project) { create(:project, :public) }
|
||||
|
||||
before do
|
||||
login_as :user
|
||||
date_format = '%A %b %d, %Y'
|
||||
issue_title = 'Bug in old browser'
|
||||
issue_params = { title: issue_title }
|
||||
|
||||
issue_params = { title: 'Bug in old browser' }
|
||||
Issues::CreateService.new(contributed_project, @user, issue_params).execute
|
||||
def get_cell_color_selector(contributions)
|
||||
contribution_cell = '.user-contrib-cell'
|
||||
activity_colors = Array['#ededed', '#acd5f2', '#7fa8c9', '#527ba0', '#254e77']
|
||||
activity_colors_index = 0
|
||||
|
||||
# Push code contribution
|
||||
if contributions > 0 && contributions < 10
|
||||
activity_colors_index = 1
|
||||
elsif contributions >= 10 && contributions < 20
|
||||
activity_colors_index = 2
|
||||
elsif contributions >= 20 && contributions < 30
|
||||
activity_colors_index = 3
|
||||
elsif contributions >= 30
|
||||
activity_colors_index = 4
|
||||
end
|
||||
|
||||
"#{contribution_cell}[fill='#{activity_colors[activity_colors_index]}']"
|
||||
end
|
||||
|
||||
def get_cell_date_selector(contributions, date)
|
||||
contribution_text = 'No contributions'
|
||||
|
||||
if contributions === 1
|
||||
contribution_text = '1 contribution'
|
||||
elsif contributions > 1
|
||||
contribution_text = "#{contributions} contributions"
|
||||
end
|
||||
|
||||
"#{get_cell_color_selector(contributions)}[data-original-title='#{contribution_text}<br />#{date}']"
|
||||
end
|
||||
|
||||
def push_code_contribution
|
||||
push_params = {
|
||||
project: contributed_project,
|
||||
action: Event::PUSHED,
|
||||
|
@ -20,7 +48,10 @@ feature 'Contributions Calendar', js: true, feature: true do
|
|||
}
|
||||
|
||||
Event.create(push_params)
|
||||
end
|
||||
|
||||
before do
|
||||
login_as :user
|
||||
visit @user.username
|
||||
wait_for_ajax
|
||||
end
|
||||
|
@ -29,11 +60,71 @@ feature 'Contributions Calendar', js: true, feature: true do
|
|||
expect(page).to have_css('.js-contrib-calendar')
|
||||
end
|
||||
|
||||
it 'displays calendar activity log', js: true do
|
||||
expect(find('.content_list .event-note')).to have_content "Bug in old browser"
|
||||
describe '1 calendar activity' do
|
||||
before do
|
||||
Issues::CreateService.new(contributed_project, @user, issue_params).execute
|
||||
visit @user.username
|
||||
wait_for_ajax
|
||||
end
|
||||
|
||||
it 'displays calendar activity log', js: true do
|
||||
expect(find('.content_list .event-note')).to have_content issue_title
|
||||
end
|
||||
|
||||
it 'displays calendar activity square color for 1 contribution', js: true do
|
||||
expect(page).to have_selector(get_cell_color_selector(1), count: 1)
|
||||
end
|
||||
|
||||
it 'displays calendar activity square on the correct date', js: true do
|
||||
today = Date.today.strftime(date_format)
|
||||
expect(page).to have_selector(get_cell_date_selector(1, today), count: 1)
|
||||
end
|
||||
end
|
||||
|
||||
it 'displays calendar activity square color', js: true do
|
||||
expect(page).to have_selector('.user-contrib-cell[fill=\'#acd5f2\']', count: 1)
|
||||
describe '10 calendar activities' do
|
||||
before do
|
||||
(0..9).each do |i|
|
||||
push_code_contribution()
|
||||
end
|
||||
|
||||
visit @user.username
|
||||
wait_for_ajax
|
||||
end
|
||||
|
||||
it 'displays calendar activity square color for 10 contributions', js: true do
|
||||
expect(page).to have_selector(get_cell_color_selector(10), count: 1)
|
||||
end
|
||||
|
||||
it 'displays calendar activity square on the correct date', js: true do
|
||||
today = Date.today.strftime(date_format)
|
||||
expect(page).to have_selector(get_cell_date_selector(10, today), count: 1)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'calendar activity on two days' do
|
||||
before do
|
||||
push_code_contribution()
|
||||
|
||||
Timecop.freeze(Date.yesterday)
|
||||
Issues::CreateService.new(contributed_project, @user, issue_params).execute
|
||||
Timecop.return
|
||||
|
||||
visit @user.username
|
||||
wait_for_ajax
|
||||
end
|
||||
|
||||
it 'displays calendar activity squares for both days', js: true do
|
||||
expect(page).to have_selector(get_cell_color_selector(1), count: 2)
|
||||
end
|
||||
|
||||
it 'displays calendar activity square for yesterday', js: true do
|
||||
yesterday = Date.yesterday.strftime(date_format)
|
||||
expect(page).to have_selector(get_cell_date_selector(1, yesterday), count: 1)
|
||||
end
|
||||
|
||||
it 'displays calendar activity square for today', js: true do
|
||||
today = Date.today.strftime(date_format)
|
||||
expect(page).to have_selector(get_cell_date_selector(1, today), count: 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue