| OLD | NEW |
| (Empty) |
| 1 <!-- | |
| 2 Copyright 2014 The Chromium Authors. All rights reserved. | |
| 3 Use of this source code is governed by a BSD-style license that can be | |
| 4 found in the LICENSE file. | |
| 5 --> | |
| 6 | |
| 7 <link rel="import" href="../ct-failure-stream.html"> | |
| 8 | |
| 9 <script> | |
| 10 (function () { | |
| 11 | |
| 12 var assert = chai.assert; | |
| 13 | |
| 14 describe('ct-failure-stream', function() { | |
| 15 | |
| 16 var stream; | |
| 17 | |
| 18 beforeEach(function(done) { | |
| 19 stream = document.createElement('ct-failure-stream'); | |
| 20 setTimeout(done); | |
| 21 }); | |
| 22 | |
| 23 describe('default ui', function() { | |
| 24 it('should show failure groups', function(done) { | |
| 25 // FIXME: We should use some more interesting test data, but | |
| 26 // ct-failure-stream will give these values to ct-commit-data, | |
| 27 // which will hit the network unless we figure out how to mock | |
| 28 // out ct-commit-data in a better way. | |
| 29 stream.groups = [new CTFailureGroup('', new CTStepFailureGroupData([])), | |
| 30 new CTFailureGroup('', new CTStepFailureGroupData([]))]; | |
| 31 stream.category = 'default'; | |
| 32 setTimeout(function() { | |
| 33 var cards = stream.shadowRoot.querySelectorAll('ct-step-failure-card'); | |
| 34 assert.equal(cards.length, 2); | |
| 35 done(); | |
| 36 }); | |
| 37 }); | |
| 38 }); | |
| 39 | |
| 40 describe('category', function() { | |
| 41 | |
| 42 it('should only show failure groups for the specified category', function(do
ne) { | |
| 43 var failures = [new CTStepFailure('step', 'reason', [{key: 'a', annotation
: {snoozeTime: Date.now() + 1000 * 1000}}])]; | |
| 44 var snoozed = new CTFailureGroup('', new CTStepFailureGroupData(failures))
; | |
| 45 stream.groups = [new CTFailureGroup('', new CTStepFailureGroupData([])), s
noozed]; | |
| 46 stream.category = 'snoozed'; | |
| 47 setTimeout(function() { | |
| 48 var cards = stream.shadowRoot.querySelectorAll('ct-step-failure-card'); | |
| 49 assert.equal(cards.length, 1); | |
| 50 assert.equal(cards[0].group, snoozed.data); | |
| 51 done(); | |
| 52 }); | |
| 53 }); | |
| 54 | |
| 55 it('should select the correct card type', function(done) { | |
| 56 var failures = [new CTStepFailure('step', 'reason', [{key: 'a', annotation
: {}}])]; | |
| 57 var failureGroup = new CTFailureGroup('', new CTStepFailureGroupData(failu
res)); | |
| 58 stream.groups = [new CTFailureGroup('', new CTStepFailureGroupData([])), f
ailureGroup]; | |
| 59 stream.category = 'default'; | |
| 60 setTimeout(function() { | |
| 61 assert(stream.shadowRoot.querySelector('ct-step-failure-card') != null, | |
| 62 'missing sheriff card'); | |
| 63 stream.groups = [new CTFailureGroup('', new CTTrooperFailureGroupData( | |
| 64 'details', 'url', {percent_over_median_slo: '6%', | |
| 65 percent_over_max_slo: '7%'}, 'cq_latency', ''))]; | |
| 66 setTimeout(function() { | |
| 67 assert(stream.shadowRoot.querySelector('ct-trooper-card') != null, | |
| 68 'missing cq-latency card'); | |
| 69 stream.groups[0].data.type = 'tree_status'; | |
| 70 setTimeout(function() { | |
| 71 assert(stream.shadowRoot.querySelector('ct-trooper-card') != | |
| 72 null, 'missing tree-status card'); | |
| 73 stream.groups[0].data.type = 'cycle_time'; | |
| 74 setTimeout(function() { | |
| 75 assert(stream.shadowRoot.querySelector('ct-trooper-card') != | |
| 76 null, 'missing cycle-time card'); | |
| 77 done(); | |
| 78 }); | |
| 79 }); | |
| 80 }); | |
| 81 }); | |
| 82 }); | |
| 83 | |
| 84 it('adding a bug number should show bugs link', function(done) { | |
| 85 var cl = new CTCommitListMock(); | |
| 86 var group = new CTFailureGroup('blink', new CTStepFailureGroupData([ | |
| 87 new CTStepFailure('autobot', 'unknown', {someBuilder: {key: 'a', faili
ngBuildCount: 2}}, | |
| 88 {'blink':158547}, {'blink':158544}), | |
| 89 ], cl)); | |
| 90 group.setBug(123); | |
| 91 | |
| 92 stream.groups = [group]; | |
| 93 stream.category = 'default'; | |
| 94 | |
| 95 setTimeout(function() { | |
| 96 var links = stream.shadowRoot.querySelectorAll('.bugs a'); | |
| 97 assert.lengthOf(links, 1); | |
| 98 assert.match(links[0].href, /crbug.com\/123/); | |
| 99 done(); | |
| 100 }); | |
| 101 }); | |
| 102 | |
| 103 it('should not show bugs link without a bug number', function(done) { | |
| 104 var cl = new CTCommitListMock(); | |
| 105 var group = new CTFailureGroup('blink', new CTStepFailureGroupData([ | |
| 106 new CTStepFailure('autobot', 'unknown', {someBuilder: {key: 'a'}}, {'bli
nk':158547}, | |
| 107 {'blink':158544})], cl)); | |
| 108 | |
| 109 stream.groups = [group]; | |
| 110 stream.category = 'default'; | |
| 111 | |
| 112 setTimeout(function() { | |
| 113 var links = stream.shadowRoot.querySelectorAll('.bugs'); | |
| 114 assert.lengthOf(links, 0); | |
| 115 done(); | |
| 116 }); | |
| 117 }); | |
| 118 }); | |
| 119 }); | |
| 120 | |
| 121 })(); | |
| 122 </script> | |
| OLD | NEW |