Files
apidash/test/widgets/button_form_data_file_test.dart
2024-08-03 17:33:18 +05:30

72 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:apidash/consts.dart';
import 'package:apidash/widgets/button_form_data_file.dart';
void main() {
testWidgets('Testing FormDataFileButton for default label',
(WidgetTester tester) async {
await tester.pumpWidget(
const MaterialApp(
home: Scaffold(
body: FormDataFileButton(),
),
),
);
final icon = find.byIcon(Icons.snippet_folder_rounded);
Finder button = find.ancestor(
of: icon,
matching: find.byWidgetPredicate((widget) => widget is ElevatedButton));
expect(button, findsOneWidget);
expect(find.text(kLabelSelectFile), findsOneWidget);
});
testWidgets('Testing FormDataFileButton with provided label',
(WidgetTester tester) async {
const testValue = 'test_file.txt';
await tester.pumpWidget(
const MaterialApp(
home: Scaffold(
body: FormDataFileButton(initialValue: testValue),
),
),
);
final icon = find.byIcon(Icons.snippet_folder_rounded);
Finder button = find.ancestor(
of: icon,
matching: find.byWidgetPredicate((widget) => widget is ElevatedButton));
expect(button, findsOneWidget);
expect(find.text(testValue), findsOneWidget);
});
testWidgets('Testing FormDataFileButton triggers onPressed callback',
(WidgetTester tester) async {
bool pressed = false;
await tester.pumpWidget(
MaterialApp(
home: Scaffold(
body: FormDataFileButton(
onPressed: () {
pressed = true;
},
),
),
),
);
final icon = find.byIcon(Icons.snippet_folder_rounded);
Finder button = find.ancestor(
of: icon,
matching: find.byWidgetPredicate((widget) => widget is ElevatedButton));
await tester.tap(button);
await tester.pump();
expect(pressed, isTrue);
});
}