Skip to content

Commit

Permalink
select network initial tests
Browse files Browse the repository at this point in the history
  • Loading branch information
lukorito committed Nov 29, 2023
1 parent 3d0f6bf commit 6fef43f
Show file tree
Hide file tree
Showing 5 changed files with 163 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -108,4 +108,4 @@ web_build_and_host:

file_test:
@reset
@flutter test test/
@flutter test test/chain/network_drodown/mobile_network_dropdown_tests.dart
46 changes: 46 additions & 0 deletions test/chain/network_drodown/desktop_network_dropdown_tests.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import 'package:faucet/chain/models/chains.dart';
import 'package:faucet/chain/sections/chainname_dropdown.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';

import '../../essential_test_provider_widget.dart';
import '../../required_test_class.dart';
import 'required_network_dropdown_tests.dart';

void main() async {
final chainTests = RequiredNetworkDropdownTests(
clickNetworkDropdown: (testScreenSize) => clickNetworkDropdown(testScreenSize),
testScreenSize: TestScreenSizes.desktop,
);

await chainTests.runTests();
}

Future<void> clickNetworkDropdown(testScreenSize) async =>
testWidgets('Desktop: Ensures all networks are in the dropdown when clicked', (WidgetTester tester) async {
await tester.pumpWidget(
await essentialTestProviderWidget(
tester: tester,
testScreenSize: testScreenSize,
overrides: [],
),
);

await tester.pumpAndSettle();

expect(find.byKey(Key(const Chains.private_network().key)), findsNothing);
expect(find.byKey(Key(const Chains.dev_network().key)), findsOneWidget);

expect(find.byKey(ChainNameDropDown.desktopDropDownKey), findsOneWidget);

await tester.tap(find.byKey(ChainNameDropDown.desktopDropDownKey));

await tester.pumpAndSettle();

expect(find.byKey(Key(const Chains.dev_network().key)),
findsNWidgets(2)); // two because it has the selected network and another one on the dropdown
expect(find.byKey(Key(const Chains.private_network().key)), findsOneWidget);
expect(find.byKey(Key(const Chains.topl_mainnet().key)), findsOneWidget);
expect(find.byKey(Key(const Chains.mock().key)), findsOneWidget);
expect(find.byKey(Key(const Chains.valhalla_testnet().key)), findsOneWidget);
});
51 changes: 51 additions & 0 deletions test/chain/network_drodown/mobile_network_dropdown_tests.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import 'package:faucet/chain/models/chains.dart';
import 'package:faucet/chain/sections/chainname_dropdown.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';

import '../../essential_test_provider_widget.dart';
import '../../required_test_class.dart';
import '../../shared/navigation/header_navigation.dart';
import '../../utils/tester_utils.dart';
import 'required_network_dropdown_tests.dart';

void main() async {
final chainTests = RequiredNetworkDropdownTests(
clickNetworkDropdown: (testScreenSize) => clickNetworkDropdown(testScreenSize),
testScreenSize: TestScreenSizes.mobile,
);

await chainTests.runTests();
}

Future<void> clickNetworkDropdown(testScreenSize) async =>
testWidgets('Mobile : Ensures all networks are in the dropdown when clicked', (WidgetTester tester) async {
await tester.pumpWidget(
await essentialTestProviderWidget(
tester: tester,
testScreenSize: testScreenSize,
overrides: [],
),
);

await tester.pumpAndSettle();

await openMobileHeader(tester);
await pumpTester(tester, loops: 100);

expect(find.byKey(Key(const Chains.private_network().key)), findsNothing);
expect(find.byKey(Key(const Chains.dev_network().key)), findsOneWidget);

expect(find.byKey(ChainNameDropDown.mobileDropDownKey), findsOneWidget);

await tester.tap(find.byKey(ChainNameDropDown.mobileDropDownKey));

await tester.pumpAndSettle();

expect(find.byKey(Key(const Chains.dev_network().key)),
findsNWidgets(2)); // two because it has the selected network and another one on the dropdown
expect(find.byKey(Key(const Chains.private_network().key)), findsOneWidget);
expect(find.byKey(Key(const Chains.topl_mainnet().key)), findsOneWidget);
expect(find.byKey(Key(const Chains.mock().key)), findsOneWidget);
expect(find.byKey(Key(const Chains.valhalla_testnet().key)), findsOneWidget);
});
14 changes: 14 additions & 0 deletions test/chain/network_drodown/required_network_dropdown_tests.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import '../../required_test_class.dart';

class RequiredNetworkDropdownTests extends RequiredTest {
Future<void> Function(TestScreenSizes testScreenSize) clickNetworkDropdown;

RequiredNetworkDropdownTests({
required this.clickNetworkDropdown,
required super.testScreenSize,
});

Future<void> runTests() async {
await clickNetworkDropdown(testScreenSize);
}
}
51 changes: 51 additions & 0 deletions test/chain/network_drodown/tablet_network_dropdown_tests.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import 'package:faucet/chain/models/chains.dart';
import 'package:faucet/chain/sections/chainname_dropdown.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';

import '../../essential_test_provider_widget.dart';
import '../../required_test_class.dart';
import '../../shared/navigation/header_navigation.dart';
import '../../utils/tester_utils.dart';
import 'required_network_dropdown_tests.dart';

void main() async {
final chainTests = RequiredNetworkDropdownTests(
clickNetworkDropdown: (testScreenSize) => clickNetworkDropdown(testScreenSize),
testScreenSize: TestScreenSizes.tablet,
);

await chainTests.runTests();
}

Future<void> clickNetworkDropdown(testScreenSize) async =>
testWidgets('Tablet : Ensures all networks are in the dropdown when clicked', (WidgetTester tester) async {
await tester.pumpWidget(
await essentialTestProviderWidget(
tester: tester,
testScreenSize: testScreenSize,
overrides: [],
),
);

await tester.pumpAndSettle();

await openMobileHeader(tester);
await pumpTester(tester, loops: 100);

expect(find.byKey(Key(const Chains.private_network().key)), findsNothing);
expect(find.byKey(Key(const Chains.dev_network().key)), findsOneWidget);

expect(find.byKey(ChainNameDropDown.mobileDropDownKey), findsOneWidget);

await tester.tap(find.byKey(ChainNameDropDown.mobileDropDownKey));

await tester.pumpAndSettle();

expect(find.byKey(Key(const Chains.dev_network().key)),
findsNWidgets(2)); // two because it has the selected network and another one on the dropdown
expect(find.byKey(Key(const Chains.private_network().key)), findsOneWidget);
expect(find.byKey(Key(const Chains.topl_mainnet().key)), findsOneWidget);
expect(find.byKey(Key(const Chains.mock().key)), findsOneWidget);
expect(find.byKey(Key(const Chains.valhalla_testnet().key)), findsOneWidget);
});

0 comments on commit 6fef43f

Please sign in to comment.