import { describe, expect, it } from "vitest" ;
import { normalizeDeviceAuthRole, normalizeDeviceAuthScopes } from "./device-auth.js" ;
describe("shared/device-auth" , () => {
it("trims device auth roles without further rewriting" , () => {
expect(normalizeDeviceAuthRole(" operator " )).toBe("operator" );
expect(normalizeDeviceAuthRole("" )).toBe("" );
expect(normalizeDeviceAuthRole(" NODE.Admin " )).toBe("NODE.Admin" );
});
it("dedupes, trims, sorts, and filters auth scopes" , () => {
expect(
normalizeDeviceAuthScopes([" node.invoke " , "operator.read" , "" , "node.invoke" , "a.scope" ]),
).toEqual(["a.scope" , "node.invoke" , "operator.read" ]);
expect(normalizeDeviceAuthScopes(undefined)).toEqual([]);
expect(normalizeDeviceAuthScopes(null as unknown as string[])).toEqual([]);
expect(normalizeDeviceAuthScopes([" " , "\t" , "\n" ])).toEqual([]);
expect(normalizeDeviceAuthScopes(["z.scope" , "A.scope" , "m.scope" ])).toEqual([
"A.scope" ,
"m.scope" ,
"z.scope" ,
]);
});
it("expands implied operator scopes for stored device auth" , () => {
expect(normalizeDeviceAuthScopes(["operator.write" ])).toEqual([
"operator.read" ,
"operator.write" ,
]);
expect(normalizeDeviceAuthScopes(["operator.admin" ])).toEqual([
"operator.admin" ,
"operator.read" ,
"operator.write" ,
]);
});
});
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-09)
¤
*© Formatika GbR, Deutschland