BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
f195ac03
Commit
f195ac03
authored
Jan 29, 2018
by
Phil Hughes
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fl-vue-mr-widget' into 'master'
Move mr_widget_merged into a vue file Closes #42486 See merge request gitlab-org/gitlab-ce!16746
parents
229785d5
c62ffe27
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
290 additions
and
251 deletions
+290
-251
mr_widget_merged.js
...erge_request_widget/components/states/mr_widget_merged.js
+0
-139
mr_widget_merged.vue
...rge_request_widget/components/states/mr_widget_merged.vue
+192
-0
dependencies.js
...sets/javascripts/vue_merge_request_widget/dependencies.js
+1
-1
mr_widget_merged_spec.js
.../vue_mr_widget/components/states/mr_widget_merged_spec.js
+97
-111
No files found.
app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_merged.js
deleted
100644 → 0
View file @
229785d5
import
Flash
from
'../../../flash'
;
import
mrWidgetAuthorTime
from
'../../components/mr_widget_author_time'
;
import
tooltip
from
'../../../vue_shared/directives/tooltip'
;
import
loadingIcon
from
'../../../vue_shared/components/loading_icon.vue'
;
import
statusIcon
from
'../mr_widget_status_icon.vue'
;
import
eventHub
from
'../../event_hub'
;
export
default
{
name
:
'MRWidgetMerged'
,
props
:
{
mr
:
{
type
:
Object
,
required
:
true
},
service
:
{
type
:
Object
,
required
:
true
},
},
data
()
{
return
{
isMakingRequest
:
false
,
};
},
directives
:
{
tooltip
,
},
components
:
{
'mr-widget-author-and-time'
:
mrWidgetAuthorTime
,
loadingIcon
,
statusIcon
,
},
computed
:
{
shouldShowRemoveSourceBranch
()
{
const
{
sourceBranchRemoved
,
isRemovingSourceBranch
,
canRemoveSourceBranch
}
=
this
.
mr
;
return
!
sourceBranchRemoved
&&
canRemoveSourceBranch
&&
!
this
.
isMakingRequest
&&
!
isRemovingSourceBranch
;
},
shouldShowSourceBranchRemoving
()
{
const
{
sourceBranchRemoved
,
isRemovingSourceBranch
}
=
this
.
mr
;
return
!
sourceBranchRemoved
&&
(
isRemovingSourceBranch
||
this
.
isMakingRequest
);
},
shouldShowMergedButtons
()
{
const
{
canRevertInCurrentMR
,
canCherryPickInCurrentMR
,
revertInForkPath
,
cherryPickInForkPath
}
=
this
.
mr
;
return
canRevertInCurrentMR
||
canCherryPickInCurrentMR
||
revertInForkPath
||
cherryPickInForkPath
;
},
},
methods
:
{
removeSourceBranch
()
{
this
.
isMakingRequest
=
true
;
this
.
service
.
removeSourceBranch
()
.
then
(
res
=>
res
.
data
)
.
then
((
data
)
=>
{
if
(
data
.
message
===
'Branch was removed'
)
{
eventHub
.
$emit
(
'MRWidgetUpdateRequested'
,
()
=>
{
this
.
isMakingRequest
=
false
;
});
}
})
.
catch
(()
=>
{
this
.
isMakingRequest
=
false
;
new
Flash
(
'Something went wrong. Please try again.'
);
// eslint-disable-line
});
},
},
template
:
`
<div class="mr-widget-body media">
<status-icon status="success" />
<div class="media-body">
<div class="space-children">
<mr-widget-author-and-time
actionText="Merged by"
:author="mr.metrics.mergedBy"
:date-title="mr.metrics.mergedAt"
:date-readable="mr.metrics.readableMergedAt" />
<a
v-if="mr.canRevertInCurrentMR"
v-tooltip
class="btn btn-close btn-xs"
href="#modal-revert-commit"
data-toggle="modal"
data-container="body"
title="Revert this merge request in a new merge request">
Revert
</a>
<a
v-else-if="mr.revertInForkPath"
v-tooltip
class="btn btn-close btn-xs"
data-method="post"
:href="mr.revertInForkPath"
title="Revert this merge request in a new merge request">
Revert
</a>
<a
v-if="mr.canCherryPickInCurrentMR"
v-tooltip
class="btn btn-default btn-xs"
href="#modal-cherry-pick-commit"
data-toggle="modal"
data-container="body"
title="Cherry-pick this merge request in a new merge request">
Cherry-pick
</a>
<a
v-else-if="mr.cherryPickInForkPath"
v-tooltip
class="btn btn-default btn-xs"
data-method="post"
:href="mr.cherryPickInForkPath"
title="Cherry-pick this merge request in a new merge request">
Cherry-pick
</a>
</div>
<section class="mr-info-list">
<p>
The changes were merged into
<span class="label-branch">
<a :href="mr.targetBranchPath">{{mr.targetBranch}}</a>
</span>
</p>
<p v-if="mr.sourceBranchRemoved">The source branch has been removed</p>
<p v-if="shouldShowRemoveSourceBranch" class="space-children">
<span>You can remove source branch now</span>
<button
@click="removeSourceBranch"
:disabled="isMakingRequest"
type="button"
class="btn btn-xs btn-default js-remove-branch-button">
Remove Source Branch
</button>
</p>
<p v-if="shouldShowSourceBranchRemoving">
<loading-icon inline />
<span>The source branch is being removed</span>
</p>
</section>
</div>
</div>
`
,
};
app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_merged.vue
0 → 100644
View file @
f195ac03
<
script
>
import
Flash
from
'~/flash'
;
import
tooltip
from
'~/vue_shared/directives/tooltip'
;
import
loadingIcon
from
'~/vue_shared/components/loading_icon.vue'
;
import
{
s__
,
__
}
from
'~/locale'
;
import
mrWidgetAuthorTime
from
'../../components/mr_widget_author_time'
;
import
statusIcon
from
'../mr_widget_status_icon.vue'
;
import
eventHub
from
'../../event_hub'
;
export
default
{
name
:
'MRWidgetMerged'
,
directives
:
{
tooltip
,
},
components
:
{
mrWidgetAuthorTime
,
loadingIcon
,
statusIcon
,
},
props
:
{
mr
:
{
type
:
Object
,
required
:
true
,
default
:
()
=>
({}),
},
service
:
{
type
:
Object
,
required
:
true
,
default
:
()
=>
({}),
},
},
data
()
{
return
{
isMakingRequest
:
false
,
};
},
computed
:
{
shouldShowRemoveSourceBranch
()
{
const
{
sourceBranchRemoved
,
isRemovingSourceBranch
,
canRemoveSourceBranch
,
}
=
this
.
mr
;
return
!
sourceBranchRemoved
&&
canRemoveSourceBranch
&&
!
this
.
isMakingRequest
&&
!
isRemovingSourceBranch
;
},
shouldShowSourceBranchRemoving
()
{
const
{
sourceBranchRemoved
,
isRemovingSourceBranch
,
}
=
this
.
mr
;
return
!
sourceBranchRemoved
&&
(
isRemovingSourceBranch
||
this
.
isMakingRequest
);
},
shouldShowMergedButtons
()
{
const
{
canRevertInCurrentMR
,
canCherryPickInCurrentMR
,
revertInForkPath
,
cherryPickInForkPath
,
}
=
this
.
mr
;
return
canRevertInCurrentMR
||
canCherryPickInCurrentMR
||
revertInForkPath
||
cherryPickInForkPath
;
},
revertTitle
()
{
return
s__
(
'mrWidget|Revert this merge request in a new merge request'
);
},
cherryPickTitle
()
{
return
s__
(
'mrWidget|Cherry-pick this merge request in a new merge request'
);
},
revertLabel
()
{
return
s__
(
'mrWidget|Revert'
);
},
cherryPickLabel
()
{
return
s__
(
'mrWidget|Cherry-pick'
);
},
},
methods
:
{
removeSourceBranch
()
{
this
.
isMakingRequest
=
true
;
this
.
service
.
removeSourceBranch
()
.
then
(
res
=>
res
.
data
)
.
then
((
data
)
=>
{
if
(
data
.
message
===
'Branch was removed'
)
{
eventHub
.
$emit
(
'MRWidgetUpdateRequested'
,
()
=>
{
this
.
isMakingRequest
=
false
;
});
}
})
.
catch
(()
=>
{
this
.
isMakingRequest
=
false
;
Flash
(
__
(
'Something went wrong. Please try again.'
));
});
},
},
};
</
script
>
<
template
>
<div
class=
"mr-widget-body media"
>
<status-icon
status=
"success"
/>
<div
class=
"media-body"
>
<div
class=
"space-children"
>
<mr-widget-author-time
:action-text=
"s__('mrWidget|Merged by')"
:author=
"mr.metrics.mergedBy"
:date-title=
"mr.metrics.mergedAt"
:date-readable=
"mr.metrics.readableMergedAt"
/>
<a
v-if=
"mr.canRevertInCurrentMR"
v-tooltip
class=
"btn btn-close btn-xs"
href=
"#modal-revert-commit"
data-toggle=
"modal"
data-container=
"body"
:title=
"revertTitle"
>
{{
revertLabel
}}
</a>
<a
v-else-if=
"mr.revertInForkPath"
v-tooltip
class=
"btn btn-close btn-xs"
data-method=
"post"
:href=
"mr.revertInForkPath"
:title=
"revertTitle"
>
{{
revertLabel
}}
</a>
<a
v-if=
"mr.canCherryPickInCurrentMR"
v-tooltip
class=
"btn btn-default btn-xs"
href=
"#modal-cherry-pick-commit"
data-toggle=
"modal"
data-container=
"body"
:title=
"cherryPickTitle"
>
{{
cherryPickLabel
}}
</a>
<a
v-else-if=
"mr.cherryPickInForkPath"
v-tooltip
class=
"btn btn-default btn-xs"
data-method=
"post"
:href=
"mr.cherryPickInForkPath"
:title=
"cherryPickTitle"
>
{{
cherryPickLabel
}}
</a>
</div>
<section
class=
"mr-info-list"
>
<p>
{{
s__
(
"mrWidget|The changes were merged into"
)
}}
<span
class=
"label-branch"
>
<a
:href=
"mr.targetBranchPath"
>
{{
mr
.
targetBranch
}}
</a>
</span>
</p>
<p
v-if=
"mr.sourceBranchRemoved"
>
{{
s__
(
"mrWidget|The source branch has been removed"
)
}}
</p>
<p
v-if=
"shouldShowRemoveSourceBranch"
class=
"space-children"
>
<span>
{{
s__
(
"mrWidget|You can remove source branch now"
)
}}
</span>
<button
@
click=
"removeSourceBranch"
:disabled=
"isMakingRequest"
type=
"button"
class=
"btn btn-xs btn-default js-remove-branch-button"
>
{{
s__
(
"mrWidget|Remove Source Branch"
)
}}
</button>
</p>
<p
v-if=
"shouldShowSourceBranchRemoving"
>
<loading-icon
:inline=
"true"
/>
<span>
{{
s__
(
"mrWidget|The source branch is being removed"
)
}}
</span>
</p>
</section>
</div>
</div>
</
template
>
app/assets/javascripts/vue_merge_request_widget/dependencies.js
View file @
f195ac03
...
...
@@ -16,7 +16,7 @@ export { default as WidgetMergeHelp } from './components/mr_widget_merge_help';
export
{
default
as
WidgetPipeline
}
from
'./components/mr_widget_pipeline.vue'
;
export
{
default
as
WidgetDeployment
}
from
'./components/mr_widget_deployment'
;
export
{
default
as
WidgetRelatedLinks
}
from
'./components/mr_widget_related_links'
;
export
{
default
as
MergedState
}
from
'./components/states/mr_widget_merged'
;
export
{
default
as
MergedState
}
from
'./components/states/mr_widget_merged
.vue
'
;
export
{
default
as
FailedToMerge
}
from
'./components/states/mr_widget_failed_to_merge.vue'
;
export
{
default
as
ClosedState
}
from
'./components/states/mr_widget_closed.vue'
;
export
{
default
as
MergingState
}
from
'./components/states/mr_widget_merging.vue'
;
...
...
spec/javascripts/vue_mr_widget/components/states/mr_widget_merged_spec.js
View file @
f195ac03
import
Vue
from
'vue'
;
import
mergedComponent
from
'~/vue_merge_request_widget/components/states/mr_widget_merged'
;
import
mergedComponent
from
'~/vue_merge_request_widget/components/states/mr_widget_merged
.vue
'
;
import
eventHub
from
'~/vue_merge_request_widget/event_hub'
;
const
targetBranch
=
'foo'
;
const
createComponent
=
()
=>
{
const
Component
=
Vue
.
extend
(
mergedComponent
);
const
mr
=
{
isRemovingSourceBranch
:
false
,
cherryPickInForkPath
:
false
,
canCherryPickInCurrentMR
:
true
,
revertInForkPath
:
false
,
canRevertInCurrentMR
:
true
,
canRemoveSourceBranch
:
true
,
sourceBranchRemoved
:
true
,
metrics
:
{
mergedBy
:
{},
mergedAt
:
'mergedUpdatedAt'
,
readableMergedAt
:
''
,
closedBy
:
{},
closedAt
:
'mergedUpdatedAt'
,
readableClosedAt
:
''
,
},
updatedAt
:
'mrUpdatedAt'
,
targetBranch
,
};
const
service
=
{
removeSourceBranch
()
{},
};
return
new
Component
({
el
:
document
.
createElement
(
'div'
),
propsData
:
{
mr
,
service
},
});
};
import
mountComponent
from
'../../../helpers/vue_mount_component_helper'
;
describe
(
'MRWidgetMerged'
,
()
=>
{
describe
(
'props'
,
()
=>
{
it
(
'should have props'
,
()
=>
{
const
{
mr
,
service
}
=
mergedComponent
.
props
;
expect
(
mr
.
type
instanceof
Object
).
toBeTruthy
();
expect
(
mr
.
required
).
toBeTruthy
();
expect
(
service
.
type
instanceof
Object
).
toBeTruthy
();
expect
(
service
.
required
).
toBeTruthy
();
});
});
describe
(
'components'
,
()
=>
{
it
(
'should have components added'
,
()
=>
{
expect
(
mergedComponent
.
components
[
'mr-widget-author-and-time'
]).
toBeDefined
();
});
let
vm
;
const
targetBranch
=
'foo'
;
beforeEach
(()
=>
{
const
Component
=
Vue
.
extend
(
mergedComponent
);
const
mr
=
{
isRemovingSourceBranch
:
false
,
cherryPickInForkPath
:
false
,
canCherryPickInCurrentMR
:
true
,
revertInForkPath
:
false
,
canRevertInCurrentMR
:
true
,
canRemoveSourceBranch
:
true
,
sourceBranchRemoved
:
true
,
metrics
:
{
mergedBy
:
{
name
:
'Administrator'
,
username
:
'root'
,
webUrl
:
'http://localhost:3000/root'
,
avatarUrl
:
'http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon'
,
},
mergedAt
:
'Jan 24, 2018 1:02pm GMT+0000'
,
readableMergedAt
:
''
,
closedBy
:
{},
closedAt
:
'Jan 24, 2018 1:02pm GMT+0000'
,
readableClosedAt
:
''
,
},
updatedAt
:
'mergedUpdatedAt'
,
targetBranch
,
};
const
service
=
{
removeSourceBranch
()
{},
};
spyOn
(
eventHub
,
'$emit'
);
vm
=
mountComponent
(
Component
,
{
mr
,
service
});
});
describe
(
'data'
,
()
=>
{
it
(
'should have default data'
,
()
=>
{
const
data
=
mergedComponent
.
data
();
expect
(
data
.
isMakingRequest
).
toBeFalsy
();
});
afterEach
(()
=>
{
vm
.
$destroy
();
});
describe
(
'computed'
,
()
=>
{
describe
(
'shouldShowRemoveSourceBranch'
,
()
=>
{
it
(
'should correct value when fields changed'
,
()
=>
{
const
vm
=
createComponent
();
it
(
'returns true when sourceBranchRemoved is false'
,
()
=>
{
vm
.
mr
.
sourceBranchRemoved
=
false
;
expect
(
vm
.
shouldShowRemoveSourceBranch
).
toBeTruthy
();
expect
(
vm
.
shouldShowRemoveSourceBranch
).
toEqual
(
true
);
});
it
(
'returns false wehn sourceBranchRemoved is true'
,
()
=>
{
vm
.
mr
.
sourceBranchRemoved
=
true
;
expect
(
vm
.
shouldShowRemoveSourceBranch
).
toBeFalsy
();
expect
(
vm
.
shouldShowRemoveSourceBranch
).
toEqual
(
false
);
});
it
(
'returns false when canRemoveSourceBranch is false'
,
()
=>
{
vm
.
mr
.
sourceBranchRemoved
=
false
;
vm
.
mr
.
canRemoveSourceBranch
=
false
;
expect
(
vm
.
shouldShowRemoveSourceBranch
).
toBeFalsy
();
expect
(
vm
.
shouldShowRemoveSourceBranch
).
toEqual
(
false
);
});
it
(
'returns false when is making request'
,
()
=>
{
vm
.
mr
.
canRemoveSourceBranch
=
true
;
vm
.
isMakingRequest
=
true
;
expect
(
vm
.
shouldShowRemoveSourceBranch
).
toBeFalsy
();
expect
(
vm
.
shouldShowRemoveSourceBranch
).
toEqual
(
false
);
});
it
(
'returns true when all are true'
,
()
=>
{
vm
.
mr
.
isRemovingSourceBranch
=
true
;
vm
.
mr
.
canRemoveSourceBranch
=
true
;
vm
.
isMakingRequest
=
true
;
expect
(
vm
.
shouldShowRemoveSourceBranch
).
to
BeFalsy
(
);
expect
(
vm
.
shouldShowRemoveSourceBranch
).
to
Equal
(
false
);
});
});
describe
(
'shouldShowSourceBranchRemoving'
,
()
=>
{
it
(
'should correct value when fields changed'
,
()
=>
{
const
vm
=
createComponent
();
vm
.
mr
.
sourceBranchRemoved
=
false
;
expect
(
vm
.
shouldShowSourceBranchRemoving
).
to
BeFalsy
(
);
expect
(
vm
.
shouldShowSourceBranchRemoving
).
to
Equal
(
false
);
vm
.
mr
.
sourceBranchRemoved
=
true
;
expect
(
vm
.
shouldShowRemoveSourceBranch
).
to
BeFalsy
(
);
expect
(
vm
.
shouldShowRemoveSourceBranch
).
to
Equal
(
false
);
vm
.
mr
.
sourceBranchRemoved
=
false
;
vm
.
isMakingRequest
=
true
;
expect
(
vm
.
shouldShowSourceBranchRemoving
).
to
BeTruthy
(
);
expect
(
vm
.
shouldShowSourceBranchRemoving
).
to
Equal
(
true
);
vm
.
isMakingRequest
=
false
;
vm
.
mr
.
isRemovingSourceBranch
=
true
;
expect
(
vm
.
shouldShowSourceBranchRemoving
).
to
BeTruthy
(
);
expect
(
vm
.
shouldShowSourceBranchRemoving
).
to
Equal
(
true
);
});
});
});
...
...
@@ -110,8 +101,6 @@ describe('MRWidgetMerged', () => {
describe
(
'methods'
,
()
=>
{
describe
(
'removeSourceBranch'
,
()
=>
{
it
(
'should set flag and call service then request main component to update the widget'
,
(
done
)
=>
{
const
vm
=
createComponent
();
spyOn
(
eventHub
,
'$emit'
);
spyOn
(
vm
.
service
,
'removeSourceBranch'
).
and
.
returnValue
(
new
Promise
((
resolve
)
=>
{
resolve
({
data
:
{
...
...
@@ -123,7 +112,7 @@ describe('MRWidgetMerged', () => {
vm
.
removeSourceBranch
();
setTimeout
(()
=>
{
const
args
=
eventHub
.
$emit
.
calls
.
argsFor
(
0
);
expect
(
vm
.
isMakingRequest
).
to
BeTruthy
(
);
expect
(
vm
.
isMakingRequest
).
to
Equal
(
true
);
expect
(
args
[
0
]).
toEqual
(
'MRWidgetUpdateRequested'
);
expect
(
args
[
1
]).
not
.
toThrow
();
done
();
...
...
@@ -132,53 +121,50 @@ describe('MRWidgetMerged', () => {
});
});
describe
(
'template'
,
()
=>
{
let
vm
;
let
el
;
it
(
'has merged by information'
,
()
=>
{
expect
(
vm
.
$el
.
textContent
).
toContain
(
'Merged by'
);
expect
(
vm
.
$el
.
textContent
).
toContain
(
'Administrator'
);
});
beforeEach
(
()
=>
{
vm
=
createComponent
(
);
el
=
vm
.
$el
;
});
it
(
'renders branch information'
,
()
=>
{
expect
(
vm
.
$el
.
textContent
).
toContain
(
'The changes were merged into'
);
expect
(
vm
.
$el
.
textContent
).
toContain
(
targetBranch
)
;
});
it
(
'should have correct elements'
,
()
=>
{
expect
(
el
.
classList
.
contains
(
'mr-widget-body'
)).
toBeTruthy
();
expect
(
el
.
querySelector
(
'.js-mr-widget-author'
)).
toBeDefined
();
expect
(
el
.
innerText
).
toContain
(
'The changes were merged into'
);
expect
(
el
.
innerText
).
toContain
(
targetBranch
);
expect
(
el
.
innerText
).
toContain
(
'The source branch has been removed'
);
expect
(
el
.
innerText
).
toContain
(
'Revert'
);
expect
(
el
.
innerText
).
toContain
(
'Cherry-pick'
);
expect
(
el
.
innerText
).
not
.
toContain
(
'You can remove source branch now'
);
expect
(
el
.
innerText
).
not
.
toContain
(
'The source branch is being removed'
);
});
it
(
'renders information about branch being removed'
,
()
=>
{
expect
(
vm
.
$el
.
textContent
).
toContain
(
'The source branch has been removed'
);
});
it
(
'should not show source branch removed text'
,
(
done
)
=>
{
vm
.
mr
.
sourceBranchRemoved
=
false
;
it
(
'shows revert and cherry-pick buttons'
,
()
=>
{
expect
(
vm
.
$el
.
textContent
).
toContain
(
'Revert'
);
expect
(
vm
.
$el
.
textContent
).
toContain
(
'Cherry-pick'
);
});
Vue
.
nextTick
(()
=>
{
expect
(
el
.
innerText
).
toContain
(
'You can remove source branch now'
);
expect
(
el
.
innerText
).
not
.
toContain
(
'The source branch has been removed'
);
done
();
});
it
(
'should not show source branch removed text'
,
(
done
)
=>
{
vm
.
mr
.
sourceBranchRemoved
=
false
;
Vue
.
nextTick
(()
=>
{
expect
(
vm
.
$el
.
innerText
).
toContain
(
'You can remove source branch now'
);
expect
(
vm
.
$el
.
innerText
).
not
.
toContain
(
'The source branch has been removed'
);
done
();
});
});
it
(
'should show source branch removing text'
,
(
done
)
=>
{
vm
.
mr
.
isRemovingSourceBranch
=
true
;
vm
.
mr
.
sourceBranchRemoved
=
false
;
it
(
'should show source branch removing text'
,
(
done
)
=>
{
vm
.
mr
.
isRemovingSourceBranch
=
true
;
vm
.
mr
.
sourceBranchRemoved
=
false
;
Vue
.
nextTick
(()
=>
{
expect
(
el
.
innerText
).
toContain
(
'The source branch is being removed'
);
expect
(
el
.
innerText
).
not
.
toContain
(
'You can remove source branch now'
);
expect
(
el
.
innerText
).
not
.
toContain
(
'The source branch has been removed'
);
done
();
});
Vue
.
nextTick
(()
=>
{
expect
(
vm
.
$el
.
innerText
).
toContain
(
'The source branch is being removed'
);
expect
(
vm
.
$el
.
innerText
).
not
.
toContain
(
'You can remove source branch now'
);
expect
(
vm
.
$el
.
innerText
).
not
.
toContain
(
'The source branch has been removed'
);
done
();
});
});
it
(
'should use mergedEvent updatedAt as tooltip title'
,
()
=>
{
expect
(
el
.
querySelector
(
'time'
).
getAttribute
(
'title'
),
).
toBe
(
'mergedUpdatedAt'
);
});
it
(
'should use mergedEvent mergedAt as tooltip title'
,
()
=>
{
expect
(
vm
.
$el
.
querySelector
(
'time'
).
getAttribute
(
'title'
),
).
toBe
(
'Jan 24, 2018 1:02pm GMT+0000'
);
});
});
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