diff --git a/packages/listener-solidarity/src/utils/__tests__/getStatus.spec.ts b/packages/listener-solidarity/src/utils/__tests__/getStatus.spec.ts new file mode 100644 index 00000000..20007170 --- /dev/null +++ b/packages/listener-solidarity/src/utils/__tests__/getStatus.spec.ts @@ -0,0 +1,19 @@ +import { getStatus } from "../getSupportRequests"; + +describe("getStatus", () => { + it("should return 'open' if zendeskStatus is an empty string", () => { + expect(getStatus("")).toStrictEqual("open"); + }); + + it("should return 'open' if zendeskStatus is not found in newStatus key/value pair", () => { + expect(getStatus("encaminhamento__realizado")).toStrictEqual("open"); + }); + + it("should return 'open' if zendeskStatus is 'solicitacao_recebida'", () => { + expect(getStatus("solicitação_recebida")).toStrictEqual("open"); + }); + + it("should return 'duplicated' if zendeskStatus is 'solicitação_repetida'", () => { + expect(getStatus("solicitação_repetida")).toStrictEqual("duplicated"); + }); +}); diff --git a/packages/listener-solidarity/src/utils/getSupportRequests.ts b/packages/listener-solidarity/src/utils/getSupportRequests.ts index f1b6c2de..25d0900e 100644 --- a/packages/listener-solidarity/src/utils/getSupportRequests.ts +++ b/packages/listener-solidarity/src/utils/getSupportRequests.ts @@ -1,3 +1,4 @@ +import { getStatusAcolhimento } from "."; import { SupportRequestPayload, Ticket, User } from "../types"; export function getSupportType(subject: string) { @@ -19,6 +20,22 @@ export function sanitizeCity(city: string) { return city; } +export function getStatus(zendeskStatus: string) { + if (!zendeskStatus) return "open"; + + const newStatus = { + solicitação_repetida: "duplicated", + solicitação_recebida: "open", + }; + + const unsupportedStatus = Object.keys(newStatus).find( + (key) => zendeskStatus === key + ); + if (!unsupportedStatus) return "open"; + + return newStatus[zendeskStatus]; +} + export default function getSupportRequests( ticket: Ticket, msrs: User[]