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
ce9d3ee5
Commit
ce9d3ee5
authored
Jan 11, 2017
by
Clement Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Backend review
parent
044a195b
Changes
8
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
195 additions
and
19 deletions
+195
-19
app/assets/javascripts/droplab/droplab_ajax_filter.js
app/assets/javascripts/droplab/droplab_ajax_filter.js
+3
-6
spec/features/issues/filtered_search/dropdown_assignee_spec.rb
...features/issues/filtered_search/dropdown_assignee_spec.rb
+18
-0
spec/features/issues/filtered_search/dropdown_author_spec.rb
spec/features/issues/filtered_search/dropdown_author_spec.rb
+16
-0
spec/features/issues/filtered_search/dropdown_hint_spec.rb
spec/features/issues/filtered_search/dropdown_hint_spec.rb
+11
-0
spec/features/issues/filtered_search/dropdown_label_spec.rb
spec/features/issues/filtered_search/dropdown_label_spec.rb
+25
-0
spec/features/issues/filtered_search/dropdown_milestone_spec.rb
...eatures/issues/filtered_search/dropdown_milestone_spec.rb
+25
-0
spec/features/issues/filtered_search/filter_issues_spec.rb
spec/features/issues/filtered_search/filter_issues_spec.rb
+90
-13
spec/features/issues/filtered_search/search_bar_spec.rb
spec/features/issues/filtered_search/search_bar_spec.rb
+7
-0
No files found.
app/assets/javascripts/droplab/droplab_ajax_filter.js
View file @
ce9d3ee5
...
...
@@ -22,7 +22,8 @@ require('../window')(function(w){
debounceTrigger
:
function
debounceTrigger
(
e
)
{
var
NON_CHARACTER_KEYS
=
[
16
,
17
,
18
,
20
,
37
,
38
,
39
,
40
,
91
,
93
];
var
invalidKeyPressed
=
NON_CHARACTER_KEYS
.
indexOf
(
e
.
detail
.
which
||
e
.
detail
.
keyCode
)
>
-
1
;
var
focusEvent
=
false
;
var
focusEvent
=
e
.
type
===
'
focus
'
;
if
(
invalidKeyPressed
||
this
.
loading
)
{
return
;
}
...
...
@@ -31,10 +32,6 @@ require('../window')(function(w){
clearTimeout
(
this
.
timeout
);
}
if
(
e
.
type
===
'
focus
'
)
{
focusEvent
=
true
;
}
this
.
timeout
=
setTimeout
(
this
.
trigger
.
bind
(
this
,
focusEvent
),
200
);
},
...
...
@@ -66,7 +63,7 @@ require('../window')(function(w){
searchValue
=
''
;
}
if
(
searchValue
===
config
.
searchKey
)
{
if
(
config
.
searchKey
===
searchValue
)
{
return
this
.
list
.
show
();
}
...
...
spec/features/issues/filtered_search/dropdown_assignee_spec.rb
View file @
ce9d3ee5
...
...
@@ -39,26 +39,31 @@ describe 'Dropdown assignee', js: true, feature: true do
describe
'behavior'
do
it
'opens when the search bar has assignee:'
do
filtered_search
.
set
(
'assignee:'
)
expect
(
page
).
to
have_css
(
js_dropdown_assignee
,
visible:
true
)
end
it
'closes when the search bar is unfocused'
do
find
(
'body'
).
click
()
expect
(
page
).
to
have_css
(
js_dropdown_assignee
,
visible:
false
)
end
it
'should show loading indicator when opened'
do
filtered_search
.
set
(
'assignee:'
)
expect
(
page
).
to
have_css
(
'#js-dropdown-assignee .filter-dropdown-loading'
,
visible:
true
)
end
it
'should hide loading indicator when loaded'
do
send_keys_to_filtered_search
(
'assignee:'
)
expect
(
page
).
not_to
have_css
(
'#js-dropdown-assignee .filter-dropdown-loading'
)
end
it
'should load all the assignees when opened'
do
send_keys_to_filtered_search
(
'assignee:'
)
expect
(
dropdown_assignee_size
).
to
eq
(
3
)
end
end
...
...
@@ -70,31 +75,37 @@ describe 'Dropdown assignee', js: true, feature: true do
it
'filters by name'
do
send_keys_to_filtered_search
(
'j'
)
expect
(
dropdown_assignee_size
).
to
eq
(
2
)
end
it
'filters by case insensitive name'
do
send_keys_to_filtered_search
(
'J'
)
expect
(
dropdown_assignee_size
).
to
eq
(
2
)
end
it
'filters by username with symbol'
do
send_keys_to_filtered_search
(
'@ot'
)
expect
(
dropdown_assignee_size
).
to
eq
(
2
)
end
it
'filters by case insensitive username with symbol'
do
send_keys_to_filtered_search
(
'@OT'
)
expect
(
dropdown_assignee_size
).
to
eq
(
2
)
end
it
'filters by username without symbol'
do
send_keys_to_filtered_search
(
'ot'
)
expect
(
dropdown_assignee_size
).
to
eq
(
2
)
end
it
'filters by case insensitive username without symbol'
do
send_keys_to_filtered_search
(
'OT'
)
expect
(
dropdown_assignee_size
).
to
eq
(
2
)
end
end
...
...
@@ -106,6 +117,7 @@ describe 'Dropdown assignee', js: true, feature: true do
it
'fills in the assignee username when the assignee has not been filtered'
do
click_assignee
(
user_jacob
.
name
)
expect
(
page
).
to
have_css
(
js_dropdown_assignee
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"assignee:@
#{
user_jacob
.
username
}
"
)
end
...
...
@@ -113,12 +125,14 @@ describe 'Dropdown assignee', js: true, feature: true do
it
'fills in the assignee username when the assignee has been filtered'
do
send_keys_to_filtered_search
(
'roo'
)
click_assignee
(
user
.
name
)
expect
(
page
).
to
have_css
(
js_dropdown_assignee
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"assignee:@
#{
user
.
username
}
"
)
end
it
'selects `no assignee`'
do
find
(
'#js-dropdown-assignee .filter-dropdown-item'
,
text:
'No Assignee'
).
click
expect
(
page
).
to
have_css
(
js_dropdown_assignee
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"assignee:none"
)
end
...
...
@@ -127,21 +141,25 @@ describe 'Dropdown assignee', js: true, feature: true do
describe
'input has existing content'
do
it
'opens assignee dropdown with existing search term'
do
filtered_search
.
set
(
'searchTerm assignee:'
)
expect
(
page
).
to
have_css
(
js_dropdown_assignee
,
visible:
true
)
end
it
'opens assignee dropdown with existing author'
do
filtered_search
.
set
(
'author:@user assignee:'
)
expect
(
page
).
to
have_css
(
js_dropdown_assignee
,
visible:
true
)
end
it
'opens assignee dropdown with existing label'
do
filtered_search
.
set
(
'label:~bug assignee:'
)
expect
(
page
).
to
have_css
(
js_dropdown_assignee
,
visible:
true
)
end
it
'opens assignee dropdown with existing milestone'
do
filtered_search
.
set
(
'milestone:%v1.0 assignee:'
)
expect
(
page
).
to
have_css
(
js_dropdown_assignee
,
visible:
true
)
end
end
...
...
spec/features/issues/filtered_search/dropdown_author_spec.rb
View file @
ce9d3ee5
...
...
@@ -39,26 +39,31 @@ describe 'Dropdown author', js: true, feature: true do
describe
'behavior'
do
it
'opens when the search bar has author:'
do
filtered_search
.
set
(
'author:'
)
expect
(
page
).
to
have_css
(
js_dropdown_author
,
visible:
true
)
end
it
'closes when the search bar is unfocused'
do
find
(
'body'
).
click
()
expect
(
page
).
to
have_css
(
js_dropdown_author
,
visible:
false
)
end
it
'should show loading indicator when opened'
do
filtered_search
.
set
(
'author:'
)
expect
(
page
).
to
have_css
(
'#js-dropdown-author .filter-dropdown-loading'
,
visible:
true
)
end
it
'should hide loading indicator when loaded'
do
send_keys_to_filtered_search
(
'author:'
)
expect
(
page
).
not_to
have_css
(
'#js-dropdown-author .filter-dropdown-loading'
)
end
it
'should load all the authors when opened'
do
send_keys_to_filtered_search
(
'author:'
)
expect
(
dropdown_author_size
).
to
eq
(
3
)
end
end
...
...
@@ -71,26 +76,31 @@ describe 'Dropdown author', js: true, feature: true do
it
'filters by name'
do
send_keys_to_filtered_search
(
'ja'
)
expect
(
dropdown_author_size
).
to
eq
(
1
)
end
it
'filters by case insensitive name'
do
send_keys_to_filtered_search
(
'Ja'
)
expect
(
dropdown_author_size
).
to
eq
(
1
)
end
it
'filters by username with symbol'
do
send_keys_to_filtered_search
(
'@ot'
)
expect
(
dropdown_author_size
).
to
eq
(
2
)
end
it
'filters by username without symbol'
do
send_keys_to_filtered_search
(
'ot'
)
expect
(
dropdown_author_size
).
to
eq
(
2
)
end
it
'filters by case insensitive username without symbol'
do
send_keys_to_filtered_search
(
'OT'
)
expect
(
dropdown_author_size
).
to
eq
(
2
)
end
end
...
...
@@ -103,12 +113,14 @@ describe 'Dropdown author', js: true, feature: true do
it
'fills in the author username when the author has not been filtered'
do
click_author
(
user_jacob
.
name
)
expect
(
page
).
to
have_css
(
js_dropdown_author
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"author:@
#{
user_jacob
.
username
}
"
)
end
it
'fills in the author username when the author has been filtered'
do
click_author
(
user
.
name
)
expect
(
page
).
to
have_css
(
js_dropdown_author
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"author:@
#{
user
.
username
}
"
)
end
...
...
@@ -117,21 +129,25 @@ describe 'Dropdown author', js: true, feature: true do
describe
'input has existing content'
do
it
'opens author dropdown with existing search term'
do
filtered_search
.
set
(
'searchTerm author:'
)
expect
(
page
).
to
have_css
(
js_dropdown_author
,
visible:
true
)
end
it
'opens author dropdown with existing assignee'
do
filtered_search
.
set
(
'assignee:@user author:'
)
expect
(
page
).
to
have_css
(
js_dropdown_author
,
visible:
true
)
end
it
'opens author dropdown with existing label'
do
filtered_search
.
set
(
'label:~bug author:'
)
expect
(
page
).
to
have_css
(
js_dropdown_author
,
visible:
true
)
end
it
'opens author dropdown with existing milestone'
do
filtered_search
.
set
(
'milestone:%v1.0 author:'
)
expect
(
page
).
to
have_css
(
js_dropdown_author
,
visible:
true
)
end
end
...
...
spec/features/issues/filtered_search/dropdown_hint_spec.rb
View file @
ce9d3ee5
...
...
@@ -36,6 +36,7 @@ describe 'Dropdown hint', js: true, feature: true do
it
'closes when the search bar is unfocused'
do
find
(
'body'
).
click
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
visible:
false
)
end
end
...
...
@@ -43,12 +44,14 @@ describe 'Dropdown hint', js: true, feature: true do
describe
'filtering'
do
it
'does not filter `Keep typing and press Enter`'
do
filtered_search
.
set
(
'randomtext'
)
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
text:
'Keep typing and press Enter'
,
visible:
false
)
expect
(
dropdown_hint_size
).
to
eq
(
0
)
end
it
'filters with text'
do
filtered_search
.
set
(
'a'
)
expect
(
dropdown_hint_size
).
to
eq
(
3
)
end
end
...
...
@@ -60,6 +63,7 @@ describe 'Dropdown hint', js: true, feature: true do
it
'opens the author dropdown when you click on author'
do
click_hint
(
'author'
)
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
visible:
false
)
expect
(
page
).
to
have_css
(
'#js-dropdown-author'
,
visible:
true
)
expect
(
filtered_search
.
value
).
to
eq
(
'author:'
)
...
...
@@ -67,6 +71,7 @@ describe 'Dropdown hint', js: true, feature: true do
it
'opens the assignee dropdown when you click on assignee'
do
click_hint
(
'assignee'
)
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
visible:
false
)
expect
(
page
).
to
have_css
(
'#js-dropdown-assignee'
,
visible:
true
)
expect
(
filtered_search
.
value
).
to
eq
(
'assignee:'
)
...
...
@@ -74,6 +79,7 @@ describe 'Dropdown hint', js: true, feature: true do
it
'opens the milestone dropdown when you click on milestone'
do
click_hint
(
'milestone'
)
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
visible:
false
)
expect
(
page
).
to
have_css
(
'#js-dropdown-milestone'
,
visible:
true
)
expect
(
filtered_search
.
value
).
to
eq
(
'milestone:'
)
...
...
@@ -81,6 +87,7 @@ describe 'Dropdown hint', js: true, feature: true do
it
'opens the label dropdown when you click on label'
do
click_hint
(
'label'
)
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
visible:
false
)
expect
(
page
).
to
have_css
(
'#js-dropdown-label'
,
visible:
true
)
expect
(
filtered_search
.
value
).
to
eq
(
'label:'
)
...
...
@@ -91,6 +98,7 @@ describe 'Dropdown hint', js: true, feature: true do
it
'opens the author dropdown when you click on author'
do
filtered_search
.
set
(
'auth'
)
click_hint
(
'author'
)
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
visible:
false
)
expect
(
page
).
to
have_css
(
'#js-dropdown-author'
,
visible:
true
)
expect
(
filtered_search
.
value
).
to
eq
(
'author:'
)
...
...
@@ -99,6 +107,7 @@ describe 'Dropdown hint', js: true, feature: true do
it
'opens the assignee dropdown when you click on assignee'
do
filtered_search
.
set
(
'assign'
)
click_hint
(
'assignee'
)
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
visible:
false
)
expect
(
page
).
to
have_css
(
'#js-dropdown-assignee'
,
visible:
true
)
expect
(
filtered_search
.
value
).
to
eq
(
'assignee:'
)
...
...
@@ -107,6 +116,7 @@ describe 'Dropdown hint', js: true, feature: true do
it
'opens the milestone dropdown when you click on milestone'
do
filtered_search
.
set
(
'mile'
)
click_hint
(
'milestone'
)
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
visible:
false
)
expect
(
page
).
to
have_css
(
'#js-dropdown-milestone'
,
visible:
true
)
expect
(
filtered_search
.
value
).
to
eq
(
'milestone:'
)
...
...
@@ -115,6 +125,7 @@ describe 'Dropdown hint', js: true, feature: true do
it
'opens the label dropdown when you click on label'
do
filtered_search
.
set
(
'lab'
)
click_hint
(
'label'
)
expect
(
page
).
to
have_css
(
js_dropdown_hint
,
visible:
false
)
expect
(
page
).
to
have_css
(
'#js-dropdown-label'
,
visible:
true
)
expect
(
filtered_search
.
value
).
to
eq
(
'label:'
)
...
...
spec/features/issues/filtered_search/dropdown_label_spec.rb
View file @
ce9d3ee5
...
...
@@ -43,26 +43,31 @@ describe 'Dropdown label', js: true, feature: true do
describe
'behavior'
do
it
'opens when the search bar has label:'
do
filtered_search
.
set
(
'label:'
)
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
true
)
end
it
'closes when the search bar is unfocused'
do
find
(
'body'
).
click
()
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
false
)
end
it
'should show loading indicator when opened'
do
filtered_search
.
set
(
'label:'
)
expect
(
page
).
to
have_css
(
'#js-dropdown-label .filter-dropdown-loading'
,
visible:
true
)
end
it
'should hide loading indicator when loaded'
do
send_keys_to_filtered_search
(
'label:'
)
expect
(
page
).
not_to
have_css
(
'#js-dropdown-label .filter-dropdown-loading'
)
end
it
'should load all the labels when opened'
do
send_keys_to_filtered_search
(
'label:'
)
expect
(
dropdown_label_size
).
to
be
>
0
end
end
...
...
@@ -74,61 +79,73 @@ describe 'Dropdown label', js: true, feature: true do
it
'filters by name'
do
send_keys_to_filtered_search
(
':b'
)
expect
(
dropdown_label_size
).
to
eq
(
2
)
end
it
'filters by case insensitive name'
do
send_keys_to_filtered_search
(
':B'
)
expect
(
dropdown_label_size
).
to
eq
(
2
)
end
it
'filters by name with symbol'
do
send_keys_to_filtered_search
(
':~bu'
)
expect
(
dropdown_label_size
).
to
eq
(
2
)
end
it
'filters by case insensitive name with symbol'
do
send_keys_to_filtered_search
(
':~BU'
)
expect
(
dropdown_label_size
).
to
eq
(
2
)
end
it
'filters by multiple words'
do
send_keys_to_filtered_search
(
':Hig'
)
expect
(
dropdown_label_size
).
to
eq
(
1
)
end
it
'filters by multiple words with symbol'
do
send_keys_to_filtered_search
(
':~Hig'
)
expect
(
dropdown_label_size
).
to
eq
(
1
)
end
it
'filters by multiple words containing single quotes'
do
send_keys_to_filtered_search
(
':won\'t'
)
expect
(
dropdown_label_size
).
to
eq
(
1
)
end
it
'filters by multiple words containing single quotes with symbol'
do
send_keys_to_filtered_search
(
':~won\'t'
)
expect
(
dropdown_label_size
).
to
eq
(
1
)
end
it
'filters by multiple words containing double quotes'
do
send_keys_to_filtered_search
(
':won"t'
)
expect
(
dropdown_label_size
).
to
eq
(
1
)
end
it
'filters by multiple words containing double quotes with symbol'
do
send_keys_to_filtered_search
(
':~won"t'
)
expect
(
dropdown_label_size
).
to
eq
(
1
)
end
it
'filters by special characters'
do
send_keys_to_filtered_search
(
':^+'
)
expect
(
dropdown_label_size
).
to
eq
(
1
)
end
it
'filters by special characters with symbol'
do
send_keys_to_filtered_search
(
':~^+'
)
expect
(
dropdown_label_size
).
to
eq
(
1
)
end
end
...
...
@@ -140,6 +157,7 @@ describe 'Dropdown label', js: true, feature: true do
it
'fills in the label name when the label has not been filled'
do
click_label
(
bug_label
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"label:~
#{
bug_label
.
title
}
"
)
end
...
...
@@ -147,42 +165,49 @@ describe 'Dropdown label', js: true, feature: true do
it
'fills in the label name when the label is partially filled'
do
send_keys_to_filtered_search
(
'bu'
)
click_label
(
bug_label
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"label:~
#{
bug_label
.
title
}
"
)
end
it
'fills in the label name that contains multiple words'
do
click_label
(
two_words_label
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"label:~
\"
#{
two_words_label
.
title
}
\"
"
)
end
it
'fills in the label name that contains multiple words and is very long'
do
click_label
(
long_label
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"label:~
\"
#{
long_label
.
title
}
\"
"
)
end
it
'fills in the label name that contains double quotes'
do
click_label
(
wont_fix_label
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"label:~'
#{
wont_fix_label
.
title
}
'"
)
end
it
'fills in the label name with the correct capitalization'
do
click_label
(
uppercase_label
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"label:~
#{
uppercase_label
.
title
}
"
)
end
it
'fills in the label name with special characters'
do
click_label
(
special_label
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"label:~
#{
special_label
.
title
}
"
)
end
it
'selects `no label`'
do
find
(
'#js-dropdown-label .filter-dropdown-item'
,
text:
'No Label'
).
click
expect
(
page
).
to
have_css
(
js_dropdown_label
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"label:none"
)
end
...
...
spec/features/issues/filtered_search/dropdown_milestone_spec.rb
View file @
ce9d3ee5
...
...
@@ -47,26 +47,31 @@ describe 'Dropdown milestone', js: true, feature: true do
describe
'behavior'
do
it
'opens when the search bar has milestone:'
do
filtered_search
.
set
(
'milestone:'
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
true
)
end
it
'closes when the search bar is unfocused'
do
find
(
'body'
).
click
()
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
end
it
'should show loading indicator when opened'
do
filtered_search
.
set
(
'milestone:'
)
expect
(
page
).
to
have_css
(
'#js-dropdown-milestone .filter-dropdown-loading'
,
visible:
true
)
end
it
'should hide loading indicator when loaded'
do
send_keys_to_filtered_search
(
'milestone:'
)
expect
(
page
).
not_to
have_css
(
'#js-dropdown-milestone .filter-dropdown-loading'
)
end
it
'should load all the milestones when opened'
do
send_keys_to_filtered_search
(
'milestone:'
)
expect
(
dropdown_milestone_size
).
to
be
>
0
end
end
...
...
@@ -78,31 +83,37 @@ describe 'Dropdown milestone', js: true, feature: true do
it
'filters by name'
do
send_keys_to_filtered_search
(
':v1'
)
expect
(
dropdown_milestone_size
).
to
eq
(
1
)
end
it
'filters by case insensitive name'
do
send_keys_to_filtered_search
(
':V1'
)
expect
(
dropdown_milestone_size
).
to
eq
(
1
)
end
it
'filters by name with symbol'
do
send_keys_to_filtered_search
(
':%v1'
)
expect
(
dropdown_milestone_size
).
to
eq
(
1
)
end
it
'filters by case insensitive name with symbol'
do
send_keys_to_filtered_search
(
':%V1'
)
expect
(
dropdown_milestone_size
).
to
eq
(
1
)
end
it
'filters by special characters'
do
send_keys_to_filtered_search
(
':(+'
)
expect
(
dropdown_milestone_size
).
to
eq
(
1
)
end
it
'filters by special characters with symbol'
do
send_keys_to_filtered_search
(
':%(+'
)
expect
(
dropdown_milestone_size
).
to
eq
(
1
)
end
end
...
...
@@ -114,6 +125,7 @@ describe 'Dropdown milestone', js: true, feature: true do
it
'fills in the milestone name when the milestone has not been filled'
do
click_milestone
(
milestone
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"milestone:%
#{
milestone
.
title
}
"
)
end
...
...
@@ -121,48 +133,56 @@ describe 'Dropdown milestone', js: true, feature: true do
it
'fills in the milestone name when the milestone is partially filled'
do
send_keys_to_filtered_search
(
'v'
)
click_milestone
(
milestone
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"milestone:%
#{
milestone
.
title
}
"
)
end
it
'fills in the milestone name that contains multiple words'
do
click_milestone
(
two_words_milestone
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"milestone:%
\"
#{
two_words_milestone
.
title
}
\"
"
)
end
it
'fills in the milestone name that contains multiple words and is very long'
do
click_milestone
(
long_milestone
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"milestone:%
\"
#{
long_milestone
.
title
}
\"
"
)
end
it
'fills in the milestone name that contains double quotes'
do
click_milestone
(
wont_fix_milestone
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"milestone:%'
#{
wont_fix_milestone
.
title
}
'"
)
end
it
'fills in the milestone name with the correct capitalization'
do
click_milestone
(
uppercase_milestone
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"milestone:%
#{
uppercase_milestone
.
title
}
"
)
end
it
'fills in the milestone name with special characters'
do
click_milestone
(
special_milestone
.
title
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"milestone:%
#{
special_milestone
.
title
}
"
)
end
it
'selects `no milestone`'
do
click_static_milestone
(
'No Milestone'
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"milestone:none"
)
end
it
'selects `upcoming milestone`'
do
click_static_milestone
(
'Upcoming'
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
false
)
expect
(
filtered_search
.
value
).
to
eq
(
"milestone:upcoming"
)
end
...
...
@@ -171,26 +191,31 @@ describe 'Dropdown milestone', js: true, feature: true do
describe
'input has existing content'
do
it
'opens milestone dropdown with existing search term'
do
filtered_search
.
set
(
'searchTerm milestone:'
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
true
)
end
it
'opens milestone dropdown with existing author'
do
filtered_search
.
set
(
'author:@john milestone:'
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
true
)
end
it
'opens milestone dropdown with existing assignee'
do
filtered_search
.
set
(
'assignee:@john milestone:'
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
true
)
end
it
'opens milestone dropdown with existing label'
do
filtered_search
.
set
(
'label:~important milestone:'
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
true
)
end
it
'opens milestone dropdown with existing milestone'
do
filtered_search
.
set
(
'milestone:%100 milestone:'
)
expect
(
page
).
to
have_css
(
js_dropdown_milestone
,
visible:
true
)
end
end
...
...
spec/features/issues/filtered_search/filter_issues_spec.rb
View file @
ce9d3ee5
This diff is collapsed.
Click to expand it.
spec/features/issues/filtered_search/search_bar_spec.rb
View file @
ce9d3ee5
...
...
@@ -27,6 +27,7 @@ describe 'Search bar', js: true, feature: true do
expect
(
filtered_search
.
value
).
to
eq
(
search_text
)
find
(
'.filtered-search-input-container .clear-search'
).
click
expect
(
filtered_search
.
value
).
to
eq
(
''
)
end
...
...
@@ -37,12 +38,14 @@ describe 'Search bar', js: true, feature: true do
it
'hides after clicked'
do
filtered_search
.
set
(
'a'
)
find
(
'.filtered-search-input-container .clear-search'
).
click
expect
(
page
).
to
have_css
(
'.clear-search'
,
visible:
false
)
end
it
'hides when there is no text'
do
filtered_search
.
set
(
'a'
)
filtered_search
.
set
(
''
)
expect
(
page
).
to
have_css
(
'.clear-search'
,
visible:
false
)
end
...
...
@@ -57,10 +60,12 @@ describe 'Search bar', js: true, feature: true do
original_size
=
page
.
all
(
'#js-dropdown-hint .filter-dropdown .filter-dropdown-item'
).
size
filtered_search
.
set
(
'author'
)
expect
(
page
.
all
(
'#js-dropdown-hint .filter-dropdown .filter-dropdown-item'
).
size
).
to
eq
(
1
)
find
(
'.filtered-search-input-container .clear-search'
).
click
filtered_search
.
click
expect
(
page
.
all
(
'#js-dropdown-hint .filter-dropdown .filter-dropdown-item'
).
size
).
to
eq
(
original_size
)
end
...
...
@@ -70,10 +75,12 @@ describe 'Search bar', js: true, feature: true do
hint_offset
=
get_left_style
(
hint_style
)
filtered_search
.
set
(
'author:'
)
expect
(
page
.
all
(
'#js-dropdown-hint .filter-dropdown .filter-dropdown-item'
).
size
).
to
eq
(
0
)
find
(
'.filtered-search-input-container .clear-search'
).
click
filtered_search
.
click
expect
(
page
.
all
(
'#js-dropdown-hint .filter-dropdown .filter-dropdown-item'
).
size
).
to
be
>
0
expect
(
get_left_style
(
page
.
find
(
'#js-dropdown-hint'
)[
'style'
])).
to
eq
(
hint_offset
)
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