Kiosk: System Name storage, validation, sync, and sent on license validation
Adds local System Name persistence (trimmed, 1-40) in system_kv, an
injectable sync module with conflict/invalid revert and a pending-sync
flag, a background SystemNameSync worker (retries on boot and on a timer),
and api_client support for PUT /licenses/{key}/system-name plus the
additive systemName field/systemNameStatus on license validation. The
license service sends the stored name and applies the status. Covers
validation, pending retry, and conflict revert with a faked HTTP layer.
This commit is contained in:
@@ -59,6 +59,8 @@ add_executable(radiantwave
|
||||
src/network/api_client.cpp
|
||||
src/network/license_service.cpp
|
||||
src/network/license_status.cpp
|
||||
src/network/system_name.cpp
|
||||
src/network/system_name_sync.cpp
|
||||
src/config/yaml_parser.cpp
|
||||
src/config/config_manager.cpp
|
||||
src/db/database_manager.cpp
|
||||
@@ -193,9 +195,11 @@ target_link_libraries(test_api_client PRIVATE GTest::gtest_main CURL::libcurl SQ
|
||||
add_executable(test_license_service
|
||||
tests/test_license_service.cpp
|
||||
src/network/license_service.cpp
|
||||
src/network/system_name.cpp
|
||||
src/network/api_client.cpp
|
||||
src/network/json.cpp
|
||||
src/db/database_manager.cpp
|
||||
src/validation.cpp
|
||||
)
|
||||
target_include_directories(test_license_service PRIVATE src)
|
||||
target_link_libraries(test_license_service PRIVATE GTest::gtest_main CURL::libcurl SQLite3::SQLite3)
|
||||
@@ -205,9 +209,11 @@ add_executable(test_license_status
|
||||
tests/test_license_status.cpp
|
||||
src/network/license_status.cpp
|
||||
src/network/license_service.cpp
|
||||
src/network/system_name.cpp
|
||||
src/network/api_client.cpp
|
||||
src/network/json.cpp
|
||||
src/db/database_manager.cpp
|
||||
src/validation.cpp
|
||||
)
|
||||
target_include_directories(test_license_status PRIVATE src)
|
||||
target_link_libraries(test_license_status PRIVATE GTest::gtest_main CURL::libcurl SQLite3::SQLite3)
|
||||
@@ -236,6 +242,16 @@ add_executable(test_settings_menu
|
||||
target_include_directories(test_settings_menu PRIVATE src)
|
||||
target_link_libraries(test_settings_menu PRIVATE GTest::gtest_main)
|
||||
|
||||
# System Name local state + sync logic (HTTP layer is injected/faked)
|
||||
add_executable(test_system_name
|
||||
tests/test_system_name.cpp
|
||||
src/network/system_name.cpp
|
||||
src/validation.cpp
|
||||
src/db/database_manager.cpp
|
||||
)
|
||||
target_include_directories(test_system_name PRIVATE src)
|
||||
target_link_libraries(test_system_name PRIVATE GTest::gtest_main SQLite3::SQLite3)
|
||||
|
||||
# TimeZone unit tests
|
||||
add_executable(test_timezone
|
||||
tests/test_timezone.cpp
|
||||
|
||||
Reference in New Issue
Block a user