| Index: Tools/GardeningServer/model/test/ct-sheriff-failure-group-tests.html
|
| diff --git a/Tools/GardeningServer/model/test/ct-sheriff-failure-group-tests.html b/Tools/GardeningServer/model/test/ct-sheriff-failure-group-tests.html
|
| deleted file mode 100644
|
| index ed00d1f63b432aa7d72c6f968d86eb00c00fc7d1..0000000000000000000000000000000000000000
|
| --- a/Tools/GardeningServer/model/test/ct-sheriff-failure-group-tests.html
|
| +++ /dev/null
|
| @@ -1,222 +0,0 @@
|
| -<!--
|
| -Copyright 2014 The Chromium Authors. All rights reserved.
|
| -Use of this source code is governed by a BSD-style license that can be
|
| -found in the LICENSE file.
|
| --->
|
| -
|
| -<link rel="import" href="../ct-failure-group.html">
|
| -
|
| -<script>
|
| -(function () {
|
| -
|
| -var assert = chai.assert;
|
| -
|
| -describe('ct-sheriff-failure-group', function() {
|
| -
|
| - beforeEach(function() {
|
| - localStorage.removeItem('CTFailureGroupAnnotations');
|
| - });
|
| -
|
| - var key = 0;
|
| - function newFailureWithAnnotation(annotation, isTreeCloser) {
|
| - return new CTStepFailure('step', 'reason', [
|
| - {key: String(key++), annotation: annotation, isTreeCloser: isTreeCloser}
|
| - ]);
|
| - }
|
| -
|
| - describe('category', function() {
|
| - it('should be "default" by default', function() {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData([]));
|
| - assert.equal(group.category, 'default');
|
| - });
|
| -
|
| - it('should be "snoozed" when snoozed', function() {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData(
|
| - [newFailureWithAnnotation({snoozeTime: Date.now() + 1000 * 1000})]));
|
| - assert.equal(group.category, 'snoozed');
|
| - });
|
| -
|
| - it('should be "failedOnce" when there is only one failure', function() {
|
| - var failure = newFailureWithAnnotation();
|
| - failure.resultNodesByBuilder = {some_key: {failingBuildCount: 1}}
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData(
|
| - [failure]));
|
| - assert.equal(group.category, 'failedOnce');
|
| - });
|
| -
|
| - it('should be "failedOnce" when each failure only failed once', function() {
|
| - var failure = newFailureWithAnnotation();
|
| - failure.resultNodesByBuilder = {some_key: {failingBuildCount: 1}}
|
| - var failure2 = newFailureWithAnnotation();
|
| - failure2.resultNodesByBuilder = {some_key: {failingBuildCount: 1}}
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData(
|
| - [failure, failure2]));
|
| - assert.equal(group.category, 'failedOnce');
|
| - });
|
| -
|
| - it('should not be "failedOnce" when there is more than one failure', function() {
|
| - var failure = newFailureWithAnnotation();
|
| - failure.resultNodesByBuilder = {some_key: {failingBuildCount: 1},
|
| - other_key: {failingBuildCount: 1}}
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData(
|
| - [failure]));
|
| - assert.equal(group.category, 'default');
|
| - });
|
| -
|
| - it('treeCloser should win over failedOnce', function() {
|
| - var failure = newFailureWithAnnotation();
|
| - failure.resultNodesByBuilder = {some_key: {failingBuildCount: 1, isTreeCloser: true}}
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData(
|
| - [failure]));
|
| - assert.equal(group.category, 'treeCloser');
|
| - });
|
| -
|
| - it('snoozed should win over treeCloser', function() {
|
| - var failure = newFailureWithAnnotation({snoozeTime: Date.now() + 1000 * 1000}, true);
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData(
|
| - [failure]));
|
| - assert.equal(group.category, 'snoozed');
|
| - });
|
| - });
|
| -
|
| - describe('snooze', function() {
|
| - it('should set isSnoozed', function(done) {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData([newFailureWithAnnotation()]));
|
| - group.snoozeUntil(Date.now() + 1000 * 1000).then(function() {
|
| - assert.isTrue(group.isSnoozed);
|
| - done();
|
| - });
|
| - });
|
| - });
|
| -
|
| - describe('unsnooze', function() {
|
| - it('should clear isSnoozed', function(done) {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData([newFailureWithAnnotation()]));
|
| - group.snoozeUntil(Date.now() + 1000 * 1000).then(function() {
|
| - group.unsnooze().then(function() {
|
| - assert.isFalse(group.isSnoozed);
|
| - done();
|
| - });
|
| - });
|
| - });
|
| - });
|
| -
|
| - describe('setBug', function() {
|
| - it('should store the bug', function(done) {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData([newFailureWithAnnotation()]));
|
| - group.setBug('123').then(function() {
|
| - assert.equal(group.bug, 'https://crbug.com/123');
|
| - assert.equal(group._annotation.bug, 'https://crbug.com/123');
|
| - assert.equal(group.bugLabel, 'Bug 123');
|
| - done();
|
| - });
|
| - });
|
| -
|
| - it('should support URLs', function(done) {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData([newFailureWithAnnotation()]));
|
| - group.setBug('https://foobar.com/?id=876&x=y').then(function() {
|
| - assert.equal(group.bug, 'https://foobar.com/?id=876&x=y');
|
| - assert.equal(group._annotation.bug, 'https://foobar.com/?id=876&x=y');
|
| - assert.equal(group.bugLabel, 'Bug 876');
|
| - done();
|
| - });
|
| - });
|
| - });
|
| -
|
| - describe('clearBug', function() {
|
| - it('should work', function(done) {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData([]));
|
| - group.setBug('123').then(function() {
|
| - group.clearBug().then(function() {
|
| - assert.isUndefined(group.bug);
|
| - assert.isUndefined(group.bugLabel);
|
| - assert.notProperty(group._annotation, 'bug');
|
| - done();
|
| - });
|
| - });
|
| - });
|
| - });
|
| -
|
| - describe('annotations', function() {
|
| - it('should have sensible defaults', function() {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData([]));
|
| - assert.deepEqual(group._annotation, {});
|
| - assert.isFalse(group.isSnoozed);
|
| - assert.isUndefined(group.bug);
|
| - assert.isUndefined(group.bugLabel);
|
| - });
|
| -
|
| - it('should compute properties', function() {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData([newFailureWithAnnotation(
|
| - {snoozeTime: Date.now() + 1000 * 1000, bug: 'https://crbug.com/123'})]));
|
| - assert.isTrue(group.isSnoozed);
|
| - assert.equal(group.bug, 'https://crbug.com/123');
|
| - });
|
| -
|
| - it('should ignore snoozeTime unless it is present on all alerts', function() {
|
| - var notSnoozedMultipleAlerts = new CTFailureGroup('', new CTStepFailureGroupData([
|
| - new CTStepFailure('step', 'reason', [
|
| - {key: 'a', annotation: {snoozeTime: Date.now() + 1000 * 1000}},
|
| - {key: 'b',},
|
| - ])
|
| - ]));
|
| - var notSnoozedMultipleFailures = new CTFailureGroup('', new CTStepFailureGroupData([
|
| - new CTStepFailure('step', 'reason', [
|
| - {key: 'a', annotation: {snoozeTime: Date.now() + 1000 * 1000}},
|
| - ]),
|
| - new CTStepFailure('step', 'reason', [
|
| - {key: 'b'},
|
| - ]),
|
| - ]));
|
| - var snoozedMultipleAlerts = new CTFailureGroup('', new CTStepFailureGroupData([
|
| - new CTStepFailure('step', 'reason', [
|
| - {key: 'a', annotation: {snoozeTime: Date.now() + 1000 * 1000}},
|
| - {key: 'b', annotation: {snoozeTime: Date.now() + 1000 * 1000}},
|
| - ])
|
| - ]));
|
| - var snoozedMultipleFailures = new CTFailureGroup('', new CTStepFailureGroupData([
|
| - new CTStepFailure('step', 'reason', [
|
| - {key: 'a', annotation: {snoozeTime: Date.now() + 1000 * 1000}},
|
| - ]),
|
| - new CTStepFailure('step', 'reason', [
|
| - {key: 'b', annotation: {snoozeTime: Date.now() + 1000 * 1000}},
|
| - ]),
|
| - ]));
|
| - assert.isFalse(notSnoozedMultipleAlerts.isSnoozed);
|
| - assert.isFalse(notSnoozedMultipleFailures.isSnoozed);
|
| - assert.isTrue(snoozedMultipleAlerts.isSnoozed);
|
| - assert.isTrue(snoozedMultipleFailures.isSnoozed);
|
| - });
|
| -
|
| - it('should use the earliest snoozeTime of all alerts', function() {
|
| - var timeFuture = Date.now() + 1000 * 1000;
|
| - var timePast = Date.now() - 1000 * 1000;
|
| -
|
| - var notSnoozed = new CTFailureGroup('', new CTStepFailureGroupData([
|
| - new CTStepFailure('step', 'reason', [
|
| - {key: 'a', annotation: {snoozeTime: timeFuture}},
|
| - {key: 'b', annotation: {snoozeTime: timePast}},
|
| - ])
|
| - ]));
|
| -
|
| - assert.isFalse(notSnoozed.isSnoozed);
|
| - });
|
| -
|
| - it('should be persisted', function(done) {
|
| - var group = new CTFailureGroup('', new CTStepFailureGroupData(
|
| - [newFailureWithAnnotation(), newFailureWithAnnotation()]));
|
| - group.snoozeUntil(123).then(function() {
|
| - group.setBug('456').then(function() {
|
| - CTFailureGroup.fetchAnnotations().then(function(annotations) {
|
| - assert.deepEqual(annotations[group.data.failures[0].keys()[0]], {snoozeTime: 123, bug: 'https://crbug.com/456'});
|
| - assert.deepEqual(annotations[group.data.failures[1].keys()[0]], {snoozeTime: 123, bug: 'https://crbug.com/456'});
|
| - done();
|
| - });
|
| - });
|
| - });
|
| - });
|
| - });
|
| -});
|
| -
|
| -})()
|
| -</script>
|
|
|