1
0
forked from Yara724/api

Fixed GET users

This commit is contained in:
2026-06-18 18:15:20 +03:30
parent d8f7766f10
commit dcc3ee71de
11 changed files with 368 additions and 103 deletions

View File

@@ -0,0 +1,86 @@
import { Types } from "mongoose";
import {
blameCaseInitiatedByFieldExpert,
claimCaseInitiatedByFieldExpert,
} from "./tenant-scope";
describe("field expert ownership helpers", () => {
const expertId = new Types.ObjectId();
const otherExpertId = new Types.ObjectId();
const blameId = new Types.ObjectId();
describe("blameCaseInitiatedByFieldExpert", () => {
it("matches when initiatedByFieldExpertId equals actor.sub (string)", () => {
expect(
blameCaseInitiatedByFieldExpert(
{
expertInitiated: true,
initiatedByFieldExpertId: expertId,
},
{ sub: String(expertId) },
),
).toBe(true);
});
it("does not require actor.role on JWT", () => {
expect(
blameCaseInitiatedByFieldExpert(
{
expertInitiated: true,
initiatedByFieldExpertId: expertId,
},
{ sub: String(expertId) },
),
).toBe(true);
});
it("rejects another expert", () => {
expect(
blameCaseInitiatedByFieldExpert(
{
expertInitiated: true,
initiatedByFieldExpertId: expertId,
},
{ sub: String(otherExpertId) },
),
).toBe(false);
});
});
describe("claimCaseInitiatedByFieldExpert", () => {
it("matches claim.initiatedByFieldExpertId", () => {
expect(
claimCaseInitiatedByFieldExpert(
{ initiatedByFieldExpertId: expertId },
{ sub: String(expertId) },
),
).toBe(true);
});
it("matches via linked expert-initiated blame when claim field is missing", () => {
expect(
claimCaseInitiatedByFieldExpert(
{ blameRequestId: blameId },
{ sub: String(expertId) },
{
expertInitiated: true,
initiatedByFieldExpertId: expertId,
},
),
).toBe(true);
});
it("rejects when neither claim nor blame links to actor", () => {
expect(
claimCaseInitiatedByFieldExpert(
{ blameRequestId: blameId },
{ sub: String(expertId) },
{
expertInitiated: true,
initiatedByFieldExpertId: otherExpertId,
},
),
).toBe(false);
});
});
});