Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
9806d879
Commit
9806d879
authored
Sep 19, 2016
by
Clement Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add more tests for calendar contribution
parent
c8d92f95
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
101 additions
and
9 deletions
+101
-9
CHANGELOG
CHANGELOG
+1
-0
spec/features/calendar_spec.rb
spec/features/calendar_spec.rb
+100
-9
No files found.
CHANGELOG
View file @
9806d879
...
...
@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
v 8.13.0 (unreleased)
- 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)
v 8.12.2 (unreleased)
...
...
spec/features/calendar_spec.rb
View file @
9806d879
...
...
@@ -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
}
def
get_cell_color_selector
(
contributions
)
contribution_cell
=
'.user-contrib-cell'
activity_colors
=
Array
[
'#ededed'
,
'#acd5f2'
,
'#7fa8c9'
,
'#527ba0'
,
'#254e77'
]
activity_colors_index
=
0
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'
issue_params
=
{
title:
'Bug in old browser'
}
Issues
::
CreateService
.
new
(
contributed_project
,
@user
,
issue_params
).
execute
if
contributions
===
1
contribution_text
=
'1 contribution'
elsif
contributions
>
1
contribution_text
=
"
#{
contributions
}
contributions"
end
# Push code contribution
"
#{
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
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
it
'displays calendar activity square color'
,
js:
true
do
expect
(
page
).
to
have_selector
(
'.user-contrib-cell[fill=\'#acd5f2\']'
,
count:
1
)
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment