1
0
mirror of https://gitlab.nic.cz/turris/reforis/foris-js.git synced 2024-07-02 20:30:27 +00:00

Add test suites for a Wi-Fi form submission

This commit is contained in:
Marek Sašek 2020-07-02 15:32:46 +02:00
parent 57f1ccced8
commit 67e4abe4d1
No known key found for this signature in database
GPG Key ID: 8791897AFCF3602F
3 changed files with 99 additions and 3 deletions

View File

@ -64,7 +64,7 @@ function prepDataToSubmit(formData) {
return formData;
}
function validator(formData) {
export function validator(formData) {
const formErrors = formData.devices.map(
(device) => {
if (!device.enabled) return {};

View File

@ -13,8 +13,8 @@ import { fireEvent, render, wait } from "customTestRender";
import { WebSockets } from "webSockets/WebSockets";
import { mockJSONError } from "testUtils/network";
import { wifiSettingsFixture } from "./__fixtures__/wifiSettings";
import { WiFiSettings } from "../WiFiSettings";
import { wifiSettingsFixture, oneDevice, twoDevices, threeDevices } from "./__fixtures__/wifiSettings";
import { WiFiSettings, validator } from "../WiFiSettings";
describe("<WiFiSettings/>", () => {
let firstRender;
@ -159,4 +159,18 @@ describe("<WiFiSettings/>", () => {
};
expect(mockAxios.post).toHaveBeenCalledWith(endpoint, data, expect.anything());
});
it("Validator function using regex for one device", () => {
expect(validator(oneDevice)).toEqual(null);
});
it("Validator function using regex for two devices", () => {
const twoDevicesFormErrors = [{SSID: "SSID can't be empty"}, {}];
expect(validator(twoDevices)).toEqual(twoDevicesFormErrors);
});
it("Validator function using regex for three devices", () => {
const threeDevicesFormErrors = [{}, {}, {password: "Password must contain at least 8 symbols"}];
expect(validator(threeDevices)).toEqual(threeDevicesFormErrors);
});
});

View File

@ -316,3 +316,85 @@ export function wifiSettingsFixture() {
],
};
}
const oneDevice = {
devices: [
{
SSID: "Turris1",
channel: 60,
enabled: true,
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
id: 0,
password: "TestPass"
}
]
};
const twoDevices = {
devices: [
{
SSID: "",
channel: 60,
enabled: true,
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
id: 0,
password: "TestPass"
},
{
SSID: "Turris2",
channel: 60,
enabled: true,
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
id: 0,
password: "TestPass"
}
]
};
const threeDevices = {
devices: [
{
SSID: "Turris1",
channel: 60,
enabled: true,
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
id: 0,
password: "TestPass"
},
{
SSID: "Turris2",
channel: 60,
enabled: false,
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
id: 0,
password: "TestPass"
},
{
SSID: "Turris3",
channel: 60,
enabled: true,
guest_wifi: { enabled: false },
hidden: false,
htmode: "HT40",
hwmode: "11a",
id: 0,
password: ""
}
]
};
export {oneDevice, twoDevices, threeDevices};