velxio/test/backend/unit
David Montero 0251bd25a0 fix(gateway): stop offering a link a SoftAP sketch can never open
The serial monitor turns any 192.168.4.x it sees into an "Open IoT Gateway"
link, because that is the subnet QEMU's slirp leases to a connected board. The
ESP32's SoftAP default address is the same 192.168.4.1, so a captive-portal
sketch got the same link. It cannot work: an access point never receives a DHCP
lease, so it never reaches 'got_ip', so it never registers the bridge the proxy
looks up. The click landed on a 404 whose text then told the user to make sure
the sketch connected to WiFi, which is precisely what that sketch had chosen not
to do. The user is doing everything right and the product is lying twice.

Gate the link on the status every family already reports: QEMU through
wifi_status_parser, the in-browser JS engines, and the Pico W's cyw43
peripheral all emit 'got_ip'. Without it the address stays plain text.

Measured on a XIAO ESP32S3 Sense, one sketch per mode:
  softAP  192.168.4.1   gateway links 1 -> 0
  station 10.13.37.42   gateway links 1 -> 1   (unchanged)

The 404 body is rewritten to name softAP as the likely cause and point at a
network that exists in the simulator, instead of accusing the sketch. Covered
by a test that fails if the accusatory sentence comes back.
2026-08-27 07:19:20 +02:00
..
__init__.py Add unit tests for I2C slave devices, MCP tools, and WiFi/BLE status parser 2026-04-10 23:39:51 -03:00
test_arduino_cli_attinycore.py fix(ci): two stale-path bugs from the recent refactors 2026-05-05 11:22:02 -03:00
test_arduino_cli_bt_note.py fix(compile): answer the Bluetooth error ourselves instead of pointing at an IDE menu 2026-08-22 04:38:31 +02:00
test_arduino_cli_error_messages.py fix(arduino-cli): library search/install failures become one actionable sentence 2026-08-18 00:28:07 +02:00
test_arduino_cli_scope_retry.py fix(compile): when the scan-all retry fails too, report ITS error 2026-08-24 22:49:11 +02:00
test_boot_images.py fix(pi3): show kernel boot + autologin SD + sidecar cache invalidation 2026-05-16 06:23:22 +02:00
test_compile_build_lock.py test(compile): the build-lock test still asserted the pre-82f25a03 contract 2026-08-20 07:49:09 +02:00
test_compile_dedup.py perf(compile): dedup, concurrency limits, and persistent build dir for ESP-IDF 2026-05-09 08:33:11 +02:00
test_dht22_worker.py test(dht22): skip absolute-timing busy_wait checks under CI 2026-05-17 22:31:37 +02:00
test_esp32_wifi_args.py fix(esp32): the emulated chip keeps its radio, whatever the scan thinks (#260) 2026-08-21 22:05:10 +02:00
test_esp32_wifi_webserver.py fix(gateway): stop offering a link a SoftAP sketch can never open 2026-08-27 07:19:20 +02:00
test_esp32c3_wifi_args.py Add unit tests for I2C slave devices, MCP tools, and WiFi/BLE status parser 2026-04-10 23:39:51 -03:00
test_espidf_compiler.py fix(espidf): one include root per library — kill the header-shadow class 2026-08-20 00:15:51 +02:00
test_espidf_core_first.py espidf: never resolve generic platform headers against user libraries 2026-08-04 05:23:42 +02:00
test_espidf_include_roots.py fix(espidf): one include root per library — kill the header-shadow class 2026-08-20 00:15:51 +02:00
test_espidf_include_scanner.py fix(espidf): unknown #if must not prune its #else in the include scanner 2026-08-15 04:14:00 +02:00
test_espidf_library_ranking.py feat(libraries): manifest auto-migration + name-affinity ranking + install-declares 2026-08-04 06:03:32 +02:00
test_espidf_pure_mode.py feat(espidf): LVGL and esp_lvgl_port, the layer every official demo's UI sits on 2026-08-24 06:11:24 +02:00
test_espidf_real_paths.py feat: Skip real paths test in CI; mark subproject commits as dirty 2026-04-11 15:49:32 -03:00
test_i2c_slaves.py test: update BMP280 chip ID assertions and clarify tagName uniqueness in metadata drift test 2026-04-21 17:31:51 -03:00
test_intellisense_local_libraries.py feat(intellisense): answer from the local sketchbook, not only the cache 2026-08-25 00:06:10 +02:00
test_mcp_tools.py Add unit tests for I2C slave devices, MCP tools, and WiFi/BLE status parser 2026-04-10 23:39:51 -03:00
test_micropython_libs.py feat(micropython): install libraries from the micropython-lib index (#214) 2026-08-18 21:50:10 +02:00
test_signal_router.py fix(esp32): LEDC signal IDs are 71-86 per ESP32 TRM, not 72-87 2026-05-17 05:42:52 +02:00
test_uart_buffer_flush.py fix(micropython): release the raw REPL's answer instead of buffering it (#219) 2026-08-21 22:06:16 +02:00
test_wifi_detection_scope.py fix(esp32): the emulated chip keeps its radio, whatever the scan thinks (#260) 2026-08-21 22:05:10 +02:00
test_wifi_status_parser.py Add unit tests for I2C slave devices, MCP tools, and WiFi/BLE status parser 2026-04-10 23:39:51 -03:00