From cb09b0d4b26e7ec0bd47c861995111428cf2fa73 Mon Sep 17 00:00:00 2001 From: Lucas Li <35748253+yzlucas@users.noreply.github.com> Date: Wed, 1 Oct 2025 11:42:22 -0700 Subject: [PATCH] wfprev-811 (#995) --- .../endorsement-approval.component.spec.ts | 16 ++++++++++++---- .../endorsement-approval.component.ts | 5 +++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/client/wfprev-war/src/main/angular/src/app/components/edit-project/endorsement-approval/endorsement-approval.component.spec.ts b/client/wfprev-war/src/main/angular/src/app/components/edit-project/endorsement-approval/endorsement-approval.component.spec.ts index 5686cac67..f2ed28479 100644 --- a/client/wfprev-war/src/main/angular/src/app/components/edit-project/endorsement-approval/endorsement-approval.component.spec.ts +++ b/client/wfprev-war/src/main/angular/src/app/components/edit-project/endorsement-approval/endorsement-approval.component.spec.ts @@ -98,18 +98,26 @@ describe('EndorsementApprovalComponent', () => { }); - it('should return effectiveEndorserName as currentUser when endorseFiscalActivity checked', () => { + it('should return effectiveEndorserName as fiscal endorser when present', () => { component.fiscal = mockFiscal; component.endorsementApprovalForm.get('endorseFiscalActivity')?.setValue(true); + expect(component.effectiveEndorserName).toBe('Alice'); + }); + + it('should return currentUser when no fiscal endorser and endorseFiscalActivity checked', () => { + const noEndorserFiscal: ProjectFiscal = { ...mockFiscal, endorserName: undefined }; + component.fiscal = noEndorserFiscal; + component.endorsementApprovalForm.get('endorseFiscalActivity')?.setValue(true); expect(component.effectiveEndorserName).toBe('Test User'); }); - it('should clear effectiveEndorserName as fiscal endorser when endorseFiscalActivity unchecked', () => { - component.fiscal = mockFiscal; + it('should return empty string when no fiscal endorser and endorseFiscalActivity unchecked', () => { + const noEndorserFiscal: ProjectFiscal = { ...mockFiscal, endorserName: undefined }; + component.fiscal = noEndorserFiscal; component.endorsementApprovalForm.get('endorseFiscalActivity')?.setValue(false); expect(component.effectiveEndorserName).toBe(''); }); - + it('should emit saveEndorsement with updated fiscal on save', () => { const emitSpy = spyOn(component.saveEndorsement, 'emit'); component.fiscal = mockFiscal; diff --git a/client/wfprev-war/src/main/angular/src/app/components/edit-project/endorsement-approval/endorsement-approval.component.ts b/client/wfprev-war/src/main/angular/src/app/components/edit-project/endorsement-approval/endorsement-approval.component.ts index 7a966f8dc..ecc764db3 100644 --- a/client/wfprev-war/src/main/angular/src/app/components/edit-project/endorsement-approval/endorsement-approval.component.ts +++ b/client/wfprev-war/src/main/angular/src/app/components/edit-project/endorsement-approval/endorsement-approval.component.ts @@ -117,6 +117,11 @@ export class EndorsementApprovalComponent implements OnChanges { } get effectiveEndorserName(): string { + // use the endorserName if set + if (this.fiscal?.endorserName) { + return this.fiscal.endorserName; + } + // or fall back to currentUser if the form is checked const checked = this.endorsementApprovalForm.get('endorseFiscalActivity')?.value; return checked ? this.currentUser : ''; }