hidayati_nur_chasanah/Test Files/guide3_2_test.dart
2024-12-31 09:56:31 +07:00

160 lines
7.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:simple_database/screens/contact_form.dart';
import 'package:simple_database/utils/contact.dart';
void main(){
Contact c = Contact(name: "Risa", email: "risa@gmail.com", number: "087654389090", company: "Polinema");
void checkOneWidget(Finder finder){
const String trimStr1 = 'zero widgets with type "';
const String trimStr2 = '" (ignoring offstage widget)';
final finderMsg =
finder.toString().replaceAll(trimStr1, '').replaceAll(trimStr2, '');
expect(finder, findsOneWidget, reason: "Problem: Widget $finderMsg not found ");
}
void checkNothing(Finder finder){
const String trimStr1 = 'exactly one widget with type "';
const String trimStr2 = '" this widget should not exist';
final finderMsg =
finder.toString().replaceAll(trimStr1, '').replaceAll(trimStr2, '');
expect(finder, findsNothing, reason: "Problem: $finderMsg not found");
}
testWidgets('UI Component-Sacffold Found', (WidgetTester tester) async{
await tester.pumpWidget(const MaterialApp(home: ContactForm()));
Finder findAppBar = find.byKey(const Key("scaffold_contactform"));
checkOneWidget(findAppBar);
});
testWidgets('UI Component-AppBar Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findAppBar = find.byKey(const Key("contact_form_appbar"));
checkOneWidget(findAppBar);
});
testWidgets('UI Component-Title AppBar Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTitleAppBar = find.byKey(const Key('title_appbar_contactform'));
checkOneWidget(findTitleAppBar);
});
//
testWidgets('UI Component-Form Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findFormWidget = find.byType(Form);
checkOneWidget(findFormWidget);
});
//
testWidgets('UI Component-ListView Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findListViewWidget = find.byKey(const Key('listview'));
checkOneWidget(findListViewWidget);
});
//
testWidgets('UI Component-TextFormField Name Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.byKey(const Key('name_textformfield'));
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-TextFormField Number Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.byKey(const Key('number_textformfield'));
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-TextFormField email Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.byKey(const Key('email_textformfield'));
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-TextFormField Company Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.byKey(const Key('company_textformfield'));
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-Label Name Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.text('Name');
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-Padding Name Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.byKey(const Key('padding_name'));
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-Padding Number Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.byKey(const Key('padding_number'));
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-Label Number Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.text('Number');
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-Label Email Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.text('Email');
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-Label Company Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.text('Company');
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-Padding email Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.byKey(const Key('padding_email'));
checkOneWidget(findTextFormField);
});
testWidgets('UI Component-padding Company Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findTextFormField = find.byKey(const Key('padding_company'));
checkOneWidget(findTextFormField);
});
//
testWidgets('TextFormField Name has data', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
String name = c.name.toString();
expect(find.widgetWithText(TextFormField, name), findsNothing, reason: "Seharusnya ada data nama $name pada form");
});
testWidgets('TextFormField Email has data', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
String email = c.email.toString();
Finder findWidgetTextEmail = find.widgetWithText(TextFormField, email);
checkOneWidget(findWidgetTextEmail);
});
testWidgets('TextFormField Company has data', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
String company = c.company.toString();
Finder findWidgetTextCompany = find.widgetWithText(TextFormField, company);
checkOneWidget(findWidgetTextCompany);
});
testWidgets('TextFormField number phone has data', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
String number = c.number.toString();
Finder findWidgetTextCompany = find.widgetWithText(TextFormField, number);
checkOneWidget(findWidgetTextCompany);
});
//
testWidgets('UI Component-ElevatedButton', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c,)));
Finder findElevatedButton = find.byKey(const Key('padding_button'));
checkOneWidget(findElevatedButton);
});
//
testWidgets('UI Component-ElevatedButton-Update Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c)));
Finder findTextUpdate = find.byKey(const Key('update_text'));
checkOneWidget(findTextUpdate);
});
testWidgets('UI Component-ElevatedButton-Add Not Found', (WidgetTester tester) async{
await tester.pumpWidget(MaterialApp(home: ContactForm(contact: c)));
Finder findTextUpdate = find.byKey(const Key('add_text'));
checkNothing(findTextUpdate);
});
}