Files
clide/test/widgets/clide_pane_chrome_test.dart
T
jpmschweitzerandClaude Opus 4.6 46329700d5 dissolve app/ into repo root (D-056)
Single Flutter package at the repo root. All code, tests, assets,
and platform directories moved from app/ to root. Package renamed
from clide_app to clide — all imports rewritten. Merged pubspec
combines core (ffi) and app (flutter, yaml, xterm) dependencies.
Makefile simplified: no APP_PRESENT conditionals, no cd, no daemon
lifecycle. 317 tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 00:37:20 +02:00

66 lines
1.8 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:clide/widgets/widgets.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import '../helpers/kernel_fixture.dart';
import '../helpers/widget_harness.dart';
void main() {
group('ClidePaneChrome', () {
late KernelFixture f;
setUp(() async {
f = await KernelFixture.create();
});
tearDown(() => f.dispose());
testWidgets('renders title + subtitle', (tester) async {
await tester.pumpWidget(
harness(
f,
const ClidePaneChrome(
title: 'terminal — ~/clide',
subtitle: 'bash · 80×24',
child: SizedBox.shrink(),
),
),
);
expect(find.text('terminal — ~/clide'), findsOneWidget);
expect(find.text('bash · 80×24'), findsOneWidget);
});
testWidgets('no close button when onClose is null', (tester) async {
await tester.pumpWidget(
harness(
f,
const ClidePaneChrome(
title: 'primary claude',
child: SizedBox.shrink(),
),
),
);
final handle = tester.ensureSemantics();
expect(find.bySemanticsLabel('Close pane'), findsNothing);
handle.dispose();
});
testWidgets('close button invokes onClose when present', (tester) async {
var pressed = false;
await tester.pumpWidget(
harness(
f,
ClidePaneChrome(
title: 'terminal',
onClose: () => pressed = true,
child: const SizedBox.shrink(),
),
),
);
final handle = tester.ensureSemantics();
expect(find.bySemanticsLabel('Close pane'), findsOneWidget);
await tester.tap(find.bySemanticsLabel('Close pane'));
expect(pressed, isTrue);
handle.dispose();
});
});
}