Repository: flutter/flutter
File: packages/flutter/test/material/tabs_test.dart (Dart)

Code before:
      tabBarBox,
      paints..line(
        color: indicatorColor,
        strokeWidth: indicatorWeight,
        p1: Offset(indicatorLeft, indicatorY),
        p2: Offset(indicatorRight, indicatorY),
      ),
    );

    // Select tab 3
    controller.index = 3;
    await tester.pumpAndSettle();

    indicatorLeft = 600.0 + padLeft + indicatorWeight / 2.0;
    indicatorRight = 800.0 - (padRight + indicatorWeight / 2.0);

    expect(
      tabBarBox,
      paints..line(
        color: indicatorColor,
        strokeWidth: indicatorWeight,
        p1: Offset(indicatorLeft, indicatorY),
        p2: Offset(indicatorRight, indicatorY),
      ),
    );
  });

  testWidgets('TabBar with indicatorWeight, indicatorPadding (RTL)', (WidgetTester tester) async {
    const indicatorColor = Color(0xFF00FF00);
    const indicatorWeight = 8.0;
    const padLeft = 8.0;
    const padRight = 4.0;

    final tabs = List<Widget>.generate(4, (int index) {
      return Tab(text: 'Tab $index');
    });

    final TabController controller = createTabController(
      vsync: const TestVSync(),
      length: tabs.length,
    );

    await tester.pumpWidget(
      boilerplate(
        useMaterial3: false,
        textDirection: TextDirection.rtl,
        child: Container(
          alignment: Alignment.topLeft,
          child: TabBar(
            indicatorWeight: indicatorWeight,
            indicatorColor: indicatorColor,

Review comment (suggestion):
Can you also check a case when hovering over the tabbar to make the scrollbar visible? I added one [here](https://github.com/flutter/flutter/pull/180120/changes#diff-4df0ac240ada8b57bf4ca7a48a0c64f3fa8efefcfb4618abd72d7b51a8fe06a6R9606)

Code after:
      return Tab(text: 'TAB #$index');
    });

    final TabController tabBarController = createTabController(
      vsync: const TestVSync(),
      length: tabs.length,
      initialIndex: tabs.length - 1,
    );
    final tabScrollController = TabBarScrollController();
    addTearDown(tabScrollController.dispose);

    await tester.pumpWidget(
      boilerplate(
        child: RawScrollbar(
          controller: tabScrollController,
          child: TabBar(
            isScrollable: true,
            controller: tabBarController,
            scrollController: tabScrollController,
            tabs: tabs,
          ),
        ),
      ),
    );

    expect(tester.takeException(), isNull);
  });

  // Regression test for https://github.com/flutter/flutter/issues/124608
  testWidgets('TabBar can show scrollbar on hover', (WidgetTester tester) async {
    final tabs = List<Tab>.generate(6, (int index) {
      return Tab(text: 'TAB #$index');
    });

    final TabController tabBarController = createTabController(
      vsync: const TestVSync(),
      length: tabs.length,
      initialIndex: tabs.length - 1,
    );
    final tabScrollController = TabBarScrollController();
    addTearDown(tabScrollController.dispose);

    await tester.pumpWidget(
      boilerplate(
        child: RawScrollbar(
          controller: tabScrollController,
          child: TabBar(
            isScrollable: true,
            controller: tabBarController,
            scrollController: tabScrollController,
            tabs: tabs,