github.com/GoogleCloudPlatform/testgrid@v0.0.174/web/stories/tab-summary.stories.ts (about) 1 import { html, TemplateResult } from 'lit'; 2 import '../src/tab-summary.js'; 3 import { FailingTestInfo, FailuresSummaryInfo, FailureStats, FlakyTestInfo, HealthinessStats, HealthinessSummaryInfo, TabSummaryInfo } from '../src/testgrid-dashboard-summary'; 4 5 export default { 6 title: 'Tab summary', 7 component: 'tab-summary', 8 }; 9 10 interface Story<T> { 11 (args: T): TemplateResult; 12 args?: T; 13 } 14 15 interface Args { 16 icon: string; 17 overallStatus: string; 18 } 19 20 const Template: Story<Args> = ({ 21 icon = 'done', 22 overallStatus = 'PASSING', 23 }: 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 54 const tsi: TabSummaryInfo = { 55 icon, 56 name: 'TEST', 57 overallStatus, 58 detailedStatusMsg: 'Very detailed message', 59 lastRunTimestamp: 'yesterday', 60 lastUpdateTimestamp: 'today', 61 latestGreenBuild: 'HULK!', 62 dashboardName: 'TEST1', 63 failuresSummary: failuresSummary, 64 healthinessSummary: healthinessSummary, 65 }; 66 67 return html`<link 68 rel="stylesheet" 69 href="https://fonts.googleapis.com/icon?family=Material+Icons" 70 /> 71 <tab-summary .info=${tsi}></tab-summary>`; 72 }; 73 74 export const Passing = Template.bind({}); 75 76 export const Flaky = Template.bind({}); 77 Flaky.args = { icon: 'remove_circle_outline', overallStatus: 'FLAKY' }; 78 79 export const Failing = Template.bind({}); 80 Failing.args = { icon: 'warning', overallStatus: 'FAILING' }; 81 82 export const Stale = Template.bind({}); 83 Stale.args = { icon: 'error_outline', overallStatus: 'STALE' }; 84 85 export const Broken = Template.bind({}); 86 Broken.args = { icon: 'broken_image', overallStatus: 'BROKEN' }; 87 88 export const Pending = Template.bind({}); 89 Pending.args = { icon: 'schedule', overallStatus: 'PENDING' }; 90 91 export const Acceptable = Template.bind({}); 92 Acceptable.args = { icon: 'add_circle_outline', overallStatus: 'ACCEPTABLE' };