Skip to content

Commit

Permalink
Merge pull request #6355 from NMDSdevopsServiceAdm/fix/1500-seeing-se…
Browse files Browse the repository at this point in the history
…rvice-capacity-when-it-is-not-applicable

fix/1500-seeing-service-capacity-when-it-is-not-applicable
  • Loading branch information
ssrome authored Sep 13, 2024
2 parents 2727b37 + d39243b commit 09ffef8
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 7 deletions.
16 changes: 16 additions & 0 deletions frontend/src/app/core/test-utils/MockEstablishmentService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<any> {
return of({
allServiceCapacities: [],
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,11 @@ <h2 class="govuk-heading-m govuk-!-padding-top-1">Services</h2>
></app-summary-record-change>
</dd>
</div>
<div *ngIf="!workplace.showAddWorkplaceDetailsBanner" class="govuk-summary-list__row" data-testid="serviceCapacity">
<div
*ngIf="!workplace.showAddWorkplaceDetailsBanner && hasCapacity"
class="govuk-summary-list__row"
data-testid="serviceCapacity"
>
<dt class="govuk-summary-list__key">Service capacity</dt>
<dd class="govuk-summary-list__value">
<app-summary-record-value>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,23 @@ 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';

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: [
Expand All @@ -29,7 +37,7 @@ describe('NewWorkplaceSummaryComponent', () => {
},
{
provide: EstablishmentService,
useClass: MockEstablishmentService,
useClass: hasQuestions ? MockEstablishmentService : MockEstablishmentServiceWithNoCapacities,
},
{
provide: CqcStatusChangeService,
Expand Down Expand Up @@ -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');
Expand All @@ -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();

Expand Down

0 comments on commit 09ffef8

Please sign in to comment.