All files / libs/kernel/auth/shared/src/abilities/statements subjects.ts

100% Statements 21/21
100% Branches 2/2
100% Functions 2/2
100% Lines 21/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 221x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
import { subject } from '@casl/ability';
 
import { type Statement } from '@amalia/core/types';
 
import { SubjectsEnum } from '../../types';
 
export type StatementSubject = Pick<Statement, 'userId'> & {
  user?: Pick<Required<Statement>['user'], 'id'>;
  plan?: Pick<Required<Statement>['plan'], 'id' | 'isHidden'>;
  period?: Pick<Required<Statement>['period'], 'endDate' | 'startDate'>;
};
 
export const statementSubject = (payload: StatementSubject) => subject(SubjectsEnum.Statement, { ...payload });
 
export type ReviewStatementThreadSubject = {
  statement: StatementSubject;
  isReviewed: boolean;
};
 
export const reviewStatementThreadSubject = (payload: ReviewStatementThreadSubject) =>
  subject(SubjectsEnum.Statement, { ...payload });