Restored tests

This commit is contained in:
Gianfranco Gasbarri 2021-05-02 22:41:02 +01:00
parent 096855bb45
commit 77b910c70f
14 changed files with 77 additions and 78 deletions

View File

@ -442,7 +442,7 @@ class _AppBottomBarState extends State<AppBottomBar> {
), ),
if (widget.statuses.isNotEmpty) if (widget.statuses.isNotEmpty)
IconButton( IconButton(
tooltip: localization.filter, tooltip: localization.status,
icon: Icon(Icons.filter), icon: Icon(Icons.filter),
onPressed: _showFilterStatusSheet, onPressed: _showFilterStatusSheet,
color: store.state color: store.state
@ -453,7 +453,7 @@ class _AppBottomBarState extends State<AppBottomBar> {
), ),
if (widget.customValues1.isNotEmpty) if (widget.customValues1.isNotEmpty)
IconButton( IconButton(
tooltip: localization.filter, tooltip: localization.filteredBy,
icon: Icon(Icons.looks_one), icon: Icon(Icons.looks_one),
onPressed: _showFilterCustom1Sheet, onPressed: _showFilterCustom1Sheet,
color: store.state color: store.state
@ -464,7 +464,7 @@ class _AppBottomBarState extends State<AppBottomBar> {
), ),
if (widget.customValues2.isNotEmpty) if (widget.customValues2.isNotEmpty)
IconButton( IconButton(
tooltip: localization.filter, tooltip: localization.filteredBy,
icon: Icon(Icons.looks_two), icon: Icon(Icons.looks_two),
onPressed: _showFilterCustom2Sheet, onPressed: _showFilterCustom2Sheet,
color: store.state color: store.state
@ -475,7 +475,7 @@ class _AppBottomBarState extends State<AppBottomBar> {
), ),
if (widget.customValues3.isNotEmpty) if (widget.customValues3.isNotEmpty)
IconButton( IconButton(
tooltip: localization.filter, tooltip: localization.filteredBy,
icon: Icon(Icons.looks_3), icon: Icon(Icons.looks_3),
onPressed: _showFilterCustom3Sheet, onPressed: _showFilterCustom3Sheet,
color: store.state color: store.state
@ -486,7 +486,7 @@ class _AppBottomBarState extends State<AppBottomBar> {
), ),
if (widget.customValues4.isNotEmpty) if (widget.customValues4.isNotEmpty)
IconButton( IconButton(
tooltip: localization.filter, tooltip: localization.filteredBy,
icon: Icon(Icons.looks_4), icon: Icon(Icons.looks_4),
onPressed: _showFilterCustom4Sheet, onPressed: _showFilterCustom4Sheet,
color: store.state color: store.state

View File

@ -128,6 +128,7 @@ class VendorEditDetailsState extends State<VendorEditDetails> {
FormCard( FormCard(
children: <Widget>[ children: <Widget>[
DecoratedFormField( DecoratedFormField(
formKey: ValueKey(localization.name),
autofocus: true, autofocus: true,
controller: _nameController, controller: _nameController,
validator: (String val) => val == null || val.isEmpty validator: (String val) => val == null || val.isEmpty

View File

@ -1,17 +1,15 @@
/*
import 'clients_it_test.dart' as clients; import 'clients_it_test.dart' as clients;
import 'invoices_it_test.dart' as invoices; import 'invoices_it_test.dart' as invoices;
import 'login_it_test.dart' as login; import 'login_it_test.dart' as login;
import 'products_it_test.dart' as products; import 'products_it_test.dart' as products;
//import 'quotes_it_test.dart' as quotes; import 'quotes_it_test.dart' as quotes;
//import 'vendors_it_test.dart' as vendors; import 'vendors_it_test.dart' as vendors;
void main() { void main() {
login.main(); login.main();
products.runTestSuite(batchMode: true); //products.runTestSuite(batchMode: true);
clients.runTestSuite(batchMode: true); clients.runTestSuite(batchMode: true);
invoices.runTestSuite(batchMode: true); //invoices.runTestSuite(batchMode: true);
//quotes.runTestSuite(batchMode: true); //quotes.runTestSuite(batchMode: true);
//vendors.runTestSuite(batchMode: true); vendors.runTestSuite(batchMode: true);
} }
*/

View File

@ -98,7 +98,7 @@ void runTestSuite({bool batchMode = false}) {
test('Archive/delete client test', () async { test('Archive/delete client test', () async {
await testArchiveAndDelete( await testArchiveAndDelete(
driver: driver, driver: driver,
name: updatedName, rowText: updatedName,
archivedMessage: localization.archivedClient, archivedMessage: localization.archivedClient,
deletedMessage: localization.deletedClient, deletedMessage: localization.deletedClient,
restoredMessage: localization.restoredClient); restoredMessage: localization.restoredClient);

View File

@ -1,4 +1,3 @@
/*
import 'package:flutter_driver/driver_extension.dart'; import 'package:flutter_driver/driver_extension.dart';
import 'package:invoiceninja_flutter/main.dart' as app; import 'package:invoiceninja_flutter/main.dart' as app;
@ -7,4 +6,3 @@ void main() {
enableFlutterDriverExtension(); enableFlutterDriverExtension();
app.main(isTesting: true); app.main(isTesting: true);
} }
*/

View File

@ -1,4 +1,3 @@
/*
import 'package:faker/faker.dart'; import 'package:faker/faker.dart';
import 'package:flutter_driver/flutter_driver.dart'; import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
@ -70,7 +69,6 @@ void runTestSuite({bool batchMode = false}) {
// Create a new invoice // Create a new invoice
test('Add a new invoice', () async { test('Add a new invoice', () async {
print('Tap new invoice'); print('Tap new invoice');
await driver.tap(find.byTooltip(localization.newInvoice)); await driver.tap(find.byTooltip(localization.newInvoice));
@ -106,7 +104,7 @@ void runTestSuite({bool batchMode = false}) {
// Await for Debouncer // Await for Debouncer
await Future<dynamic>.delayed(Duration(milliseconds: 500)); await Future<dynamic>.delayed(Duration(milliseconds: 500));
await driver.tap(find.text(localization.done)); await driver.tap(find.text(localization.done.toUpperCase()));
await driver.tap(find.text(localization.details)); await driver.tap(find.text(localization.details));
} else { } else {
@ -151,6 +149,7 @@ void runTestSuite({bool batchMode = false}) {
test('Archive/delete invoice test', () async { test('Archive/delete invoice test', () async {
await testArchiveAndDelete( await testArchiveAndDelete(
driver: driver, driver: driver,
rowText: clientName,
archivedMessage: localization.archivedInvoice, archivedMessage: localization.archivedInvoice,
deletedMessage: localization.deletedInvoice, deletedMessage: localization.deletedInvoice,
restoredMessage: localization.restoredInvoice); restoredMessage: localization.restoredInvoice);
@ -171,4 +170,3 @@ void runTestSuite({bool batchMode = false}) {
}); });
}); });
} }
*/

View File

@ -1,4 +1,3 @@
/*
// Import Flutter Driver API // Import Flutter Driver API
import 'dart:async'; import 'dart:async';
@ -58,4 +57,3 @@ void main() {
}); });
}); });
} }
*/

View File

@ -1,4 +1,3 @@
/*
import 'package:flutter_driver/driver_extension.dart'; import 'package:flutter_driver/driver_extension.dart';
import 'package:invoiceninja_flutter/main.dart' as app; import 'package:invoiceninja_flutter/main.dart' as app;
@ -7,4 +6,3 @@ void main() {
enableFlutterDriverExtension(); enableFlutterDriverExtension();
app.main(isTesting: true); app.main(isTesting: true);
} }
*/

View File

@ -1,4 +1,3 @@
/*
import 'package:faker/faker.dart'; import 'package:faker/faker.dart';
import 'package:flutter_driver/flutter_driver.dart'; import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
@ -110,9 +109,10 @@ void runTestSuite({bool batchMode = false}) {
}); });
// Archive the edited product // Archive the edited product
test('Archieve/delete product test', () async { test('Archive/delete product test', () async {
await testArchiveAndDelete( await testArchiveAndDelete(
driver: driver, driver: driver,
rowText: updatedProductKey,
archivedMessage: localization.archivedProduct, archivedMessage: localization.archivedProduct,
deletedMessage: localization.deletedProduct, deletedMessage: localization.deletedProduct,
restoredMessage: localization.restoredProduct); restoredMessage: localization.restoredProduct);
@ -123,4 +123,3 @@ void runTestSuite({bool batchMode = false}) {
}); });
}); });
} }
*/

View File

@ -1,4 +1,3 @@
/*
import 'package:flutter_driver/driver_extension.dart'; import 'package:flutter_driver/driver_extension.dart';
import 'package:invoiceninja_flutter/main.dart' as app; import 'package:invoiceninja_flutter/main.dart' as app;
@ -7,4 +6,3 @@ void main() {
enableFlutterDriverExtension(); enableFlutterDriverExtension();
app.main(isTesting: true); app.main(isTesting: true);
} }
*/

View File

@ -1,4 +1,3 @@
/*
import 'package:faker/faker.dart'; import 'package:faker/faker.dart';
import 'package:flutter_driver/flutter_driver.dart'; import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
@ -19,6 +18,8 @@ void runTestSuite({bool batchMode = false}) {
final poNumber = final poNumber =
faker.randomGenerator.integer(999999, min: 100000).toString(); faker.randomGenerator.integer(999999, min: 100000).toString();
final productKey = makeUnique(faker.food.cuisine()); final productKey = makeUnique(faker.food.cuisine());
final clientKey = faker.randomGenerator.integer(999999, min: 100000)
.toString();
final description = faker.lorem.sentences(5).toString(); final description = faker.lorem.sentences(5).toString();
final cost = final cost =
faker.randomGenerator.decimal(min: 50, scale: 10).toStringAsFixed(2); faker.randomGenerator.decimal(min: 50, scale: 10).toStringAsFixed(2);
@ -72,15 +73,25 @@ void runTestSuite({bool batchMode = false}) {
await driver.tap(find.byTooltip(localization.newQuote)); await driver.tap(find.byTooltip(localization.newQuote));
print('Create new client: $clientName'); print('Create new client: $clientName');
await driver.tap(find.byValueKey(localization.client)); if (await isMobile(driver)) {
await driver.tap(find.byValueKey(Keys.clientPickerEmptyKey));
}
await driver.tap(find.byTooltip(localization.createNew)); await driver.tap(find.byTooltip(localization.createNew));
print('Fill the client form'); print('Fill the client form');
await fillTextField( await fillTextFields(driver, <String, String>{
driver: driver, field: localization.name, value: clientName); localization.name: clientName,
localization.idNumber: clientKey
});
// Await for Debouncer
await Future<dynamic>.delayed(Duration(milliseconds: 500));
await driver.tap(find.text(localization.save)); await driver.tap(find.text(localization.save));
// Await for Screen change
await driver.waitFor(find.text(localization.newQuote));
print('Fill the quote form'); print('Fill the quote form');
if(await isMobile(driver)) {
await driver.tap(find.byTooltip(localization.addItem)); await driver.tap(find.byTooltip(localization.addItem));
await driver.tap(find.byTooltip(localization.createNew)); await driver.tap(find.byTooltip(localization.createNew));
@ -91,9 +102,20 @@ void runTestSuite({bool batchMode = false}) {
localization.quantity: '1', localization.quantity: '1',
}); });
await driver.tap(find.text(localization.done)); // Await for Debouncer
await Future<dynamic>.delayed(Duration(milliseconds: 500));
await driver.tap(find.text(localization.done.toUpperCase()));
await driver.tap(find.text(localization.details)); await driver.tap(find.text(localization.details));
} else {
await fillTextFields(driver, <String, String>{
getLineItemKey('name', 0): productKey,
getLineItemKey('description', 0): description,
getLineItemKey('cost', 0): cost,
getLineItemKey('quantity', 0): '1'
});
}
await fillAndSaveForm(driver, <String, String>{ await fillAndSaveForm(driver, <String, String>{
localization.poNumber: poNumber, localization.poNumber: poNumber,
}); });
@ -127,21 +149,10 @@ void runTestSuite({bool batchMode = false}) {
test('Archive/delete quote test', () async { test('Archive/delete quote test', () async {
await testArchiveAndDelete( await testArchiveAndDelete(
driver: driver, driver: driver,
rowText: clientName,
archivedMessage: localization.archivedQuote, archivedMessage: localization.archivedQuote,
deletedMessage: localization.deletedQuote, deletedMessage: localization.deletedQuote,
restoredMessage: localization.restoredQuote); restoredMessage: localization.restoredQuote);
}); });
// Convert to invoice
test('Convert to invoice', () async {
await selectAction(driver, localization.convert);
await driver.waitFor(find.byType('InvoiceView'));
if (await isMobile(driver)) {
await driver.tap(find.pageBack());
await driver.tap(find.pageBack());
}
});
}); });
} }
*/

View File

@ -148,27 +148,28 @@ Future<void> fillAndSaveForm(FlutterDriver driver, Map<String, dynamic> values,
Future<void> testArchiveAndDelete( Future<void> testArchiveAndDelete(
{FlutterDriver driver, {FlutterDriver driver,
String archivedMessage, String archivedMessage,
String name, String rowText,
String deletedMessage, String deletedMessage,
String restoredMessage}) async { String restoredMessage}) async {
final localization = TestLocalization('en'); final localization = TestLocalization('en');
final mobile = await isMobile(driver); final mobile = await isMobile(driver);
if (!mobile) {
// Show archived and deleted entries on tablet/web
await driver.tap(find.byTooltip(localization.filter));
await driver.tap(find.text(localization.archived));
await driver.tap(find.text(localization.deleted));
await driver.tap(find.byTooltip(localization.filter));
}
print('Archive record'); print('Archive record');
await selectAction(driver, localization.archive); await selectAction(driver, localization.archive);
await driver.waitFor(find.text(archivedMessage)); await driver.waitFor(find.text(archivedMessage));
//await driver.waitFor(find.text(localization.archived)); //await driver.waitFor(find.text(localization.archived));
print('Show archived/deleted records');
await driver.tap(find.byTooltip(localization.filter));
await driver.tap(find.text(localization.archived));
await driver.tap(find.text(localization.deleted));
await driver.tap(find.byTooltip(localization.filter));
print('Restore record'); print('Restore record');
await driver.tap(find.text(name)); if (mobile)
await driver.scrollUntilVisible(find.byType('ListView'), find.text(rowText),
dyScroll: -300);
await driver.tap(find.text(rowText));
await selectAction(driver, localization.restore); await selectAction(driver, localization.restore);
await driver.waitFor(find.text(restoredMessage)); await driver.waitFor(find.text(restoredMessage));
await driver.waitForAbsent(find.byType('Snackbar')); await driver.waitForAbsent(find.byType('Snackbar'));
@ -179,7 +180,10 @@ Future<void> testArchiveAndDelete(
//await driver.waitFor(find.text(localization.deleted)); //await driver.waitFor(find.text(localization.deleted));
print('Restore record'); print('Restore record');
await driver.tap(find.text(name)); if (mobile)
await driver.scrollUntilVisible(find.byType('ListView'), find.text(rowText),
dyScroll: -300);
await driver.tap(find.text(rowText));
await selectAction(driver, localization.restore); await selectAction(driver, localization.restore);
await driver.waitFor(find.text(restoredMessage)); await driver.waitFor(find.text(restoredMessage));
await driver.waitForAbsent(find.byType('Snackbar')); await driver.waitForAbsent(find.byType('Snackbar'));

View File

@ -1,4 +1,3 @@
/*
import 'package:flutter_driver/driver_extension.dart'; import 'package:flutter_driver/driver_extension.dart';
import 'package:invoiceninja_flutter/main.dart' as app; import 'package:invoiceninja_flutter/main.dart' as app;
@ -7,4 +6,3 @@ void main() {
enableFlutterDriverExtension(); enableFlutterDriverExtension();
app.main(isTesting: true); app.main(isTesting: true);
} }
*/

View File

@ -1,4 +1,3 @@
/*
import 'package:faker/faker.dart'; import 'package:faker/faker.dart';
import 'package:flutter_driver/flutter_driver.dart'; import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart'; import 'package:test/test.dart';
@ -68,7 +67,6 @@ void runTestSuite({bool batchMode = false}) {
await fillAndSaveForm(driver, <String, dynamic>{ await fillAndSaveForm(driver, <String, dynamic>{
localization.name: name, localization.name: name,
}); });
print('Form filled');
if (await isMobile(driver)) { if (await isMobile(driver)) {
print('Click back'); print('Click back');
@ -99,6 +97,7 @@ void runTestSuite({bool batchMode = false}) {
test('Archieve/delete vendor test', () async { test('Archieve/delete vendor test', () async {
await testArchiveAndDelete( await testArchiveAndDelete(
driver: driver, driver: driver,
rowText: updatedName,
archivedMessage: localization.archivedVendor, archivedMessage: localization.archivedVendor,
deletedMessage: localization.deletedVendor, deletedMessage: localization.deletedVendor,
restoredMessage: localization.restoredVendor); restoredMessage: localization.restoredVendor);
@ -109,4 +108,3 @@ void runTestSuite({bool batchMode = false}) {
}); });
}); });
} }
*/