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
0
Merge Requests
0
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
Boxiang Sun
gitlab-ce
Commits
cf542f9e
Commit
cf542f9e
authored
Oct 26, 2017
by
Filipa Lacerda
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improves issuable tests
Fixes missing dependencies
parent
8df62a3a
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
70 deletions
+37
-70
app/assets/javascripts/issuable_bulk_update_sidebar.js
app/assets/javascripts/issuable_bulk_update_sidebar.js
+4
-0
app/assets/javascripts/issuable_index.js
app/assets/javascripts/issuable_index.js
+0
-1
spec/javascripts/issuable_spec.js
spec/javascripts/issuable_spec.js
+33
-69
No files found.
app/assets/javascripts/issuable_bulk_update_sidebar.js
View file @
cf542f9e
...
...
@@ -5,6 +5,10 @@
/* global SubscriptionSelect */
import
IssuableBulkUpdateActions
from
'
./issuable_bulk_update_actions
'
;
import
'
./milestone_select
'
;
import
'
./issue_status_select
'
;
import
'
./subscription_select
'
;
import
'
./labels_select
'
;
const
HIDDEN_CLASS
=
'
hidden
'
;
const
DISABLED_CONTENT_CLASS
=
'
disabled-content
'
;
...
...
app/assets/javascripts/issuable_index.js
View file @
cf542f9e
...
...
@@ -5,7 +5,6 @@ export default class IssuableIndex {
constructor
(
pagePrefix
)
{
this
.
initBulkUpdate
(
pagePrefix
);
IssuableIndex
.
resetIncomingEmailToken
();
this
.
initLabelFilterRemove
();
}
initBulkUpdate
(
pagePrefix
)
{
const
userCanBulkUpdate
=
$
(
'
.issues-bulk-update
'
).
length
>
0
;
...
...
spec/javascripts/issuable_spec.js
View file @
cf542f9e
/* global IssuableIndex */
import
IssuableIndex
from
'
~/issuable_index
'
;
import
'
~/lib/utils/url_utility
'
;
import
'
~/issuable_index
'
;
(()
=>
{
const
BASE_URL
=
'
/user/project/issues?scope=all&state=closed
'
;
const
DEFAULT_PARAMS
=
'
&utf8=%E2%9C%93
'
;
function
updateForm
(
formValues
,
form
)
{
$
.
each
(
formValues
,
(
id
,
value
)
=>
{
$
(
`#
${
id
}
`
,
form
).
val
(
value
);
describe
(
'
Issuable
'
,
()
=>
{
let
Issuable
;
describe
(
'
initBulkUpdate
'
,
()
=>
{
it
(
'
should not set bulkUpdateSidebar
'
,
()
=>
{
Issuable
=
new
IssuableIndex
(
'
issue_
'
);
expect
(
Issuable
.
bulkUpdateSidebar
).
not
.
toBeDefined
();
});
}
function
resetForm
(
form
)
{
$
(
'
input[name!="utf8"]
'
,
form
).
each
((
index
,
input
)
=>
{
input
.
setAttribute
(
'
value
'
,
''
);
});
}
it
(
'
should set bulkUpdateSidebar
'
,
()
=>
{
const
element
=
document
.
createElement
(
'
div
'
);
element
.
classList
.
add
(
'
issues-bulk-update
'
);
document
.
body
.
appendChild
(
element
);
describe
(
'
Issuable
'
,
()
=>
{
preloadFixtures
(
'
static/issuable_filter.html.raw
'
);
beforeEach
(()
=>
{
loadFixtures
(
'
static/issuable_filter.html.raw
'
);
IssuableIndex
.
init
();
Issuable
=
new
IssuableIndex
(
'
issue_
'
);
expect
(
Issuable
.
bulkUpdateSidebar
).
toBeDefined
();
});
it
(
'
should be defined
'
,
()
=>
{
expect
(
window
.
IssuableIndex
).
toBeDefined
();
});
describe
(
'
filtering
'
,
()
=>
{
let
$filtersForm
;
describe
(
'
resetIncomingEmailToken
'
,
()
=>
{
beforeEach
(()
=>
{
$filtersForm
=
$
(
'
.js-filter-form
'
);
loadFixtures
(
'
static/issuable_filter.html.raw
'
);
resetForm
(
$filtersForm
);
});
it
(
'
should contain only the default parameters
'
,
()
=>
{
spyOn
(
gl
.
utils
,
'
visitUrl
'
);
const
element
=
document
.
createElement
(
'
a
'
);
element
.
classList
.
add
(
'
incoming-email-token-reset
'
);
element
.
setAttribute
(
'
href
'
,
'
foo
'
);
document
.
body
.
appendChild
(
element
);
IssuableIndex
.
filterResults
(
$filtersForm
);
const
input
=
document
.
createElement
(
'
input
'
);
input
.
setAttribute
(
'
id
'
,
'
issue_email
'
);
document
.
body
.
appendChild
(
input
);
expect
(
gl
.
utils
.
visitUrl
).
toHaveBeenCalledWith
(
BASE_URL
+
DEFAULT_PARAMS
);
Issuable
=
new
IssuableIndex
(
'
issue_
'
);
});
it
(
'
should filter for the phrase "broken"
'
,
()
=>
{
spyOn
(
gl
.
utils
,
'
visitUrl
'
);
it
(
'
should send request to reset email token
'
,
()
=>
{
spyOn
(
jQuery
,
'
ajax
'
).
and
.
callThrough
();
document
.
querySelector
(
'
.incoming-email-token-reset
'
).
click
();
updateForm
({
search
:
'
broken
'
},
$filtersForm
);
IssuableIndex
.
filterResults
(
$filtersForm
);
const
params
=
`
${
DEFAULT_PARAMS
}
&search=broken`
;
expect
(
gl
.
utils
.
visitUrl
).
toHaveBeenCalledWith
(
BASE_URL
+
params
);
});
it
(
'
should keep query parameters after modifying filter
'
,
()
=>
{
spyOn
(
gl
.
utils
,
'
visitUrl
'
);
// initial filter
updateForm
({
milestone_title
:
'
v1.0
'
},
$filtersForm
);
IssuableIndex
.
filterResults
(
$filtersForm
);
let
params
=
`
${
DEFAULT_PARAMS
}
&milestone_title=v1.0`
;
expect
(
gl
.
utils
.
visitUrl
).
toHaveBeenCalledWith
(
BASE_URL
+
params
);
// update filter
updateForm
({
label_name
:
'
Frontend
'
},
$filtersForm
);
IssuableIndex
.
filterResults
(
$filtersForm
);
params
=
`
${
DEFAULT_PARAMS
}
&milestone_title=v1.0&label_name=Frontend`
;
expect
(
gl
.
utils
.
visitUrl
).
toHaveBeenCalledWith
(
BASE_URL
+
params
);
expect
(
jQuery
.
ajax
).
toHaveBeenCalled
();
expect
(
jQuery
.
ajax
.
calls
.
argsFor
(
0
)[
0
].
url
).
toEqual
(
'
foo
'
);
});
});
});
})();
});
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