Skip to content
Snippets Groups Projects
Commit 438c9f37 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-6720 set empty string as form value for patching'...

Merge pull request 'OZG-6720 set empty string as form value for patching' (#808) from OZG-6720-fix-patch-signatur into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/alfa/pulls/808


Reviewed-by: default avatarOZGCloud <ozgcloud@mgm-tp.com>
parents 2e7397a0 e3af91b5
No related branches found
No related tags found
No related merge requests found
import { AdminOrganisationsEinheitResource } from '@admin-client/admin-settings'; import { AdminOrganisationsEinheitResource, AdminOrganisationsEinheitSettings } from '@admin-client/admin-settings';
import { StateResource, createStateResource } from '@alfa-client/tech-shared'; import { EMPTY_STRING, StateResource, createStateResource } from '@alfa-client/tech-shared';
import { Mock, mock, useFromMock } from '@alfa-client/test-utils'; import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
import { FormBuilder } from '@angular/forms'; import { FormBuilder } from '@angular/forms';
import { faker } from '@faker-js/faker';
import { of } from 'rxjs'; import { of } from 'rxjs';
import { createAdminOrganisationsEinheitResource } from '../../../../../test/organisations-einheit/organisations-einheit'; import { createAdminOrganisationsEinheitResource } from '../../../../../test/organisations-einheit/organisations-einheit';
import { OrganisationsEinheitService } from '../../organisationseinheit.service'; import { OrganisationsEinheitService } from '../../organisationseinheit.service';
...@@ -23,6 +24,7 @@ describe('OrganisationsEinheitFormService', () => { ...@@ -23,6 +24,7 @@ describe('OrganisationsEinheitFormService', () => {
describe('submit', () => { describe('submit', () => {
const organisationsEinheitResource: AdminOrganisationsEinheitResource = createAdminOrganisationsEinheitResource(); const organisationsEinheitResource: AdminOrganisationsEinheitResource = createAdminOrganisationsEinheitResource();
const organisationsEinheitSettings: AdminOrganisationsEinheitSettings = { signatur: faker.lorem.word(2) };
beforeEach(() => { beforeEach(() => {
const stateResource: StateResource<AdminOrganisationsEinheitResource> = createStateResource(organisationsEinheitResource); const stateResource: StateResource<AdminOrganisationsEinheitResource> = createStateResource(organisationsEinheitResource);
...@@ -31,12 +33,38 @@ describe('OrganisationsEinheitFormService', () => { ...@@ -31,12 +33,38 @@ describe('OrganisationsEinheitFormService', () => {
service.form.setValue({ service.form.setValue({
[OrganisationsEinheitFormService.ORGANISATIONSEINHEIT_SIGNATUR_FIELD]: organisationsEinheitResource.settings.signatur, [OrganisationsEinheitFormService.ORGANISATIONSEINHEIT_SIGNATUR_FIELD]: organisationsEinheitResource.settings.signatur,
}); });
service.buildPatchedOrganisationsEinheitSettings = jest.fn().mockReturnValue(organisationsEinheitSettings);
}); });
it('should call organisationsEinheitService patch', () => { it('should call organisationsEinheitService patch', () => {
service.submit(); service.submit();
expect(organisationsEinheitService.patch).toHaveBeenCalledWith(organisationsEinheitResource.settings); expect(organisationsEinheitService.patch).toHaveBeenCalledWith(organisationsEinheitSettings);
});
it('should build patched form value', () => {
service.submit();
expect(service.buildPatchedOrganisationsEinheitSettings).toHaveBeenCalled();
});
});
describe('buildPatchedOrganisationsEinheitSettings', () => {
it('should return empty string', () => {
service.form.controls[OrganisationsEinheitFormService.ORGANISATIONSEINHEIT_SIGNATUR_FIELD].setValue(null);
const signatur: string = service.buildPatchedOrganisationsEinheitSettings().signatur;
expect(signatur).toEqual(EMPTY_STRING);
});
it('should return signatur', () => {
const formValueSignatur: string = faker.lorem.word(2);
service.form.controls[OrganisationsEinheitFormService.ORGANISATIONSEINHEIT_SIGNATUR_FIELD].setValue(formValueSignatur);
const signatur: string = service.buildPatchedOrganisationsEinheitSettings().signatur;
expect(signatur).toEqual(formValueSignatur);
}); });
}); });
}); });
import { AdminOrganisationsEinheitResource } from '@admin-client/admin-settings'; import { AdminOrganisationsEinheitResource, AdminOrganisationsEinheitSettings } from '@admin-client/admin-settings';
import { AbstractFormService, EMPTY_STRING, StateResource } from '@alfa-client/tech-shared'; import { AbstractFormService, EMPTY_STRING, StateResource } from '@alfa-client/tech-shared';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { FormControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { FormControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
...@@ -23,7 +23,12 @@ export class OrganisationsEinheitFormService extends AbstractFormService { ...@@ -23,7 +23,12 @@ export class OrganisationsEinheitFormService extends AbstractFormService {
} }
protected doSubmit(): Observable<StateResource<AdminOrganisationsEinheitResource>> { protected doSubmit(): Observable<StateResource<AdminOrganisationsEinheitResource>> {
return this.organisationsEinheitService.patch(this.getFormValue()); return this.organisationsEinheitService.patch(this.buildPatchedOrganisationsEinheitSettings());
}
buildPatchedOrganisationsEinheitSettings(): AdminOrganisationsEinheitSettings {
const signatur: string = this.getFormValue().signatur ? this.getFormValue().signatur : '';
return { signatur };
} }
protected getPathPrefix(): string { protected getPathPrefix(): string {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment