go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/analysis/frontend/ui/src/testing_tools/libs/render_tab.tsx (about)

     1  // Copyright 2022 The LUCI Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  /* eslint-disable valid-jsdoc */
    15  
    16  import TabContext from '@mui/lab/TabContext';
    17  import { renderWithRouterAndClient } from './mock_router';
    18  
    19  /**
    20   * Renders an MUI tab in a tab context, with mock router and query client.
    21   *
    22   * @param ui The UI component to render.
    23   * @param value The name of the tab to display.
    24   * @param route The route that the current component is at, defaults to '/'.
    25   * @param routeDefinition The definition of the current route,
    26   *                        useful for getting route params.
    27   * @return The render result.
    28   */
    29  export const renderTabWithRouterAndClient = (
    30      ui: React.ReactElement,
    31      value = 'test',
    32      route = '/',
    33      routeDefinition = '',
    34  ) => {
    35    const tabContext = (
    36      <TabContext value={value}>
    37        {ui}
    38      </TabContext>
    39    );
    40    return renderWithRouterAndClient(tabContext, route, routeDefinition);
    41  };