1
0
mirror of https://github.com/foss42/apidash.git synced 2025-06-13 08:59:21 +08:00

Update BodySuccess widget and tests

This commit is contained in:
Ashita Prasad
2024-01-27 00:38:05 +05:30
parent d8736f1070
commit 7116183a9b
2 changed files with 60 additions and 37 deletions

@ -437,10 +437,8 @@ class _BodySuccessState extends State<BodySuccess> {
],
),
kVSpacer10,
Visibility(
visible: currentSeg == ResponseBodyView.preview ||
currentSeg == ResponseBodyView.none,
child: Expanded(
switch (currentSeg) {
ResponseBodyView.preview || ResponseBodyView.none => Expanded(
child: Container(
width: double.maxFinite,
padding: kP8,
@ -454,27 +452,20 @@ class _BodySuccessState extends State<BodySuccess> {
),
),
),
),
if (widget.formattedBody != null)
Visibility(
visible: currentSeg == ResponseBodyView.code,
child: Expanded(
ResponseBodyView.code => Expanded(
child: Container(
width: double.maxFinite,
padding: kP8,
decoration: textContainerdecoration,
child: CodePreviewer(
code: widget.formattedBody!,
code: widget.formattedBody ?? widget.body,
theme: codeTheme,
language: widget.highlightLanguage,
textStyle: kCodeStyle,
),
),
),
),
Visibility(
visible: currentSeg == ResponseBodyView.raw,
child: Expanded(
ResponseBodyView.raw => Expanded(
child: Container(
width: double.maxFinite,
padding: kP8,
@ -487,7 +478,7 @@ class _BodySuccessState extends State<BodySuccess> {
),
),
),
),
}
],
),
);

@ -431,7 +431,9 @@ void main() async {
expect(find.byType(Image), findsOneWidget);
});
testWidgets('Testing Body Success tap segment', (tester) async {
testWidgets(
'Testing Body Success tap segment. formattedBody is always shown in Raw',
(tester) async {
await tester.pumpWidget(
MaterialApp(
title: 'Body Success',
@ -458,7 +460,37 @@ void main() async {
await tester.tap(find.text('Raw'));
await tester.pumpAndSettle();
expect(find.text('Formatted Hello from API Dash'), findsNothing);
expect(find.text('Formatted Hello from API Dash'), findsOneWidget);
expect(find.text('Raw Hello from API Dash'), findsNothing);
});
testWidgets('Testing Body Success tap segment for formattedBody null',
(tester) async {
await tester.pumpWidget(
MaterialApp(
title: 'Body Success',
theme: kThemeDataLight,
home: Scaffold(
body: BodySuccess(
body: 'Raw Hello from API Dash',
formattedBody: null,
mediaType: MediaType("text", "csv"),
options: const [
ResponseBodyView.code,
ResponseBodyView.raw,
],
bytes: kBodyBytesJpeg,
highlightLanguage: 'txt',
),
),
),
);
await tester.pumpAndSettle();
expect(find.text('Raw Hello from API Dash'), findsOneWidget);
await tester.tap(find.text('Raw'));
await tester.pumpAndSettle();
expect(find.text('Raw Hello from API Dash'), findsOneWidget);
});
}