From 29a56200c16b62bb811dfacf9bc0f1c965f0fc1a Mon Sep 17 00:00:00 2001 From: Anmol Gupta Date: Wed, 27 Jun 2018 20:40:50 +0530 Subject: [PATCH] Refactor --- test_driver/products_it_test.dart | 89 +++++++++++++++++++------------ 1 file changed, 55 insertions(+), 34 deletions(-) diff --git a/test_driver/products_it_test.dart b/test_driver/products_it_test.dart index 434252549..a41100ccf 100644 --- a/test_driver/products_it_test.dart +++ b/test_driver/products_it_test.dart @@ -5,6 +5,27 @@ import 'package:invoiceninja/utils/keys.dart'; import '../.env.dart'; +class Constants { + static String newProductKey = 'Example Test Driver Product'; + static String newProductNotes = 'Example Test Driver Notes'; + static String newProductCost = '100.50'; + static String updatedProductKey = 'Updated Example Test Driver Product'; + static String updatedProductNotes = 'Updated Example Test Driver Notes'; + static String updatedProductCost = '200.50'; + static String saveToolTip = 'Save'; + static String backToolTip = 'Back'; + static String deleteToolTip = 'Delete'; + static String menuToolTip = 'Show menu'; + static String loginButton = 'LOGIN'; + static String dashboardScreen = 'DashboardScreen'; + static String productScreen = 'ProductScreen'; + static String snackbarProductCreated = 'Successfully created product'; + static String snackbarProductUpdated = 'Successfully updated product'; + static String snackbarProductDeleted = 'Successfully deleted product'; + static String openAppDrawer = 'Open navigation menu'; + static String appDrawerProducts = 'Products'; +} + void main() { group('PRODUCTS TEST', () { @@ -41,92 +62,92 @@ void main() { await driver.tap(find.byValueKey(LoginKeys.secretKeyString)); await driver.enterText(loginSecret); - await driver.tap(find.text('LOGIN')); + await driver.tap(find.text(Constants.loginButton)); - await driver.waitFor(find.byType('DashboardScreen')); + await driver.waitFor(find.byType(Constants.dashboardScreen)); // open the app drawer and switch to products screen // https://github.com/flutter/flutter/issues/9002[Issue still open] - Using this solution to implement it - final SerializableFinder drawerOpenButton = find.byTooltip('Open navigation menu'); + final SerializableFinder drawerOpenButton = find.byTooltip(Constants.openAppDrawer); await driver.tap(drawerOpenButton); - final SerializableFinder productsDrawerButton = find.text('Products'); + final SerializableFinder productsDrawerButton = find.text(Constants.appDrawerProducts); await driver.tap(productsDrawerButton); - await driver.waitFor(find.byType('ProductScreen')); + await driver.waitFor(find.byType(Constants.productScreen)); }); test('Add a new product', () async { await driver.tap(find.byValueKey(ProductKeys.productScreenFABKeyString)); await driver.tap(find.byValueKey(ProductKeys.productEditProductFieldKeyString)); - await driver.enterText('Example Test Driver Product'); + await driver.enterText(Constants.newProductKey); await driver.tap(find.byValueKey(ProductKeys.productEditNotesFieldKeyString)); - await driver.enterText('Example Test Driver Notes'); + await driver.enterText(Constants.newProductNotes); await driver.tap(find.byValueKey(ProductKeys.productEditCostFieldKeyString)); - await driver.enterText('100.50'); + await driver.enterText(Constants.newProductCost); - await driver.tap(find.byTooltip('Save')); + await driver.tap(find.byTooltip(Constants.saveToolTip)); // verify snackbar - await driver.waitFor(find.text('Successfully created product')); + await driver.waitFor(find.text(Constants.snackbarProductCreated)); - await driver.tap(find.byTooltip('Back')); + await driver.tap(find.byTooltip(Constants.backToolTip)); // verify entered text while new product creation - await driver.tap(find.text('Example Test Driver Product')); - await driver.waitFor(find.text('Example Test Driver Product')); - await driver.waitFor(find.text('Example Test Driver Notes')); - await driver.waitFor(find.text('100.50')); + await driver.tap(find.text(Constants.newProductKey)); + await driver.waitFor(find.text(Constants.newProductKey)); + await driver.waitFor(find.text(Constants.newProductNotes)); + await driver.waitFor(find.text(Constants.newProductCost)); - await driver.tap(find.byTooltip('Back')); + await driver.tap(find.byTooltip(Constants.backToolTip)); }); test('Edit a existing product', () async { - await driver.tap(find.text('Example Test Driver Product')); + await driver.tap(find.text(Constants.newProductKey)); await driver.tap(find.byValueKey(ProductKeys.productEditProductFieldKeyString)); - await driver.enterText('Updated Example Test Driver Product'); + await driver.enterText(Constants.updatedProductKey); await driver.tap(find.byValueKey(ProductKeys.productEditNotesFieldKeyString)); - await driver.enterText('Updated Example Test Driver Notes'); + await driver.enterText(Constants.updatedProductNotes); await driver.tap(find.byValueKey(ProductKeys.productEditCostFieldKeyString)); - await driver.enterText('200.50'); + await driver.enterText(Constants.updatedProductCost); - await driver.tap(find.byTooltip('Save')); + await driver.tap(find.byTooltip(Constants.saveToolTip)); // verify snackbar - await driver.waitFor(find.text('Successfully updated product')); + await driver.waitFor(find.text(Constants.snackbarProductUpdated)); - await driver.tap(find.byTooltip('Back')); + await driver.tap(find.byTooltip(Constants.backToolTip)); // verify updated values while editing existing product - await driver.tap(find.text('Updated Example Test Driver Notes')); - await driver.waitFor(find.text('Updated Example Test Driver Product')); - await driver.waitFor(find.text('Updated Example Test Driver Notes')); - await driver.waitFor(find.text('200.50')); + await driver.tap(find.text(Constants.updatedProductKey)); + await driver.waitFor(find.text(Constants.updatedProductKey)); + await driver.waitFor(find.text(Constants.updatedProductNotes)); + await driver.waitFor(find.text(Constants.updatedProductCost)); - await driver.tap(find.byTooltip('Back')); + await driver.tap(find.byTooltip(Constants.backToolTip)); }); test('Deleteing an item test', () async { // delete the test product created - await driver.tap(find.text('Updated Example Test Driver Product')); + await driver.tap(find.text(Constants.updatedProductKey)); - await driver.tap(find.byTooltip('Show menu')); - await driver.tap(find.text('Delete')); + await driver.tap(find.byTooltip(Constants.menuToolTip)); + await driver.tap(find.text(Constants.deleteToolTip)); // verify snackbar - await driver.waitFor(find.text('Successfully deleted product')); + await driver.waitFor(find.text(Constants.snackbarProductDeleted)); - await driver.tap(find.byTooltip('Back')); + await driver.tap(find.byTooltip(Constants.backToolTip)); // verify not in list - await driver.waitForAbsent(find.text('Updated Example Test Driver Product')); + await driver.waitForAbsent(find.text(Constants.updatedProductKey)); }); }); } \ No newline at end of file