Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,7 @@

switch (requestData.latestAdditionalSalaryRequest?.status) {
case AsrStatusEnum.ActionRequired:
case AsrStatusEnum.Pending:

Check notice on line 66 in pages/accountLists/[accountListId]/hrTools/additionalSalaryRequest/index.page.tsx

View check run for this annotation

CodeScene Delta Analysis / CodeScene Code Health Review (main)

✅ Getting better: Complex Method

AdditionalSalaryRequestRouter:React.FC decreases in cyclomatic complexity from 20 to 16, threshold = 15. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
case AsrStatusEnum.PendingDivisionHeadApproval:
case AsrStatusEnum.PendingVpApproval:
case AsrStatusEnum.PendingManagementApproval:
case AsrStatusEnum.PendingBoardApproval:
case AsrStatusEnum.ApprovedNotPaid:
// ActionRequired normally returns the <AdditionalSalaryRequest /> component accept when pageType is View or Edit
return pageType === PageEnum.Edit || pageType === PageEnum.View ? (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,6 @@ query AdditionalSalaryRequest($isSpouse: Boolean) {
IN_PROGRESS
ACTION_REQUIRED
PENDING
PENDING_DIVISION_HEAD_APPROVAL
PENDING_VP_APPROVAL
PENDING_MANAGEMENT_APPROVAL
PENDING_BOARD_APPROVAL
APPROVED_NOT_PAID
APPROVED_AND_PAID
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,16 +148,10 @@ describe('AdditionalSalaryRequest', () => {
expect(queryByText(/currently has a pending request/i)).toBeNull();
});

it.each([
AsrStatusEnum.Pending,
AsrStatusEnum.PendingDivisionHeadApproval,
AsrStatusEnum.PendingVpApproval,
AsrStatusEnum.PendingManagementApproval,
AsrStatusEnum.PendingBoardApproval,
])('displays pending request message when status is %s', async (status) => {
it('displays pending request message when status is Pending', async () => {
const pendingRequest = {
...mockRequest,
status,
status: AsrStatusEnum.Pending,
submittedAt: '2024-01-15T00:00:00Z',
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,10 @@ const TestWrapper: React.FC<TestWrapperProps> = ({
};

describe('EligibleDisplay', () => {
it.each([
AsrStatusEnum.Pending,
AsrStatusEnum.PendingDivisionHeadApproval,
AsrStatusEnum.PendingVpApproval,
AsrStatusEnum.PendingManagementApproval,
AsrStatusEnum.PendingBoardApproval,
])('renders relevant pending messages - %s', async (status) => {
const { findByText } = render(<TestWrapper status={status} />);
it('renders relevant pending messages', async () => {
const { findByText } = render(
<TestWrapper status={AsrStatusEnum.Pending} />,
);

expect(
await findByText('Your Additional Salary Request'),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,12 +186,7 @@
});

const status = requestData?.latestAdditionalSalaryRequest?.status;
const isPending =
status === AsrStatusEnum.Pending ||
status === AsrStatusEnum.PendingDivisionHeadApproval ||
status === AsrStatusEnum.PendingVpApproval ||
status === AsrStatusEnum.PendingManagementApproval ||
status === AsrStatusEnum.PendingBoardApproval;
const isPending = status === AsrStatusEnum.Pending;

Check notice on line 189 in src/components/HrTools/AdditionalSalaryRequest/Shared/AdditionalSalaryRequestContext.tsx

View check run for this annotation

CodeScene Delta Analysis / CodeScene Code Health Review (main)

✅ Getting better: Complex Method

AdditionalSalaryRequestProvider:React.FC<Props> decreases in cyclomatic complexity from 29 to 25, threshold = 15. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
const isApproved =
status === AsrStatusEnum.ApprovedNotPaid ||
status === AsrStatusEnum.ApprovedAndPaid;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,8 @@ import { getDotColor } from './getDotColor';

describe('getDotColor', () => {
describe('submitted step', () => {
it.each([
AsrStatusEnum.Pending,
AsrStatusEnum.PendingDivisionHeadApproval,
AsrStatusEnum.PendingVpApproval,
AsrStatusEnum.PendingManagementApproval,
AsrStatusEnum.PendingBoardApproval,
])('returns success.main when status is not InProgress - %s', (status) => {
expect(getDotColor(status, 'submitted', true, false)).toBe(
it('returns success.main when status is Pending', () => {
expect(getDotColor(AsrStatusEnum.Pending, 'submitted', true, false)).toBe(
'success.main',
);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,10 @@ describe('getDotVariant', () => {
});
});
describe('with Pending status', () => {
it.each([
AsrStatusEnum.Pending,
AsrStatusEnum.PendingDivisionHeadApproval,
AsrStatusEnum.PendingVpApproval,
AsrStatusEnum.PendingManagementApproval,
AsrStatusEnum.PendingBoardApproval,
])('returns filled with step submitted - %s', (status) => {
expect(getDotVariant(status, 'submitted', true, false)).toBe('filled');
it('returns filled with step submitted', () => {
expect(
getDotVariant(AsrStatusEnum.Pending, 'submitted', true, false),
).toBe('filled');
});

it('returns filled with step processed', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,29 +161,18 @@ describe('CurrentRequest', () => {
});

describe('timeline status - Pending', () => {
it.each([
AsrStatusEnum.Pending,
AsrStatusEnum.PendingDivisionHeadApproval,
AsrStatusEnum.PendingVpApproval,
AsrStatusEnum.PendingManagementApproval,
AsrStatusEnum.PendingBoardApproval,
])(
'displays "Requested on:" with date for submitted requests - %s',
(status) => {
const pendingRequest: RequestType = {
...mockRequest,
status,
submittedAt: '2025-06-10T00:00:00.000Z',
};

const { getByText } = render(
<TestComponent request={pendingRequest} />,
);

expect(getByText('Requested on:')).toBeInTheDocument();
expect(getByText(/Jun 10, 2025/)).toBeInTheDocument();
},
);
it('displays "Requested on:" with date for submitted requests', () => {
const pendingRequest: RequestType = {
...mockRequest,
status: AsrStatusEnum.Pending,
submittedAt: '2025-06-10T00:00:00.000Z',
};

const { getByText } = render(<TestComponent request={pendingRequest} />);

expect(getByText('Requested on:')).toBeInTheDocument();
expect(getByText(/Jun 10, 2025/)).toBeInTheDocument();
});

it('displays "Request In Process" for pending status', () => {
const pendingRequest: RequestType = {
Expand Down
Loading