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
51da74b7
Commit
51da74b7
authored
Sep 15, 2017
by
Rémy Coutable
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[EE] Fix the default branches sorting to actually be 'Last updated'
Signed-off-by:
Rémy Coutable
<
remy@rymai.me
>
parent
30818f47
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
211 additions
and
218 deletions
+211
-218
app/controllers/projects/branches_controller.rb
app/controllers/projects/branches_controller.rb
+1
-1
changelogs/unreleased/26890-fix-default-branches-sorting.yml
changelogs/unreleased/26890-fix-default-branches-sorting.yml
+5
-0
spec/ee/support/protected_branch_helpers.rb
spec/ee/support/protected_branch_helpers.rb
+14
-0
spec/features/projects/branches/download_buttons_spec.rb
spec/features/projects/branches/download_buttons_spec.rb
+1
-1
spec/features/projects/branches_spec.rb
spec/features/projects/branches_spec.rb
+14
-82
spec/features/protected_branches_spec.rb
spec/features/protected_branches_spec.rb
+176
-116
spec/support/protected_branch_helpers.rb
spec/support/protected_branch_helpers.rb
+0
-18
No files found.
app/controllers/projects/branches_controller.rb
View file @
51da74b7
...
...
@@ -9,7 +9,7 @@ class Projects::BranchesController < Projects::ApplicationController
def
index
@sort
=
params
[
:sort
].
presence
||
sort_value_recently_updated
@branches
=
BranchesFinder
.
new
(
@repository
,
params
).
execute
@branches
=
BranchesFinder
.
new
(
@repository
,
params
.
merge
(
sort:
@sort
)
).
execute
@branches
=
Kaminari
.
paginate_array
(
@branches
).
page
(
params
[
:page
])
respond_to
do
|
format
|
...
...
changelogs/unreleased/26890-fix-default-branches-sorting.yml
0 → 100644
View file @
51da74b7
---
title
:
Fix the default branches sorting to actually be 'Last updated'
merge_request
:
14295
author
:
type
:
fixed
spec/ee/support/protected_branch_helpers.rb
0 → 100644
View file @
51da74b7
module
EE
module
ProtectedBranchHelpers
def
set_allowed_to
(
operation
,
option
=
'Masters'
,
form:
'.js-new-protected-branch'
)
within
form
do
find
(
".js-allowed-to-
#{
operation
}
"
).
trigger
(
'click'
)
wait_for_requests
Array
(
option
).
each
{
|
opt
|
click_on
(
opt
)
}
find
(
".js-allowed-to-
#{
operation
}
"
).
trigger
(
'click'
)
# needed to submit form in some cases
end
end
end
end
spec/features/projects/branches/download_buttons_spec.rb
View file @
51da74b7
...
...
@@ -29,7 +29,7 @@ feature 'Download buttons in branches page' do
describe
'when checking branches'
do
context
'with artifacts'
do
before
do
visit
project_branches_path
(
project
)
visit
project_branches_path
(
project
,
search:
'binary-encoding'
)
end
scenario
'shows download artifacts button'
do
...
...
spec/features/projects/branches_spec.rb
View file @
51da74b7
require
'spec_helper'
describe
'Branches'
do
include
ProtectedBranchHelpers
include
EE
::
ProtectedBranchHelpers
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
,
:public
,
:repository
)
}
...
...
@@ -14,12 +14,10 @@ describe 'Branches' do
end
describe
'Initial branches page'
do
it
'shows all the branches'
do
it
'shows all the branches
sorted by last updated by default
'
do
visit
project_branches_path
(
project
)
repository
.
branches_sorted_by
(
:name
).
first
(
20
).
each
do
|
branch
|
expect
(
page
).
to
have_content
(
"
#{
branch
.
name
}
"
)
end
expect
(
page
).
to
have_content
(
sorted_branches
(
repository
,
count:
20
,
sort_by: :updated_desc
))
end
it
'sorts the branches by name'
do
...
...
@@ -28,22 +26,7 @@ describe 'Branches' do
click_button
"Last updated"
# Open sorting dropdown
click_link
"Name"
sorted
=
repository
.
branches_sorted_by
(
:name
).
first
(
20
).
map
do
|
branch
|
Regexp
.
escape
(
branch
.
name
)
end
expect
(
page
).
to
have_content
(
/
#{
sorted
.
join
(
".*"
)
}
/
)
end
it
'sorts the branches by last updated'
do
visit
project_branches_path
(
project
)
click_button
"Last updated"
# Open sorting dropdown
click_link
"Last updated"
sorted
=
repository
.
branches_sorted_by
(
:updated_desc
).
first
(
20
).
map
do
|
branch
|
Regexp
.
escape
(
branch
.
name
)
end
expect
(
page
).
to
have_content
(
/
#{
sorted
.
join
(
".*"
)
}
/
)
expect
(
page
).
to
have_content
(
sorted_branches
(
repository
,
count:
20
,
sort_by: :name
))
end
it
'sorts the branches by oldest updated'
do
...
...
@@ -52,10 +35,7 @@ describe 'Branches' do
click_button
"Last updated"
# Open sorting dropdown
click_link
"Oldest updated"
sorted
=
repository
.
branches_sorted_by
(
:updated_asc
).
first
(
20
).
map
do
|
branch
|
Regexp
.
escape
(
branch
.
name
)
end
expect
(
page
).
to
have_content
(
/
#{
sorted
.
join
(
".*"
)
}
/
)
expect
(
page
).
to
have_content
(
sorted_branches
(
repository
,
count:
20
,
sort_by: :updated_asc
))
end
it
'avoids a N+1 query in branches index'
do
...
...
@@ -95,30 +75,6 @@ describe 'Branches' do
expect
(
find
(
'.all-branches'
)).
to
have_selector
(
'li'
,
count:
0
)
end
end
describe
'Delete protected branch'
do
before
do
project
.
add_user
(
user
,
:master
)
visit
project_protected_branches_path
(
project
)
set_protected_branch_name
(
'fix'
)
set_allowed_to
(
'merge'
)
set_allowed_to
(
'push'
)
click_on
"Protect"
within
(
".protected-branches-list"
)
{
expect
(
page
).
to
have_content
(
'fix'
)
}
expect
(
ProtectedBranch
.
count
).
to
eq
(
1
)
project
.
add_user
(
user
,
:developer
)
end
it
'does not allow devleoper to remove protected branch'
,
js:
true
do
visit
project_branches_path
(
project
)
fill_in
'branch-search'
,
with:
'fix'
find
(
'#branch-search'
).
native
.
send_keys
(
:enter
)
expect
(
page
).
to
have_css
(
'.btn-remove.disabled'
)
end
end
end
context
'logged in as master'
do
...
...
@@ -134,39 +90,6 @@ describe 'Branches' do
expect
(
page
).
to
have_content
(
"Protected branches can be managed in project settings"
)
end
end
describe
'Delete protected branch'
do
before
do
visit
project_protected_branches_path
(
project
)
set_protected_branch_name
(
'fix'
)
set_allowed_to
(
'merge'
)
set_allowed_to
(
'push'
)
click_on
"Protect"
within
(
".protected-branches-list"
)
{
expect
(
page
).
to
have_content
(
'fix'
)
}
expect
(
ProtectedBranch
.
count
).
to
eq
(
1
)
end
it
'removes branch after modal confirmation'
,
js:
true
do
visit
project_branches_path
(
project
)
fill_in
'branch-search'
,
with:
'fix'
find
(
'#branch-search'
).
native
.
send_keys
(
:enter
)
expect
(
page
).
to
have_content
(
'fix'
)
expect
(
find
(
'.all-branches'
)).
to
have_selector
(
'li'
,
count:
1
)
page
.
find
(
'[data-target="#modal-delete-branch"]'
).
trigger
(
:click
)
expect
(
page
).
to
have_css
(
'.js-delete-branch[disabled]'
)
fill_in
'delete_branch_input'
,
with:
'fix'
click_link
'Delete protected branch'
fill_in
'branch-search'
,
with:
'fix'
find
(
'#branch-search'
).
native
.
send_keys
(
:enter
)
expect
(
page
).
to
have_content
(
'No branches to show'
)
end
end
end
context
'logged out'
do
...
...
@@ -180,4 +103,13 @@ describe 'Branches' do
end
end
end
def
sorted_branches
(
repository
,
count
:,
sort_by
:)
sorted_branches
=
repository
.
branches_sorted_by
(
sort_by
).
first
(
count
).
map
do
|
branch
|
Regexp
.
escape
(
branch
.
name
)
end
Regexp
.
new
(
sorted_branches
.
join
(
'.*'
))
end
end
spec/features/protected_branches_spec.rb
View file @
51da74b7
require
'spec_helper'
feature
'Protected Branches'
,
:js
do
include
ProtectedBranchHelpers
include
EE
::
ProtectedBranchHelpers
let
(
:user
)
{
create
(
:user
,
:admin
)
}
let
(
:user
)
{
create
(
:user
)
}
let
(
:admin
)
{
create
(
:admin
)
}
let
(
:project
)
{
create
(
:project
,
:repository
)
}
context
'logged in as developer'
do
before
do
project
.
add_developer
(
user
)
sign_in
(
user
)
end
def
set_protected_branch_name
(
branch_name
)
find
(
".js-protected-branch-select"
).
trigger
(
'click'
)
find
(
".dropdown-input-field"
).
set
(
branch_name
)
click_on
(
"Create wildcard
#{
branch_name
}
"
)
describe
'Delete protected branch'
do
before
do
create
(
:protected_branch
,
project:
project
,
name:
'fix'
)
expect
(
ProtectedBranch
.
count
).
to
eq
(
1
)
end
it
'does not allow developer to removes protected branch'
do
visit
project_branches_path
(
project
)
fill_in
'branch-search'
,
with:
'fix'
find
(
'#branch-search'
).
native
.
send_keys
(
:enter
)
expect
(
page
).
to
have_css
(
'.btn-remove.disabled'
)
end
end
end
context
'logged in as master'
do
before
do
project
.
add_master
(
user
)
sign_in
(
user
)
end
describe
'Delete protected branch'
do
before
do
create
(
:protected_branch
,
project:
project
,
name:
'fix'
)
expect
(
ProtectedBranch
.
count
).
to
eq
(
1
)
end
it
'removes branch after modal confirmation'
do
visit
project_branches_path
(
project
)
fill_in
'branch-search'
,
with:
'fix'
find
(
'#branch-search'
).
native
.
send_keys
(
:enter
)
expect
(
page
).
to
have_content
(
'fix'
)
expect
(
find
(
'.all-branches'
)).
to
have_selector
(
'li'
,
count:
1
)
page
.
find
(
'[data-target="#modal-delete-branch"]'
).
trigger
(
:click
)
expect
(
page
).
to
have_css
(
'.js-delete-branch[disabled]'
)
fill_in
'delete_branch_input'
,
with:
'fix'
click_link
'Delete protected branch'
fill_in
'branch-search'
,
with:
'fix'
find
(
'#branch-search'
).
native
.
send_keys
(
:enter
)
expect
(
page
).
to
have_content
(
'No branches to show'
)
end
end
end
context
'logged in as admin'
do
before
do
sign_in
(
admin
)
end
describe
"explicit protected branches"
do
...
...
@@ -165,4 +218,11 @@ feature 'Protected Branches', :js do
end
end
end
end
def
set_protected_branch_name
(
branch_name
)
find
(
".js-protected-branch-select"
).
trigger
(
'click'
)
find
(
".dropdown-input-field"
).
set
(
branch_name
)
click_on
(
"Create wildcard
#{
branch_name
}
"
)
end
end
spec/support/protected_branch_helpers.rb
deleted
100644 → 0
View file @
30818f47
module
ProtectedBranchHelpers
def
set_allowed_to
(
operation
,
option
=
'Masters'
,
form:
'.js-new-protected-branch'
)
within
form
do
find
(
".js-allowed-to-
#{
operation
}
"
).
trigger
(
'click'
)
wait_for_requests
Array
(
option
).
each
{
|
opt
|
click_on
(
opt
)
}
find
(
".js-allowed-to-
#{
operation
}
"
).
trigger
(
'click'
)
# needed to submit form in some cases
end
end
def
set_protected_branch_name
(
branch_name
)
find
(
".js-protected-branch-select"
).
trigger
(
'click'
)
find
(
".dropdown-input-field"
).
set
(
branch_name
)
click_on
(
"Create wildcard
#{
branch_name
}
"
)
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