blob: ac052b5fd3b58707caa100c296841fd31e387a88 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2017 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.
-->
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<title>cr-build-block tests</title>
<script src="/node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"></script>
<script src="../node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
<script src="../bower_components/web-component-tester/browser.js"></script>
<test-fixture id="basic">
<template>
<cr-build-block></cr-build-block>
</template>
</test-fixture>
<script type="module">
import './common-test-setup.js';
import {deepFreeze} from './test-util.js';
import '../src/main/resources/static/cr-build-block.js';
suite('cr-build-block basic tests', () => {
const bb = window.buildbucket;
let element;
let sandbox;
setup(() => {
element = fixture('basic');
sandbox = sinon.sandbox.create();
});
teardown(() => {
sandbox.restore();
});
const builds = deepFreeze([
{
status: 'SUCCESS',
builder: {
project: 'chromium',
bucket: 'try',
builder: 'linux-rel',
},
tags: [
{key: 'buildset', value: 'xxx'},
],
},
{
status: 'FAILURE',
critical: 'NO',
builder: {
project: 'chromium',
bucket: 'try',
builder: 'linux-rel',
},
},
{
status: 'SUCCESS',
critical: 'YES',
builder: {
project: 'chromium',
bucket: 'try',
builder: 'mac-rel',
},
tags: [
{key: 'hide-in-gerrit', value: 'true'},
{key: 'buildset', value: 'xxx'},
],
},
{
status: 'SUCCESS',
critical: 'YES',
builder: {
project: 'chromeos',
bucket: 'cq',
builder: 'xuilder',
},
tags: [
{key: 'hide-in-gerrit', value: 'true'},
{key: 'buildset', value: 'xxx'},
],
},
{
status: 'SUCCESS',
critical: 'YES',
builder: {
project: 'chromeos',
bucket: 'cq',
builder: 'xuilder',
},
tags: [
{key: 'buildset', value: 'xxx'},
{key: 'hide-in-gerrit', value: 'true'},
],
},
{
status: 'SUCCESS',
critical: 'YES',
builder: {
project: 'chromeos',
bucket: 'cq',
builder: 'zuilder',
},
tags: [
{key: 'buildset', value: 'xxx'},
],
},
{
status: 'SUCCESS',
critical: 'YES',
builder: {
project: 'chromeos',
bucket: 'cq',
builder: 'zuilder',
},
tags: [
{key: 'buildset', value: 'xxx'},
{key: 'hide-in-gerrit', value: 'true'},
],
},
]);
test('groupBuilds buckets builds by builder', () => {
const groups = element.groupBuilds(builds);
assert.deepEqual(groups, [
{
builder: 'linux-rel',
builds: [builds[1], builds[0]],
},
{
builder: 'mac-rel',
builds: [builds[2]],
},
{
builder: 'xuilder',
builds: [builds[4], builds[3]],
},
{
builder: 'zuilder',
builds: [builds[6], builds[5]],
},
]);
});
test('_getGroupClass makes basic class', () => {
const groups = element.groupBuilds(builds);
// linux-rel, no hide in gerrit
assert.deepEqual(element._getGroupClass(groups[0]), '');
});
test('_getGroupClass honors hide-in-gerrit', () => {
const groups = element.groupBuilds(builds);
// mac-rel, has hide in gerrit
assert.deepEqual(element._getGroupClass(groups[1]), 'irrelevant');
});
test('_getGroupClass honors hide-in-gerrit multiple builds', () => {
const groups = element.groupBuilds(builds);
// xuilder, all hide in gerrit
assert.deepEqual(element._getGroupClass(groups[2]), 'irrelevant');
});
test('_getGroupClass ignores hide-in-gerrit mixed builds', () => {
const groups = element.groupBuilds(builds);
// zuilder, mixed hide in gerrit
assert.deepEqual(element._getGroupClass(groups[3]), '');
});
test('_getBuildClass makes basic class', () => {
assert.deepEqual(element._getBuildClass(builds[0]), 'success');
});
test('_getBuildClass identifies non-critical', () => {
assert.deepEqual(element._getBuildClass(builds[1]), 'failure non-critical');
});
test('_getBuildClass honors hide-in-gerrit', () => {
assert.deepEqual(element._getBuildClass(builds[2]), 'success irrelevant');
});
});
</script>