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' };