forked from Yara724/api
Fixed GET users
This commit is contained in:
86
src/helpers/tenant-scope.spec.ts
Normal file
86
src/helpers/tenant-scope.spec.ts
Normal 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);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user