'click .js-toggle-duplications': 'toggleDuplications'
'click .js-toggle-scm': 'toggleSCM'
- 'click .js-filter-line-to-cover': 'filterByLinesToCover'
+ 'click .js-filter-lines-to-cover': 'filterByLinesToCover'
+ 'click .js-filter-covered-lines': 'filterByCoveredLines'
'click .js-filter-uncovered-lines': 'filterByUncoveredLines'
+ 'click .js-filter-branches-to-cover': 'filterByBranchesToCover'
+ 'click .js-filter-uncovered-branches': 'filterByUncoveredBranches'
+
+ 'click .js-filter-lines-to-cover-it': 'filterByLinesToCoverIT'
+ 'click .js-filter-covered-lines-it': 'filterByCoveredLinesIT'
+ 'click .js-filter-uncovered-lines-it': 'filterByUncoveredLinesIT'
+ 'click .js-filter-branches-to-cover-it': 'filterByBranchesToCoverIT'
+ 'click .js-filter-uncovered-branches-it': 'filterByUncoveredBranchesIT'
initialize: (options) ->
-# @listenTo options.main.settings, 'change', @changeSettings
options.main.settings.on 'change', => @changeSettings()
if active then hide.call @options.main else show.call @options.main
- toggleIssues: (e) ->
- @toggleSetting e, @options.main.showIssues, @options.main.hideIssues
-
-
- toggleCoverage: (e) ->
- @toggleSetting e, @options.main.showCoverage, @options.main.hideCoverage
-
-
- toggleDuplications: (e) ->
- @toggleSetting e, @options.main.showDuplications, @options.main.hideDuplications
-
+ toggleIssues: (e) -> @toggleSetting e, @options.main.showIssues, @options.main.hideIssues
+ toggleCoverage: (e) -> @toggleSetting e, @options.main.showCoverage, @options.main.hideCoverage
+ toggleDuplications: (e) -> @toggleSetting e, @options.main.showDuplications, @options.main.hideDuplications
+ toggleSCM: (e) -> @toggleSetting e, @options.main.showSCM, @options.main.hideSCM
+ toggleWorkspace: (e) -> @toggleSetting e, @options.main.showWorkspace, @options.main.hideWorkspace
- toggleSCM: (e) ->
- @toggleSetting e, @options.main.showSCM, @options.main.hideSCM
-
- toggleWorkspace: (e) ->
- @toggleSetting e, @options.main.showWorkspace, @options.main.hideWorkspace
-
-
- filterByLinesToCover: (e) ->
+ filterByCoverage: (e, method) ->
@$('.component-viewer-header-expanded-bar-section-list .active').removeClass 'active'
$(e.currentTarget).addClass 'active'
- @options.main.filterLinesByLinesToCover()
+ _.result @options.main, method
- filterByUncoveredLines: (e) ->
- @$('.component-viewer-header-expanded-bar-section-list .active').removeClass 'active'
- $(e.currentTarget).addClass 'active'
- @options.main.filterLinesByUncoveredLines()
+ filterByLinesToCover: (e) -> @filterByCoverage e, 'filterByLinesToCover'
+ filterByCoveredLines: (e) -> @filterByCoverage e, 'filterByCoveredLines'
+ filterByUncoveredLines: (e) -> @filterByCoverage e, 'filterByUncoveredLines'
+ filterByBranchesToCover: (e) -> @filterByCoverage e, 'filterByBranchesToCover'
+ filterByUncoveredBranches: (e) -> @filterByCoverage e, 'filterByUncoveredBranches'
+
+ filterByLinesToCoverIT: (e) -> @filterByCoverage e, 'filterByLinesToCoverIT'
+ filterByCoveredLinesIT: (e) -> @filterByCoverage e, 'filterByCoveredLinesIT'
+ filterByUncoveredLinesIT: (e) -> @filterByCoverage e, 'filterByUncoveredLinesIT'
+ filterByBranchesToCoverIT: (e) -> @filterByCoverage e, 'filterByBranchesToCoverIT'
+ filterByUncoveredBranchesIT: (e) -> @filterByCoverage e, 'filterByUncoveredBranchesIT'
serializeData: ->
@source.set scm: data.scm
- requestCoverage: (key) ->
- $.get API_COVERAGE, key: key, (data) =>
+ requestCoverage: (key, type = 'UT') ->
+ $.get API_COVERAGE, key: key, type: type, (data) =>
@source.set coverage: data.coverage
@sourceView.render()
- filterLinesByLinesToCover: ->
- unless @source.has 'coverage'
- @requestCoverage(@key).done => @_filterLinesByLinesToCover()
- else
- @_filterLinesByLinesToCover()
+ filterByCoverage: (predicate) ->
+ @requestCoverage(@key).done => @_filterByCoverage(predicate)
+
+
+ filterByCoverageIT: (predicate) ->
+ @requestCoverage(@key, 'IT').done => @_filterByCoverage(predicate)
- _filterLinesByLinesToCover: ->
+ _filterByCoverage: (predicate) ->
coverage = @source.get 'coverage'
@settings.set 'coverage', true
@sourceView.resetShowBlocks()
coverage.forEach (c) =>
- if c[1]? && c[1]
+ if predicate c
line = c[0]
@sourceView.addShowBlock line - LINES_AROUND_COVERED_LINE, line + LINES_AROUND_COVERED_LINE
@sourceView.render()
- filterLinesByUncoveredLines: ->
- unless @source.has 'coverage'
- @requestCoverage(@key).done => @_filterLinesByUncoveredLines()
- else
- @_filterLinesByUncoveredLines()
+ # Unit Tests
+ filterByLinesToCover: -> @filterByCoverage (c) -> c[1]?
+ filterByCoveredLines: -> @filterByCoverage (c) -> c[1]? && c[1]
+ filterLinesByUncoveredLines: -> @filterByCoverage (c) -> c[1]? && !c[1]
+ filterByBranchesToCover: -> @filterByCoverage (c) -> c[3]?
+ filterByUncoveredBranches: -> @filterByCoverage (c) -> c[3]? && c[4]? && (c[3] > c[4])
+
+ # Integration Tests
+ filterByLinesToCoverIT: -> @filterByCoverageIT (c) -> c[1]?
+ filterByCoveredLinesIT: -> @filterByCoverageIT (c) -> c[1]? && c[1]
+ filterLinesByUncoveredLinesIT: -> @filterByCoverageIT (c) -> c[1]? && !c[1]
+ filterByBranchesToCoverIT: -> @filterByCoverageIT (c) -> c[3]?
+ filterByUncoveredBranchesIT: -> @filterByCoverageIT (c) -> c[3]? && c[4]? && (c[3] > c[4])
+
- _filterLinesByUncoveredLines: ->
- coverage = @source.get 'coverage'
- @settings.set 'coverage', true
- @sourceView.resetShowBlocks()
- coverage.forEach (c) =>
- if c[1]? && !c[1]
- line = c[0]
- @sourceView.addShowBlock line - LINES_AROUND_COVERED_LINE, line + LINES_AROUND_COVERED_LINE
- @sourceView.render()
addTransition: (key, transition, optionsForCurrent, options) ->
<div class="component-viewer-header-expanded-bar-section">
<div class="component-viewer-header-expanded-bar-section-title">Unit Tests</div>
<ul class="component-viewer-header-expanded-bar-section-list">
+ <li><span class="item">
+ <span class="label">Coverage</span>
+ <span class="number">93.6%</span>
+ </span></li>
<li><span class="item">
<span class="label">Line coverage</span>
<span class="number">93.6%</span>
</span></li>
- <li><a class="item js-filter-line-to-cover">
+ <li><a class="item js-filter-lines-to-cover">
<span class="label">Lines to cover</span>
<span class="number">171</span>
<i class="icon-chevron-right"></i>
<span class="number">16</span>
<i class="icon-chevron-right"></i>
</a></li>
+ <li><a class="item js-filter-covered-lines">
+ <span class="label">Covered lines</span>
+ <span class="number">55</span>
+ <i class="icon-chevron-right"></i>
+ </a></li>
+ </ul>
+</div>
+
+<div class="component-viewer-header-expanded-bar-section">
+ <div class="component-viewer-header-expanded-bar-section-title"> </div>
+ <ul class="component-viewer-header-expanded-bar-section-list">
+ <li><span class="item"> </span></li>
<li><span class="item">
<span class="label">Branch coverage</span>
- <span class="number">100%</span>
+ <span class="number">75.0%</span>
</span></li>
- <li><a class="item">
+ <li><a class="item js-filter-branches-to-cover">
<span class="label">Branches to cover</span>
<span class="number">16</span>
<i class="icon-chevron-right"></i>
</a></li>
+ <li><a class="item js-filter-uncovered-branches">
+ <span class="label">Uncovered branches</span>
+ <span class="number">4</span>
+ <i class="icon-chevron-right"></i>
+ </a></li>
</ul>
</div>
+
<div class="component-viewer-header-expanded-bar-section">
- <div class="component-viewer-header-expanded-bar-section-title">Integration Tests</div>
+ <div class="component-viewer-header-expanded-bar-section-title">Unit Tests</div>
<ul class="component-viewer-header-expanded-bar-section-list">
<li><span class="item">
- <span class="label">Line Coverage</span>
- <span class="number">47.2%</span>
+ <span class="label">Coverage</span>
+ <span class="number">93.6%</span>
</span></li>
- <li><a class="item">
+ <li><span class="item">
+ <span class="label">Line coverage</span>
+ <span class="number">93.6%</span>
+ </span></li>
+ <li><a class="item js-filter-lines-to-cover-it">
<span class="label">Lines to cover</span>
<span class="number">171</span>
<i class="icon-chevron-right"></i>
</a></li>
- <li><a class="item">
+ <li><a class="item js-filter-uncovered-lines-it">
<span class="label">Uncovered lines</span>
<span class="number">16</span>
<i class="icon-chevron-right"></i>
</a></li>
+ <li><a class="item js-filter-covered-lines-it">
+ <span class="label">Covered lines</span>
+ <span class="number">55</span>
+ <i class="icon-chevron-right"></i>
+ </a></li>
+ </ul>
+</div>
+
+<div class="component-viewer-header-expanded-bar-section">
+ <div class="component-viewer-header-expanded-bar-section-title"> </div>
+ <ul class="component-viewer-header-expanded-bar-section-list">
+ <li><span class="item"> </span></li>
+ <li><span class="item">
+ <span class="label">Branch coverage</span>
+ <span class="number">75.0%</span>
+ </span></li>
+ <li><a class="item js-filter-branches-to-cover-it">
+ <span class="label">Branches to cover</span>
+ <span class="number">16</span>
+ <i class="icon-chevron-right"></i>
+ </a></li>
+ <li><a class="item js-filter-uncovered-branches-it">
+ <span class="label">Uncovered branches</span>
+ <span class="number">4</span>
+ <i class="icon-chevron-right"></i>
+ </a></li>
</ul>
</div>
\ No newline at end of file