diff --git a/frontend/src/app/core/test-utils/MockEstablishmentService.ts b/frontend/src/app/core/test-utils/MockEstablishmentService.ts index 96d857e834..c94eaf948a 100644 --- a/frontend/src/app/core/test-utils/MockEstablishmentService.ts +++ b/frontend/src/app/core/test-utils/MockEstablishmentService.ts @@ -409,3 +409,19 @@ export class MockEstablishmentServiceCheckCQCDetails extends MockEstablishmentSe return this.cqcDetailsBanner; } } + +@Injectable() +export class MockEstablishmentServiceWithNoCapacities extends MockEstablishmentService { + public static factory() { + return (httpClient: HttpClient) => { + const service = new MockEstablishmentServiceWithNoCapacities(httpClient); + return service; + }; + } + + public getCapacity(establishmentId: any, all: boolean): Observable { + return of({ + allServiceCapacities: [], + }); + } +} diff --git a/frontend/src/app/shared/components/new-workplace-summary/workplace-summary.component.html b/frontend/src/app/shared/components/new-workplace-summary/workplace-summary.component.html index 9285722705..7cfb278fca 100644 --- a/frontend/src/app/shared/components/new-workplace-summary/workplace-summary.component.html +++ b/frontend/src/app/shared/components/new-workplace-summary/workplace-summary.component.html @@ -218,7 +218,11 @@

Services

> -
+
Service capacity
diff --git a/frontend/src/app/shared/components/new-workplace-summary/workplace-summary.component.spec.ts b/frontend/src/app/shared/components/new-workplace-summary/workplace-summary.component.spec.ts index 56fdc4c2f9..8d08c2ba99 100644 --- a/frontend/src/app/shared/components/new-workplace-summary/workplace-summary.component.spec.ts +++ b/frontend/src/app/shared/components/new-workplace-summary/workplace-summary.component.spec.ts @@ -10,7 +10,11 @@ import { EstablishmentService } from '@core/services/establishment.service'; import { PermissionsService } from '@core/services/permissions/permissions.service'; import { UserService } from '@core/services/user.service'; import { MockCqcStatusChangeService } from '@core/test-utils/MockCqcStatusChangeService'; -import { establishmentWithShareWith, MockEstablishmentService } from '@core/test-utils/MockEstablishmentService'; +import { + establishmentWithShareWith, + MockEstablishmentService, + MockEstablishmentServiceWithNoCapacities, +} from '@core/test-utils/MockEstablishmentService'; import { MockPermissionsService } from '@core/test-utils/MockPermissionsService'; import { SharedModule } from '@shared/shared.module'; import { fireEvent, render, within } from '@testing-library/angular'; @@ -18,7 +22,11 @@ import { fireEvent, render, within } from '@testing-library/angular'; import { NewWorkplaceSummaryComponent } from './workplace-summary.component'; describe('NewWorkplaceSummaryComponent', () => { - const setup = async (shareWith = null, permissions = ['canEditEstablishment'] as PermissionType[]) => { + const setup = async ( + shareWith = null, + permissions = ['canEditEstablishment'] as PermissionType[], + hasQuestions = true, + ) => { const { fixture, getByText, queryByText, getByTestId, queryByTestId } = await render(NewWorkplaceSummaryComponent, { imports: [SharedModule, RouterModule, RouterTestingModule, HttpClientTestingModule, ReactiveFormsModule], providers: [ @@ -29,7 +37,7 @@ describe('NewWorkplaceSummaryComponent', () => { }, { provide: EstablishmentService, - useClass: MockEstablishmentService, + useClass: hasQuestions ? MockEstablishmentService : MockEstablishmentServiceWithNoCapacities, }, { provide: CqcStatusChangeService, @@ -616,11 +624,35 @@ describe('NewWorkplaceSummaryComponent', () => { }); describe('Service capacity', () => { - it('should show dash and have Add information button on when capacities is an empty array', async () => { + it('should not show if there are no allServiceCapacities and showAddWorkplaceDetailsBanner is false', async () => { + const { component, fixture, queryByTestId } = await setup(null, ['canEditEstablishment'], false); + + component.workplace.showAddWorkplaceDetailsBanner = false; + + fixture.detectChanges(); + + const serviceCapacityRow = queryByTestId('serviceCapacity'); + + expect(serviceCapacityRow).toBeFalsy(); + }); + + it('should not show if there are no allServiceCapacities and showAddWorkplaceDetailsBanner is true', async () => { + const { component, fixture, queryByTestId } = await setup(null, ['canEditEstablishment'], false); + + component.workplace.showAddWorkplaceDetailsBanner = true; + + fixture.detectChanges(); + + const serviceCapacityRow = queryByTestId('serviceCapacity'); + + expect(serviceCapacityRow).toBeFalsy(); + }); + + it('should show dash and have Add information button if there are allServiceCapacities and showAddWorkplaceDetailsBanner is false', async () => { const { component, fixture } = await setup(); - component.workplace.capacities = []; - component.canEditEstablishment = true; + component.workplace.showAddWorkplaceDetailsBanner = false; + fixture.detectChanges(); const serviceCapacityRow = within(document.body).queryByTestId('serviceCapacity'); @@ -631,6 +663,18 @@ describe('NewWorkplaceSummaryComponent', () => { expect(within(serviceCapacityRow).queryByText('-')).toBeTruthy(); }); + it('should not show if there are allServiceCapacities and showAddWorkplaceDetailsBanner is true', async () => { + const { component, fixture, queryByTestId } = await setup(); + + component.workplace.showAddWorkplaceDetailsBanner = true; + + fixture.detectChanges(); + + const serviceCapacityRow = queryByTestId('serviceCapacity'); + + expect(serviceCapacityRow).toBeFalsy(); + }); + it('should show service capacity and have Change link when capacity array is not emtpy', async () => { const { component, fixture } = await setup();