forked from invoiceninja/admin-portal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvendors_it_test.dart
110 lines (88 loc) · 2.97 KB
/
vendors_it_test.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import 'package:faker/faker.dart';
import 'package:flutter_driver/flutter_driver.dart';
import 'package:test/test.dart';
import 'utils/common_actions.dart';
import 'utils/localizations.dart';
void main() {
runTestSuite();
}
void runTestSuite({bool batchMode = false}) {
group('Vendor Tests', () {
TestLocalization localization;
FlutterDriver driver;
final name = makeUnique(faker.company.name());
final updatedName = makeUnique(faker.company.name());
setUpAll(() async {
localization = TestLocalization('en');
driver = await FlutterDriver.connect();
print('Login to app');
await login(driver, retype: batchMode);
print('View vendors');
await viewSection(driver: driver, name: localization.vendors);
});
tearDownAll(() async {
await logout(driver, localization);
if (driver != null) {
driver.close();
}
});
// Create an empty vendor
test('Try to add an empty vendor', () async {
print('Tap new vendor');
await driver.tap(find.byTooltip(localization.newVendor));
print('Tap save');
await driver.tap(find.text(localization.save));
print('Check for error');
await driver.waitFor(find.text(localization.pleaseEnterAName));
if (await isMobile(driver)) {
print('Click back');
await driver.tap(find.pageBack());
await driver.waitFor(find.byTooltip(localization.newVendor));
} else {
print('Click cancel');
await driver.tap(find.text(localization.cancel));
}
});
// Create a new vendor
test('Add a new vendor', () async {
print('Tap new vendor');
await driver.tap(find.byTooltip(localization.newVendor));
print('Fill form: $name');
await fillAndSaveForm(driver, <String, dynamic>{
localization.name: name,
});
if (await isMobile(driver)) {
print('Click back');
await driver.tap(find.pageBack());
await driver.waitFor(find.byTooltip(localization.newVendor));
}
});
// Edit the newly created vendor
test('Edit an existing vendor', () async {
if (await isMobile(driver)) {
print('Select vendor: $name');
await driver.scrollUntilVisible(
find.byType('ListView'), find.text(name),
dyScroll: -300);
await driver.tap(find.text(name));
}
print('Tap edit');
await driver.tap(find.text(localization.edit));
await fillAndSaveForm(driver, <String, String>{
localization.name: updatedName,
});
});
// Archive the edited vendor
test('Archieve/delete vendor test', () async {
await testArchiveAndDelete(
driver: driver,
rowText: updatedName,
archivedMessage: localization.archivedVendor,
deletedMessage: localization.deletedVendor,
restoredMessage: localization.restoredVendor);
if (await isMobile(driver)) {
await driver.tap(find.pageBack());
}
});
});
}