refactor: Move agent env config and fix lints - #557
Conversation
- Move env.template to assets/agents/env.template - Update dotenv loading paths in main.dart and main_demo.dart - Fix type definition in IdleChecker - Fix lints in tests
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
|||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||||
- Update Notifier mock signatures in test/mocks/ to correctly extend AsyncNotifier/Notifier and mixin Mock - Fix node_detail_view_test.dart by stubbing missing node light status - Update CI workflow env setup
User description
Moves env template to assets/agents and fixes analysis warnings.
PR Type
Tests, Enhancement
Description
Updated Mockito mock files from version 5.4.4/5.4.5 to 5.4.6 across multiple notifier mocks (
auth_notifier,internet_settings_notifier,device_manager_notifier,dashboard_manager_notifier,node_detail_notifier,dashboard_home_notifier,polling_notifier)Fixed analysis warnings by adding
constdeclarations to list and dictionary literals throughout test files for proper const optimizationAdded missing braces to if/if-else statements in production code (
internet_settings_form_validator.dart,pppoe_form.dart,transaction_http_command.dart) for code style complianceRemoved unused imports and variables from test files to reduce analysis warnings
Renamed private helper functions and variables by removing underscore prefixes in test files (
input_validators_test.dart,pnp_isp_service_test.dart)Added
invalid_use_of_internal_memberandmust_be_immutableignore directives to mock filesChanged mock class inheritance patterns to extend
_i1.Mockinstead of specific notifier typesAdded comprehensive architecture analysis documentation identifying coupling violations and remediation strategies
Diagram Walkthrough
File Walkthrough
7 files
auth_notifier_mocks.dart
Update Mockito mocks to version 5.4.6 with new auth methodstest/mocks/auth_notifier_mocks.dart
guardians_remote_assistance.dartMockAuthNotifierto extend_i1.Mockinstead of_i2.AsyncNotifiercloudLoginAuth,testSessionAuthentication, andfuturegetterbreaks
invalid_use_of_internal_memberignore directiveinternet_settings_notifier_mocks.dart
Update internet settings notifier mocks to 5.4.6test/mocks/internet_settings_notifier_mocks.dart
dummies.dartandbetter_action.dartMockInternetSettingsNotifierto extend_i1.Mockinstead of_i2.NotifierInternetSettingstoInternetSettingsUIModelgetSaveIpv4Transactions,getSaveIpv6Transactions, andgetMacAddressCloneTransactioninvalid_use_of_internal_memberignore directivedevice_manager_notifier_mocks.dart
Update device manager notifier mocks to 5.4.6test/mocks/device_manager_notifier_mocks.dart
MockDeviceManagerNotifierto extend_i1.Mockinstead of_i2.NotifiercreateStatemethod and addedinitmethodlistenSelfmethod implementationmust_be_immutableandinvalid_use_of_internal_memberignoredirectives
dashboard_manager_notifier_mocks.dart
Update dashboard manager notifier mocks to 5.4.6test/mocks/dashboard_manager_notifier_mocks.dart
MockDashboardManagerNotifierto extend_i1.Mockinstead of_i2.NotifiercreateStatemethod and reordered methodslistenSelfmethod implementationmust_be_immutableandinvalid_use_of_internal_memberignoredirectives
node_detail_notifier_mocks.dart
Update node detail notifier mocks to 5.4.6test/mocks/node_detail_notifier_mocks.dart
MockNodeDetailNotifierto extend_i1.Mockinstead of_i2.Notifier_FakeJNAPResult_2class and related methodsstartBlinkNodeLEDand
stopBlinkNodeLEDlistenSelfmethod implementationmust_be_immutableandinvalid_use_of_internal_memberignoredirectives
dashboard_home_notifier_mocks.dart
Update dashboard home notifier mocks to 5.4.6test/mocks/dashboard_home_notifier_mocks.dart
states, health check state
MockDashboardHomeNotifierto extend_i1.Mockinstead of_i2.Notifierinvalid_use_of_internal_memberignore directivepolling_notifier_mocks.dart
Update polling notifier mocks to 5.4.6test/mocks/polling_notifier_mocks.dart
dummies.dartMockPollingNotifierto extend_i1.Mockinstead of_i2.AsyncNotifierinvalid_use_of_internal_memberignore directive28 files
ipv6_port_service_list_service_test.dart
Fix const list formatting in IPv6 firewall teststest/page/advanced_settings/firewall/services/ipv6_port_service_list_service_test.dart
[const ...]toconst [...]for proper constoptimization
constkeywords from individualPortRangeitemswithin const lists
input_validators_test.dart
Remove private underscore prefixes from test helper functionstest/validator_rules/input_validators_test.dart
avoid_printignore directive at file header_testResults,_trackTestResult,_printTestSummary,_runInvalidTestCasesto public versions withoutunderscore prefix
the test file
jnap_tr181_mapper.dart
Add const declarations and fix if-else braceslib/core/usp/jnap_tr181_mapper.dart
mockParentIpfrom variable toconstdeclarationinternet_settings_service_test.dart
Fix const list formatting in internet settings teststest/page/advanced_settings/internet_settings/services/internet_settings_service_test.dart
[MapEntry(...)]toconst [MapEntry(...)]for const optimization
constkeywords from individualJNAPSuccessitemswithin const lists
firmware_update_service_test.dart
Add const declarations to test data dictionariestest/core/jnap/services/firmware_update_service_test.dart
{...}toconst {...}for constoptimization
internet_settings_form_validator.dart
Add braces to if statements in form validatorlib/page/advanced_settings/internet_settings/utils/internet_settings_form_validator.dart
ipv6_port_service_list_provider_test.dart
Remove unused variables and fix const formattingtest/page/advanced_settings/firewall/providers/ipv6_port_service_list_provider_test.dart
statevariable assignments in two test casesconstkeyword for const optimizationportRangesfromconst [...]to[...]within non-constparent lists
manual_firmware_update_provider_test.dart
Add const declarations to test file namestest/page/instant_admin/providers/manual_firmware_update_provider_test.dart
fileNamevariable declarations fromfinaltoconstfor constoptimization
pnp_isp_service_test.dart
Remove private underscore prefix from helper functiontest/page/instant_setup/troubleshooter/services/pnp_isp_service_test.dart
_baseWanStatusOutputto publicbaseWanStatusOutputchannel_finder_service_test.dart
Remove unused imports and add const declarationstest/page/wifi_settings/services/channel_finder_service_test.dart
flutter_riverpodandchannelfinder_info{...}toconst {...}for constoptimization
firewall_state_test.dart
Remove redundant const from EmptyStatus instancestest/page/advanced_settings/firewall/providers/firewall_state_test.dart
EmptyStatus()fromconst EmptyStatus()toEmptyStatus()forconsistency
dmz_settings_state_test.dart
Remove redundant const from DMZStatus instancestest/page/advanced_settings/dmz/providers/dmz_settings_state_test.dart
DMZStatus()fromconst DMZStatus()toDMZStatus()forconsistency
static_routing_state_test.dart
Remove unused import and add const declarationstest/page/advanced_settings/static_routing/providers/static_routing_state_test.dart
dart:convert[]toconst []for const optimizationdmz_settings_service_test.dart
Remove unused import and add const declarationstest/page/advanced_settings/dmz/services/dmz_settings_service_test.dart
dmz_settings.dart{}toconst {}for const optimizationinternet_settings_ui_model_test.dart
Fix const declaration syntax in model teststest/page/advanced_settings/internet_settings/models/internet_settings_ui_model_test.dart
final consttoconstfor properconst syntax
instant_safety_service_test.dart
Add const declarations to test data dictionariestest/page/instant_safety/services/instant_safety_service_test.dart
{}toconst {}for const optimizationport_range_forwarding_test_data.dart
Add const declarations to test datatest/mocks/test_data/port_range_forwarding_test_data.dart
[]toconst []for const optimization{...}toconst{...}port_range_triggering_service_test.dart
Fix const list formatting in port triggering teststest/page/advanced_settings/apps_and_gaming/ports/services/port_range_triggering_service_test.dart
[const ...]toconst [...]for proper constoptimization
constkeywords from individual items within constlists
port_range_forwarding_service_test.dart
Fix const list formatting in port forwarding teststest/page/advanced_settings/apps_and_gaming/ports/services/port_range_forwarding_service_test.dart
[const ...]toconst [...]for proper constoptimization
constkeywords from individual items within constlists
pppoe_form.dart
Add braces to if statements in focus listenerslib/page/advanced_settings/internet_settings/widgets/wan_forms/pppoe_form.dart
polling_test_data.dart
Add const declarations to polling test datatest/mocks/test_data/polling_test_data.dart
{...}toconst {...}for constoptimization
instant_verify_ui_models_test.dart
Add const declarations to test data liststest/page/instant_verify/models/instant_verify_ui_models_test.dart
[...]toconst [...]for const optimizationtimezone_service_test.dart
Fix const declaration syntax in timezone teststest/page/instant_admin/services/timezone_service_test.dart
final consttoconstfor properconst syntax
generate_screenshot_test_cases_report.dart
Add ignore directive and fix if statement bracestools/generate_screenshot_test_cases_report.dart
avoid_printignore directive at file headeripv6_port_service_rule_state_test.dart
Add const declarations to rule state test datatest/page/advanced_settings/firewall/providers/ipv6_port_service_rule_state_test.dart
{...}toconst {...}for constoptimization
transaction_http_command.dart
Replace forEach with for loop in transaction commandlib/core/jnap/command/http/transaction_http_command.dart
forEachloop to traditionalforloop for better readabilitydashboard_manager_test_data.dart
Add const declarations to dashboard manager test datatest/mocks/test_data/dashboard_manager_test_data.dart
[...]toconst [...]for const optimization{...}toconst {...}for constoptimization
ddns_test_data.dart
Add const declarations to DDNS test datatest/mocks/test_data/ddns_test_data.dart
[...]toconst [...]for const optimization1 files
architecture_analysis_2026-01-05.md
Comprehensive architecture analysis with coupling violations andremediation guidedoc/analysis/architecture_analysis_2026-01-05.md
project evaluating module decoupling and layer separation
(Data/Service/Application/Presentation) with detailed diagrams and
code examples
directly imports
core/jnap/models/(firmware_update_settings,back_haul_info, auto_configuration_settings)
risk assessment matrix, identifying 3 high-risk coupling hotspots
violation, including creation of UI-specific models and Service layer
refactoring
architecture scoring (3.6/5 stars)
63 files