Browse Source

Fix tests, tsc, linting

pull/652/head
philon- 1 year ago
parent
commit
ec99c8d397
  1. 6
      src/core/stores/deviceStore.mock.ts
  2. 20
      src/core/stores/deviceStore.ts
  3. 2
      src/core/utils/deepCompareConfig.test.ts
  4. 4
      src/validation/config/security.test.ts

6
src/core/stores/deviceStore.mock.ts

@ -50,6 +50,12 @@ export const mockDeviceStore: Device = {
setModuleConfig: vi.fn(),
setWorkingConfig: vi.fn(),
setWorkingModuleConfig: vi.fn(),
getWorkingConfig: vi.fn(),
getWorkingModuleConfig: vi.fn(),
removeWorkingConfig: vi.fn(),
removeWorkingModuleConfig: vi.fn(),
getEffectiveConfig: vi.fn(),
getEffectiveModuleConfig: vi.fn(),
setHardware: vi.fn(),
setActiveNode: vi.fn(),
setPendingSettingsChanges: vi.fn(),

20
src/core/stores/deviceStore.ts

@ -1,6 +1,6 @@
import { create, toBinary } from "@bufbuild/protobuf";
import { MeshDevice, Protobuf, Types } from "@meshtastic/core";
import { current, produce } from "immer";
import { produce } from "immer";
import { createContext, useContext } from "react";
import { create as createStore } from "zustand";
@ -69,7 +69,6 @@ export interface Device {
setModuleConfig: (config: Protobuf.ModuleConfig.ModuleConfig) => void;
setWorkingConfig: (config: Protobuf.Config.Config) => void;
setWorkingModuleConfig: (config: Protobuf.ModuleConfig.ModuleConfig) => void;
getWorkingConfig: (
payloadVariant: ValidConfigType,
) =>
@ -90,7 +89,6 @@ export interface Device {
getEffectiveModuleConfig<K extends ValidModuleConfigType>(
payloadVariant: K,
): Protobuf.LocalOnly.LocalModuleConfig[K] | undefined;
setHardware: (hardware: Protobuf.Mesh.MyNodeInfo) => void;
setActiveNode: (node: number) => void;
setPendingSettingsChanges: (state: boolean) => void;
@ -194,6 +192,7 @@ export const useDeviceStore = createStore<PrivateDeviceState>((set, get) => ({
produce<PrivateDeviceState>((draft) => {
const device = draft.devices.get(id);
if (device) {
console.debug("Setting config for device", id, config);
switch (config.payloadVariant.case) {
case "device": {
device.config.device = config.payloadVariant.value;
@ -342,9 +341,16 @@ export const useDeviceStore = createStore<PrivateDeviceState>((set, get) => ({
const device = get().devices.get(id);
if (!device) return;
return device.workingConfig.find(
const workingConfig = device.workingConfig.find(
(c) => c.payloadVariant.case === payloadVariant,
)?.payloadVariant.value;
);
if (
workingConfig?.payloadVariant.case === "deviceUi" ||
workingConfig?.payloadVariant.case === "sessionkey"
) return;
return workingConfig?.payloadVariant.value;
},
getWorkingModuleConfig: (payloadVariant: ValidModuleConfigType) => {
const device = get().devices.get(id);
@ -357,7 +363,7 @@ export const useDeviceStore = createStore<PrivateDeviceState>((set, get) => ({
removeWorkingConfig: (payloadVariant?: ValidConfigType) => {
set(
produce<DeviceState>((draft) => {
produce<PrivateDeviceState>((draft) => {
const device = draft.devices.get(id);
if (!device) return;
@ -381,7 +387,7 @@ export const useDeviceStore = createStore<PrivateDeviceState>((set, get) => ({
payloadVariant?: ValidModuleConfigType,
) => {
set(
produce<DeviceState>((draft) => {
produce<PrivateDeviceState>((draft) => {
const device = draft.devices.get(id);
if (!device) return;

2
src/core/utils/deepCompareConfig.test.ts

@ -1,5 +1,5 @@
import { describe, expect, it } from "vitest";
import { deepCompareConfig } from "./deepCompareConfig";
import { deepCompareConfig } from "./deepCompareConfig.ts";
describe("deepCompareConfig", () => {
it("returns true for identical primitives", () => {

4
src/validation/config/security.test.ts

@ -53,7 +53,7 @@ describe("RawSecuritySchema", () => {
if (!result.success) {
expect(
result.error.issues.some((i) =>
i.message === "formValidation.adminKeyRequiredWhenManaged"
i.message === "formValidation.required.managed"
),
).toBe(true);
}
@ -103,7 +103,7 @@ describe("ParsedSecuritySchema", () => {
if (!result.success) {
expect(
result.error.issues.some((i) =>
i.message === "formValidation.adminKeyRequiredWhenManaged"
i.message === "formValidation.required.managed"
),
).toBe(true);
}

Loading…
Cancel
Save