sistema-de-chamados/tests/devices/remote-access.test.ts

61 lines
1.7 KiB
TypeScript

import { describe, expect, it } from "bun:test"
import { normalizeDeviceRemoteAccess } from "@/components/admin/devices/admin-devices-overview"
describe("normalizeDeviceRemoteAccess", () => {
it("returns null when value is empty", () => {
expect(normalizeDeviceRemoteAccess(undefined)).toBeNull()
expect(normalizeDeviceRemoteAccess(" ")).toBeNull()
})
it("parses plain identifier strings", () => {
const result = normalizeDeviceRemoteAccess("PC-001")
expect(result).toEqual({
provider: null,
identifier: "PC-001",
url: null,
notes: null,
lastVerifiedAt: null,
metadata: null,
})
})
it("detects URLs in string input", () => {
const result = normalizeDeviceRemoteAccess("https://remote.example.com/session/123")
expect(result).toEqual({
provider: null,
identifier: null,
url: "https://remote.example.com/session/123",
notes: null,
lastVerifiedAt: null,
metadata: null,
})
})
it("normalizes object payload with aliases", () => {
const timestamp = 1_701_234_567_890
const result = normalizeDeviceRemoteAccess({
provider: "AnyDesk",
code: "123-456-789",
remoteUrl: "https://anydesk.com/session/123",
note: "Suporte avançado",
verifiedAt: timestamp,
extraTag: "vip",
})
expect(result).toEqual({
provider: "AnyDesk",
identifier: "123-456-789",
url: "https://anydesk.com/session/123",
notes: "Suporte avançado",
lastVerifiedAt: timestamp,
metadata: {
provider: "AnyDesk",
code: "123-456-789",
remoteUrl: "https://anydesk.com/session/123",
note: "Suporte avançado",
verifiedAt: timestamp,
extraTag: "vip",
},
})
})
})