-
Notifications
You must be signed in to change notification settings - Fork 6
fix: prevent network form reset on init and submit #88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
JanZachmann
merged 13 commits into
omnect:main
from
JanZachmann:fix/network-rollback-status-persistence
Jan 15, 2026
Merged
fix: prevent network form reset on init and submit #88
JanZachmann
merged 13 commits into
omnect:main
from
JanZachmann:fix/network-rollback-status-persistence
Jan 15, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
- Implemented auth.spec.ts, device.spec.ts, network.spec.ts - Added centrifugo fixture helper - Fixed Centrifugo subscription in App.vue - Improved test scripts for argument forwarding - Configured playwright to ignore HTTPS errors - Added jsonwebtoken for test token generation Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
Add comprehensive unit tests for NetworkConfigService covering: - Request validation (DHCP, static IP, netmask boundaries) - INI file generation for systemd-networkd - Rollback response structure - camelCase serialization/deserialization - enable_rollback field handling Tests use tempfile for filesystem operations and replicate production INI generation logic in isolation. Note: Rollback file I/O tests not included due to hardcoded paths (/network/, /tmp/). Would require path injection refactor. 14 tests added, bringing total backend tests from 40 to 54. Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
Expand firmware service test coverage to validate file operations and device service delegation: - clear_data_folder removes files, preserves subdirectories - load_update forwards requests to device service client - run_update forwards requests with validation flag Tests use mockall to mock DeviceServiceClient for async operations. Note: clear_data_folder tests share temp directory and may race in parallel. Run with --test-threads=1 if flaky. 7 tests total (6 new), bringing backend tests from 54 to 60. Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
Add comprehensive unit tests for OmnectDeviceServiceClient covering: - URL building and path normalization - Semver version requirement parsing and matching - Version mismatch detection for healthcheck - Publish endpoint state tracking - API endpoint constants validation Tests validate client logic without requiring actual HTTP calls or Unix socket connections. 15 tests added, bringing total backend tests from 60 to 75. Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
…-client-tests Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
The rollback notification was incorrectly reappearing on subsequent logins even after the user acknowledged it. This occurred because the acknowledgment request required authentication, but the rollback dialog appears before login (in App.vue onMounted), so no auth token was available. This caused the /ack-rollback POST to silently fail. Changes: - Extended unauth_post! macro with Pattern 0 for simple POST without body - Refactored handle_ack_rollback to use unauth_post! instead of auth_post! - Improved error handling in clear_rollback_occurred with proper logging - Added E2E test to verify rollback status is cleared and doesn't reappear The fix allows the rollback acknowledgment to work correctly before login, ensuring the backend marker file is properly cleared. Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
…k-status-persistence
Extended the rollback test to publish network status via Centrifugo with the original IP address, simulating a successful rollback scenario. This ensures the test validates that the correct network configuration is shown after a rollback occurs. Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
703ffe9 to
ecca58c
Compare
The network settings form was incorrectly resetting its fields when the Core emitted a dirty flag change during initialization or submission. This was caused by the `viewModel.network_form_dirty` watcher reacting to state changes that weren't user-initiated resets. Changes: - Added `isStartingFreshEdit` and `isSubmitting` flags to `NetworkSettings.vue` - Updated watcher to ignore dirty flag changes during init and submit - Configured Playwright to run serially to prevent Centrifugo interference - Added comprehensive network configuration E2E tests Signed-off-by: Jan Zachmann <50990105+JanZachmann@users.noreply.github.com>
ecca58c to
d6c7e98
Compare
Signed-off-by: Buell <50990105+JanZachmann@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The network settings form was incorrectly resetting its fields when the
Core emitted a dirty flag change during initialization or submission.
This was caused by the
viewModel.network_form_dirtywatcher reactingto state changes that weren't user-initiated resets.
Changes:
isStartingFreshEditandisSubmittingflags toNetworkSettings.vue