Skip to content

Commit f290e49

Browse files
Merge pull request #1227 from bryan-lou/bryanlou-dev-1
Add tests and stories for dashboard tab test failure alert/health summary
2 parents 1e51784 + 5eab2b1 commit f290e49

File tree

3 files changed

+50
-10
lines changed

3 files changed

+50
-10
lines changed

web/src/testgrid-dashboard-summary.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,40 +19,40 @@ export interface TabSummaryInfo {
1919
healthinessSummary?: HealthinessSummaryInfo;
2020
}
2121

22-
interface FailuresSummaryInfo {
22+
export interface FailuresSummaryInfo {
2323
topFailingTests: FailingTestInfo[];
2424
failureStats: FailureStats;
2525
}
2626

27-
interface FailingTestInfo {
27+
export interface FailingTestInfo {
2828
displayName: string;
2929
failCount: number;
3030
passTimestamp: string;
3131
failTimestamp: string;
32-
healthinessSummary?: HealthinessSummaryInfo;
3332
}
3433

35-
interface HealthinessSummaryInfo {
34+
export interface FailureStats {
35+
numFailingTests: number;
36+
}
37+
38+
export interface HealthinessSummaryInfo {
3639
topFlakyTests: FlakyTestInfo[];
3740
healthinessStats: HealthinessStats;
3841
}
3942

40-
interface FlakyTestInfo {
43+
export interface FlakyTestInfo {
4144
displayName: string;
4245
flakiness: number;
4346
}
4447

45-
interface HealthinessStats {
48+
export interface HealthinessStats {
4649
startTimestamp: string;
4750
endTimestamp: string;
4851
numFlakyTests: number;
4952
averageFlakiness: number;
5053
previousFlakiness: number;
5154
}
5255

53-
interface FailureStats {
54-
numFailingTests: number;
55-
}
5656
// TODO: define in a shared file (dashboard group also uses this)
5757
export const TabStatusIcon = new Map<string, string>([
5858
['PASSING', 'done'],

web/stories/tab-summary.stories.ts

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { html, TemplateResult } from 'lit';
22
import '../src/tab-summary.js';
3-
import { TabSummaryInfo } from '../src/testgrid-dashboard-summary';
3+
import { FailingTestInfo, FailuresSummaryInfo, FailureStats, FlakyTestInfo, HealthinessStats, HealthinessSummaryInfo, TabSummaryInfo } from '../src/testgrid-dashboard-summary';
44

55
export default {
66
title: 'Tab summary',
@@ -21,6 +21,36 @@ const Template: Story<Args> = ({
2121
icon = 'done',
2222
overallStatus = 'PASSING',
2323
}: Args) => {
24+
const failuresSummary = {} as FailuresSummaryInfo
25+
const failureStats: FailureStats = {
26+
numFailingTests: 1
27+
}
28+
const FailingTest = {
29+
displayName: "TEST0",
30+
failCount: 1,
31+
passTimestamp: "today",
32+
failTimestamp: "today",
33+
} as FailingTestInfo
34+
35+
failuresSummary.failureStats = failureStats
36+
failuresSummary.topFailingTests = [FailingTest];
37+
38+
const healthinessSummary = {} as HealthinessSummaryInfo
39+
const healthinessStats: HealthinessStats = {
40+
startTimestamp: "today",
41+
endTimestamp: "today",
42+
numFlakyTests: 1,
43+
averageFlakiness: 0,
44+
previousFlakiness: 100,
45+
}
46+
const FlakyTest = {
47+
displayName: "TEST1",
48+
flakiness: 0,
49+
} as FlakyTestInfo
50+
51+
healthinessSummary.healthinessStats = healthinessStats
52+
healthinessSummary.topFlakyTests = [FlakyTest]
53+
2454
const tsi: TabSummaryInfo = {
2555
icon,
2656
name: 'TEST',
@@ -30,6 +60,8 @@ const Template: Story<Args> = ({
3060
lastUpdateTimestamp: 'today',
3161
latestGreenBuild: 'HULK!',
3262
dashboardName: 'TEST1',
63+
failuresSummary: failuresSummary,
64+
healthinessSummary: healthinessSummary,
3365
};
3466

3567
return html`<link

web/test/testgrid-dashboard-summary.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,13 @@ describe('Testgrid Dashboard Summary page', () => {
3333
);
3434

3535
expect(element.tabSummariesInfo.length).to.equal(4);
36+
expect(element.tabSummariesInfo[0].name).to.equal("fake-tab-1");
37+
expect(element.tabSummariesInfo[0].overallStatus).to.equal("PASSING");
38+
expect(element.tabSummariesInfo[0].failuresSummary?.failureStats.numFailingTests).to.equal(1);
39+
expect(element.tabSummariesInfo[0].failuresSummary?.topFailingTests[0].failCount).to.equal(1);
40+
expect(element.tabSummariesInfo[0].failuresSummary?.topFailingTests[0].displayName).to.equal("fake-test-1");
41+
expect(element.tabSummariesInfo[0].healthinessSummary?.topFlakyTests[0].displayName).to.equal("fake-test-2");
42+
expect(element.tabSummariesInfo[0].healthinessSummary?.topFlakyTests[0].flakiness).to.equal(2);
43+
expect(element.tabSummariesInfo[0].healthinessSummary?.healthinessStats.numFlakyTests).to.equal(2);
3644
});
3745
});

0 commit comments

Comments
 (0)