From 73819809f46fa949c081bd1f76ec86852a73cdde Mon Sep 17 00:00:00 2001 From: Stepan Henek Date: Thu, 17 Oct 2024 12:11:10 +0200 Subject: [PATCH] WiFi API update Deprecated option `hwmode=11g/11a` was replaced by `band=2g/5g/6g` --- src/common/WiFiSettings/WiFiForm.js | 42 +++++++++---------- .../__tests__/WiFiSettings.test.js | 10 ++--- .../__tests__/__fixtures__/wifiSettings.js | 22 +++++----- .../__snapshots__/WiFiSettings.test.js.snap | 22 +++++----- src/common/WiFiSettings/constants.js | 11 ++--- 5 files changed, 54 insertions(+), 53 deletions(-) diff --git a/src/common/WiFiSettings/WiFiForm.js b/src/common/WiFiSettings/WiFiForm.js index 074f133..8d821e6 100644 --- a/src/common/WiFiSettings/WiFiForm.js +++ b/src/common/WiFiSettings/WiFiForm.js @@ -9,7 +9,7 @@ import React from "react"; import PropTypes from "prop-types"; -import { HELP_TEXTS, HTMODES, HWMODES, ENCRYPTIONMODES } from "./constants"; +import { HELP_TEXTS, HTMODES, BANDS, ENCRYPTIONMODES } from "./constants"; import WifiGuestForm from "./WiFiGuestForm"; import WiFiQRCode from "./WiFiQRCode"; import PasswordInput from "../../bootstrap/PasswordInput"; @@ -60,7 +60,7 @@ DeviceForm.propTypes = { SSID: PropTypes.string.isRequired, password: PropTypes.string.isRequired, hidden: PropTypes.bool.isRequired, - hwmode: PropTypes.string.isRequired, + band: PropTypes.string.isRequired, htmode: PropTypes.string.isRequired, channel: PropTypes.string.isRequired, guest_wifi: PropTypes.object.isRequired, @@ -155,26 +155,26 @@ function DeviceForm({ /> { - // Get the last item in an array of available HT modes - const [best2] = bnds[0].available_htmodes.slice(-1); - const [best5] = bnds[1].available_htmodes.slice(-1); + // Find the selected band + const selectedBand = bnds.find( + (band) => band.band === value + ); + // Get the last item in the available HT modes for the selected band + const bestHtmode = + selectedBand.available_htmodes.slice(-1)[0]; return { devices: { [deviceIndex]: { - hwmode: { $set: value }, + band: { $set: value }, channel: { $set: "0" }, - htmode: { - $set: - // Set HT mode depending on checked frequency - value === "11a" ? best5 : best2, - }, + htmode: { $set: bestHtmode }, }, }, }; @@ -263,7 +263,7 @@ function getChannelChoices(device) { }; device.available_bands.forEach((availableBand) => { - if (availableBand.hwmode !== device.hwmode) return; + if (availableBand.band !== device.band) return; availableBand.available_channels.forEach((availableChannel) => { channelChoices[availableChannel.number.toString()] = ` @@ -282,7 +282,7 @@ function getHtmodeChoices(device) { const htmodeChoices = {}; device.available_bands.forEach((availableBand) => { - if (availableBand.hwmode !== device.hwmode) return; + if (availableBand.band !== device.band) return; availableBand.available_htmodes.forEach((availableHtmod) => { htmodeChoices[availableHtmod] = HTMODES[availableHtmod]; @@ -291,10 +291,10 @@ function getHtmodeChoices(device) { return htmodeChoices; } -function getHwmodeChoices(device) { +function getBandChoices(device) { return device.available_bands.map((availableBand) => ({ - label: HWMODES[availableBand.hwmode], - value: availableBand.hwmode, + label: `${BANDS[availableBand.band]} GHz`, + value: availableBand.band, })); } diff --git a/src/common/WiFiSettings/__tests__/WiFiSettings.test.js b/src/common/WiFiSettings/__tests__/WiFiSettings.test.js index f06c152..9bd4471 100644 --- a/src/common/WiFiSettings/__tests__/WiFiSettings.test.js +++ b/src/common/WiFiSettings/__tests__/WiFiSettings.test.js @@ -77,7 +77,7 @@ describe("", () => { it("Snapshot 2.4 GHz", () => { fireEvent.click(getByText("Wi-Fi 1")); const enabledRender = asFragment(); - fireEvent.click(getAllByText("2.4")[0]); + fireEvent.click(getAllByText(/2.4/)[0]); expect(diffSnapshot(enabledRender, asFragment())).toMatchSnapshot(); }); @@ -118,7 +118,7 @@ describe("", () => { guest_wifi: { enabled: false }, hidden: false, htmode: "HT80", - hwmode: "11a", + band: "5g", id: 0, password: "TestPass", encryption: "WPA3", @@ -135,7 +135,7 @@ describe("", () => { it("Post form: 2.4 GHz", () => { fireEvent.click(getByText("Wi-Fi 1")); - fireEvent.click(getAllByText("2.4")[0]); + fireEvent.click(getAllByText(/2.4/)[0]); fireEvent.click(getByText("Save")); expect(mockAxios.post).toBeCalled(); @@ -148,7 +148,7 @@ describe("", () => { guest_wifi: { enabled: false }, hidden: false, htmode: "VHT80", - hwmode: "11g", + band: "2g", id: 0, password: "TestPass", encryption: "WPA3", @@ -185,7 +185,7 @@ describe("", () => { }, hidden: false, htmode: "HT80", - hwmode: "11a", + band: "5g", id: 0, password: "TestPass", encryption: "WPA3", diff --git a/src/common/WiFiSettings/__tests__/__fixtures__/wifiSettings.js b/src/common/WiFiSettings/__tests__/__fixtures__/wifiSettings.js index 7110c42..928e1dd 100644 --- a/src/common/WiFiSettings/__tests__/__fixtures__/wifiSettings.js +++ b/src/common/WiFiSettings/__tests__/__fixtures__/wifiSettings.js @@ -77,7 +77,7 @@ export function wifiSettingsFixture() { "VHT40", "VHT80", ], - hwmode: "11g", + band: "2g", }, { available_channels: [ @@ -215,7 +215,7 @@ export function wifiSettingsFixture() { "VHT40", "VHT80", ], - hwmode: "11a", + band: "5g", }, ], channel: 60, @@ -227,7 +227,7 @@ export function wifiSettingsFixture() { }, hidden: false, htmode: "HT80", - hwmode: "11a", + band: "5g", id: 0, password: "TestPass", encryption: "WPA3", @@ -294,7 +294,7 @@ export function wifiSettingsFixture() { }, ], available_htmodes: ["NOHT", "HT20", "HT40"], - hwmode: "11g", + band: "2g", }, ], channel: 11, @@ -306,7 +306,7 @@ export function wifiSettingsFixture() { }, hidden: false, htmode: "HT40", - hwmode: "11g", + band: "2g", id: 1, password: "TestPass", encryption: "WPA3", @@ -323,7 +323,7 @@ const oneDevice = { guest_wifi: { enabled: false }, hidden: false, htmode: "HT40", - hwmode: "11a", + band: "5g", id: 0, password: "TestPass", encryption: "WPA3", @@ -340,7 +340,7 @@ const twoDevices = { guest_wifi: { enabled: false }, hidden: false, htmode: "HT40", - hwmode: "11a", + band: "5g", id: 0, password: "TestPass", encryption: "WPA3", @@ -352,7 +352,7 @@ const twoDevices = { guest_wifi: { enabled: false }, hidden: false, htmode: "HT40", - hwmode: "11a", + band: "5g", id: 1, password: "TestPass", encryption: "WPA3", @@ -369,7 +369,7 @@ const threeDevices = { guest_wifi: { enabled: false }, hidden: false, htmode: "HT40", - hwmode: "11a", + band: "5g", id: 0, password: "TestPass", encryption: "WPA3", @@ -381,7 +381,7 @@ const threeDevices = { guest_wifi: { enabled: false }, hidden: false, htmode: "HT40", - hwmode: "11a", + band: "5g", id: 1, password: "TestPass", encryption: "WPA3", @@ -393,7 +393,7 @@ const threeDevices = { guest_wifi: { enabled: false }, hidden: false, htmode: "HT40", - hwmode: "11a", + band: "5g", id: 2, password: "", encryption: "WPA3", diff --git a/src/common/WiFiSettings/__tests__/__snapshots__/WiFiSettings.test.js.snap b/src/common/WiFiSettings/__tests__/__snapshots__/WiFiSettings.test.js.snap index 8b14453..72f0225 100644 --- a/src/common/WiFiSettings/__tests__/__snapshots__/WiFiSettings.test.js.snap +++ b/src/common/WiFiSettings/__tests__/__snapshots__/WiFiSettings.test.js.snap @@ -555,23 +555,23 @@ exports[` Snapshot one module enabled. 1`] = ` + class="d-block" + for="6" + > -+ GHz ++ Band + +
+ + +
+
Snapshot one module enabled. 1`] = ` + + +
+