Implement comprehensive test suite improvements

- Added 42 new tests covering critical functionality:
  * WiFi connection flow tests (6 tests)
  * Callback firing verification tests (4 tests)
  * DNS server lifecycle tests (3 tests)
  * Error condition tests (7 tests)
  * Parameter value management tests (5 tests)
  * WiFi scanning tests (4 tests)
  * State transition tests (4 tests)
  * Integration tests (5 tests)
  * Stress tests (5 tests)

- Fixed compilation errors by replacing protected connectWifi() calls with public autoConnect()
- Fixed config reset callback test to use resetSettings() instead of erase()
- Added delays around resetSettings() calls to prevent ESP8266 WiFi stack crashes
- Reduced stress test iterations to avoid excessive output
- Improved test stability with better state checking and error handling

Total test count: 86 tests (up from 44)
All tests passing successfully
This commit is contained in:
2025-11-05 23:25:06 +10:00
parent b94f34f06a
commit f056893f87
18 changed files with 1480 additions and 7 deletions
+8 -2
View File
@@ -30,9 +30,15 @@ void test_reset_settings() {
WiFiManager wm;
// Ensure WiFi is in a stable state before resetting
delay(100);
// Reset settings (should not crash)
wm.resetSettings();
// Small delay to allow WiFi operations to complete
delay(100);
// Verify WiFi is not saved after reset
// Note: ESP32 uses NVS for WiFi credentials which behaves differently than ESP8266's EEPROM
// On ESP32, getWiFiIsSaved() may still return TRUE due to NVS persistence differences
@@ -58,10 +64,10 @@ void test_disconnect() {
WiFiManager wm;
// Disconnect should not crash even if not connected
bool result1 = wm.disconnect();
(void)wm.disconnect();
// Can be called multiple times safely
bool result2 = wm.disconnect();
(void)wm.disconnect();
// Verify no crash (results may be true/false depending on WiFi state)
TEST_ASSERT_TRUE_MESSAGE(true, "disconnect() executed without crash");