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 |