Select Git revision
formservice.abstract.spec.ts
-
OZGCloud authored
# Conflicts: # alfa-client/libs/admin-settings/src/lib/admin-settings.module.ts # alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts # alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts # alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.ts # alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts # alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts # alfa-client/libs/command-shared/src/index.ts # alfa-client/libs/tech-shared/src/index.ts # alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.spec.ts # alfa-client/libs/tech-shared/src/lib/resource/resource.service.itcase.spec.ts # alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts # alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts # alfa-client/libs/tech-shared/src/lib/resource/resource.util.ts # alfa-client/libs/tech-shared/test/marbles.ts
OZGCloud authored# Conflicts: # alfa-client/libs/admin-settings/src/lib/admin-settings.module.ts # alfa-client/libs/admin-settings/src/lib/organisationseinheit/organisationseinheit-container/organisationseinheit-form/organisationseinheit.formservice.spec.ts # alfa-client/libs/admin-settings/src/lib/postfach/postfach-container/postfach-form/postfach-form.component.spec.ts # alfa-client/libs/admin-settings/src/lib/postfach/postfach.service.ts # alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts # alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts # alfa-client/libs/command-shared/src/index.ts # alfa-client/libs/tech-shared/src/index.ts # alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.spec.ts # alfa-client/libs/tech-shared/src/lib/resource/resource.service.itcase.spec.ts # alfa-client/libs/tech-shared/src/lib/resource/resource.service.spec.ts # alfa-client/libs/tech-shared/src/lib/resource/resource.service.ts # alfa-client/libs/tech-shared/src/lib/resource/resource.util.ts # alfa-client/libs/tech-shared/test/marbles.ts
formservice.abstract.spec.ts 6.33 KiB
/*
* Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
import { CommandResource } from '@alfa-client/command-shared';
import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
import { Resource } from '@ngxp/rest';
import { cold } from 'jest-marbles';
import {
createApiError,
createInvalidParam,
createIssue,
createProblemDetail,
} from 'libs/tech-shared/test/error';
import { Observable, of } from 'rxjs';
import { AbstractFormService } from './formservice.abstract';
import {
StateResource,
createEmptyStateResource,
createErrorStateResource,
} from '../resource/resource.util';
import { ApiError, HttpError, InvalidParam, Issue, ProblemDetail } from '../tech.model';
import * as ValidationUtil from '../validation/tech.validation.util';
describe('AbstractFormService', () => {
let formService: AbstractFormService;
beforeEach(() => {
formService = new TestFormService(new UntypedFormBuilder());
});
it('should create', () => {
expect(formService).toBeTruthy();
});
describe('submit', () => {
describe('with api error', () => {
const stateResourceWithError: StateResource<ApiError> =
createErrorStateResource(createApiError());
beforeEach(() => {
TestFormService.SUBMIT_OBSERVABLE = () => of(stateResourceWithError);
formService.handleResponse = jest.fn((stateResource) => stateResource);
});
it('should call handle response for api error', (done) => {
formService.submit().subscribe(() => {
expect(formService.handleResponse).toHaveBeenCalledWith(stateResourceWithError);
done();
});