diff --git a/alfa-client/apps/admin/src/app/app.module.ts b/alfa-client/apps/admin/src/app/app.module.ts index 5036e2f54cfd969333b209f909b99becb1f99971..089a1851424f1c2eca17a73b15d0b0ad3f132588 100644 --- a/alfa-client/apps/admin/src/app/app.module.ts +++ b/alfa-client/apps/admin/src/app/app.module.ts @@ -1,8 +1,11 @@ +import { AdminSettingsModule } from '@admin-client/admin-settings'; import { ApiRootModule } from '@alfa-client/api-root-shared'; import { EnvironmentModule } from '@alfa-client/environment-shared'; +import { TechSharedModule } from '@alfa-client/tech-shared'; import { CommonModule } from '@angular/common'; import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; import { NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterModule } from '@angular/router'; @@ -10,19 +13,16 @@ import { EffectsModule } from '@ngrx/effects'; import { StoreRouterConnectingModule } from '@ngrx/router-store'; import { StoreModule } from '@ngrx/store'; import { StoreDevtoolsModule } from '@ngrx/store-devtools'; -import { TestbtnComponent } from 'design-system'; -import { environment } from '../environments/environment'; -import { AppComponent } from './app.component'; -import { appRoutes } from './app.routes'; -import { PostfachPageComponent } from '../pages/postfach/postfach-page/postfach-page.component'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { UserProfileButtonContainerComponent } from '../common/user-profile-button-container/user-profile.button-container.component'; -import { AdminSettingsModule } from '@admin-client/admin-settings'; +import { TestbtnComponent } from '@ods/system'; import { OAuthModule } from 'angular-oauth2-oidc'; import { HttpUnauthorizedInterceptor } from 'libs/authentication/src/lib/http-unauthorized.interceptor'; +import { UserProfileButtonContainerComponent } from '../common/user-profile-button-container/user-profile.button-container.component'; +import { environment } from '../environments/environment'; import { OrganisationseinheitPageComponent } from '../pages/organisationseinheit/organisationseinheit-page/organisationseinheit-page.component'; +import { PostfachPageComponent } from '../pages/postfach/postfach-page/postfach-page.component'; import { UnavailablePageComponent } from '../pages/unavailable/unavailable-page/unavailable-page.component'; -import { TechSharedModule } from '@alfa-client/tech-shared'; +import { AppComponent } from './app.component'; +import { appRoutes } from './app.routes'; @NgModule({ declarations: [ diff --git a/alfa-client/apps/demo/src/app/app.component.ts b/alfa-client/apps/demo/src/app/app.component.ts index 592b72d0e4cf98c82c8ee23a793773a96d582901..08334251fefb523ab0868d6f23cd1a9eefd6c5d3 100644 --- a/alfa-client/apps/demo/src/app/app.component.ts +++ b/alfa-client/apps/demo/src/app/app.component.ts @@ -11,7 +11,7 @@ import { RadioButtonCardComponent, SpinnerIconComponent, TestbtnComponent, -} from 'design-system'; +} from '@ods/system'; import { BescheidDialogExampleComponent } from './components/bescheid-dialog/bescheid-dialog.component'; import { BescheidPaperComponent } from './components/bescheid-paper/bescheid-paper.component'; diff --git a/alfa-client/apps/demo/src/app/components/cdk-demo/custom-stepper.component.ts b/alfa-client/apps/demo/src/app/components/cdk-demo/custom-stepper.component.ts index 107fda7ed02b667e06e7cab3fec4cda3243db1fd..e7c05f02630bff453741036073ad8c5ed600a4fd 100644 --- a/alfa-client/apps/demo/src/app/components/cdk-demo/custom-stepper.component.ts +++ b/alfa-client/apps/demo/src/app/components/cdk-demo/custom-stepper.component.ts @@ -1,8 +1,7 @@ -import { Component } from '@angular/core'; import { CdkStepper, CdkStepperModule } from '@angular/cdk/stepper'; import { NgTemplateOutlet } from '@angular/common'; -import { TestbtnComponent } from 'design-system'; - +import { Component } from '@angular/core'; +import { TestbtnComponent } from '@ods/system'; @Component({ standalone: true, diff --git a/alfa-client/libs/binary-file/src/lib/binary-file.module.ts b/alfa-client/libs/binary-file/src/lib/binary-file.module.ts index 267a83df8e1b1d3361e5a286d382e4c7c058cbeb..be19caa8ba5b144191d80ae8db1667e0313cc59c 100644 --- a/alfa-client/libs/binary-file/src/lib/binary-file.module.ts +++ b/alfa-client/libs/binary-file/src/lib/binary-file.module.ts @@ -25,7 +25,7 @@ import { TechSharedModule } from '@alfa-client/tech-shared'; import { UiModule } from '@alfa-client/ui'; import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { AttachmentComponent, IconComponent, SpinnerIconComponent } from 'design-system'; +import { AttachmentComponent, IconComponent, SpinnerIconComponent } from '@ods/system'; import { BinaryFileAttachmentContainerComponent } from './binary-file-attachment-container/binary-file-attachment-container.component'; import { BinaryFileContainerComponent } from './binary-file-container/binary-file-container.component'; import { BinaryFileComponent } from './binary-file-container/binary-file/binary-file.component'; diff --git a/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.spec.ts b/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.spec.ts index b14918613ee424b344810b53ecc47b6fdf80861c..7c00e9810420d0832b6bd7dff962ea512db3ca03 100644 --- a/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.spec.ts +++ b/alfa-client/libs/binary-file/src/lib/binary-file2-container/binary-file2/binary-file2.component.spec.ts @@ -3,7 +3,7 @@ import { BinaryFileLinkRel, BinaryFileResource } from '@alfa-client/binary-file- import { SpinnerComponent } from '@alfa-client/ui'; import { ComponentFixture, TestBed, fakeAsync, tick } from '@angular/core/testing'; import { faker } from '@faker-js/faker'; -import { AttachmentComponent, IconComponent } from 'design-system'; +import { AttachmentComponent, IconComponent } from '@ods/system'; import { createBinaryFileResource } from 'libs/binary-file-shared/test/binary-file'; import { FileSizePlainPipe } from 'libs/tech-shared/src/lib/pipe/file-size-plain.pipe'; import { MockComponent, MockPipe } from 'ng-mocks'; diff --git a/alfa-client/libs/design-component/.eslintrc.json b/alfa-client/libs/design-component/.eslintrc.json new file mode 100644 index 0000000000000000000000000000000000000000..d7eea6e63619bb4f93196655793dddbc519ad3bd --- /dev/null +++ b/alfa-client/libs/design-component/.eslintrc.json @@ -0,0 +1,33 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts"], + "extends": ["plugin:@nx/angular", "plugin:@angular-eslint/template/process-inline-templates"], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "ods", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "ods", + "style": "kebab-case" + } + ] + } + }, + { + "files": ["*.html"], + "extends": ["plugin:@nx/angular-template"], + "rules": {} + } + ] +} diff --git a/alfa-client/libs/design-component/README.md b/alfa-client/libs/design-component/README.md new file mode 100644 index 0000000000000000000000000000000000000000..592f9f94c13847de3b9f618f3b18e7d2e3ad0ef2 --- /dev/null +++ b/alfa-client/libs/design-component/README.md @@ -0,0 +1,7 @@ +# design-component + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test design-component` to execute the unit tests. diff --git a/alfa-client/libs/design-component/jest.config.ts b/alfa-client/libs/design-component/jest.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..2f4cb398aaefead27ce001eeed1d3075221d6e11 --- /dev/null +++ b/alfa-client/libs/design-component/jest.config.ts @@ -0,0 +1,22 @@ +/* eslint-disable */ +export default { + displayName: 'design-component', + preset: '../../jest.preset.js', + setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'], + coverageDirectory: '../../coverage/libs/design-component', + transform: { + '^.+\\.(ts|mjs|js|html)$': [ + 'jest-preset-angular', + { + tsconfig: '<rootDir>/tsconfig.spec.json', + stringifyContentPathRegex: '\\.(html|svg)$', + }, + ], + }, + transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'], + snapshotSerializers: [ + 'jest-preset-angular/build/serializers/no-ng-attributes', + 'jest-preset-angular/build/serializers/ng-snapshot', + 'jest-preset-angular/build/serializers/html-comment', + ], +}; diff --git a/alfa-client/libs/design-component/project.json b/alfa-client/libs/design-component/project.json new file mode 100644 index 0000000000000000000000000000000000000000..debe8b48a5967c37420ac2eb8f8bc35c6d36c932 --- /dev/null +++ b/alfa-client/libs/design-component/project.json @@ -0,0 +1,38 @@ +{ + "name": "design-component", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/design-component/src", + "prefix": "ods", + "tags": [], + "projectType": "library", + "targets": { + "test": { + "executor": "@nx/jest:jest", + "outputs": [ + "{workspaceRoot}/coverage/{projectRoot}" + ], + "options": { + "jestConfig": "libs/design-component/jest.config.ts", + "passWithNoTests": true + }, + "configurations": { + "ci": { + "ci": true, + "codeCoverage": true + } + } + }, + "lint": { + "executor": "@nx/eslint:lint", + "outputs": [ + "{options.outputFile}" + ], + "options": { + "lintFilePatterns": [ + "libs/design-component/**/*.ts", + "libs/design-component/**/*.html" + ] + } + } + } +} \ No newline at end of file diff --git a/alfa-client/libs/design-component/src/index.ts b/alfa-client/libs/design-component/src/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..72d1c0c5131339ff9a97af910b9e30cb2142f643 --- /dev/null +++ b/alfa-client/libs/design-component/src/index.ts @@ -0,0 +1 @@ +export * from './lib/form/file-upload-editor/file-upload-editor.component'; diff --git a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.html b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html similarity index 100% rename from alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.html rename to alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.html diff --git a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.spec.ts b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts similarity index 84% rename from alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.spec.ts rename to alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts index bc564d8a8dbb121396404ee5924e20bfe640a475..84fcd005f96d6c1d9dbe246fa14dbd4ceaf11546 100644 --- a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.spec.ts +++ b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.spec.ts @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { ConvertForDataTestPipe, createEmptyStateResource } from '@alfa-client/tech-shared'; +import { createEmptyStateResource } from '@alfa-client/tech-shared'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { AbstractControl, @@ -35,14 +35,14 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from 'design-system'; +import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from '@ods/system'; +import { ValidationErrorComponent } from 'libs/ui/src/lib/ui/validation-error/validation-error.component'; import { MockComponent } from 'ng-mocks'; -import { ValidationErrorComponent } from '../../validation-error/validation-error.component'; -import { FileUploadFieldComponent } from './file-upload-field.component'; +import { FileUploadEditorComponent } from './file-upload-editor.component'; -describe('FileUploadFieldComponent', () => { - let component: FileUploadFieldComponent; - let fixture: ComponentFixture<FileUploadFieldComponent>; +describe('FileUploadEditorComponent', () => { + let component: FileUploadEditorComponent; + let fixture: ComponentFixture<FileUploadEditorComponent>; const fb = new UntypedFormBuilder(); const formGroupDirective = new FormGroupDirective([], []); formGroupDirective.form = fb.group({ @@ -52,8 +52,7 @@ describe('FileUploadFieldComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ declarations: [ - FileUploadFieldComponent, - ConvertForDataTestPipe, + FileUploadEditorComponent, MockComponent(ValidationErrorComponent), MockComponent(SpinnerIconComponent), MockComponent(IconComponent), @@ -80,7 +79,7 @@ describe('FileUploadFieldComponent', () => { }); beforeEach(() => { - fixture = TestBed.createComponent(FileUploadFieldComponent); + fixture = TestBed.createComponent(FileUploadEditorComponent); component = fixture.componentInstance; component.parentFormArrayName = 'attachments'; component.uploadInProgress = createEmptyStateResource(); diff --git a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.ts b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts similarity index 67% rename from alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.ts rename to alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts index ba04fdf9cc38d4e19635cd41aed29012fcc97f7c..f46fb01b23bf9cb35e80895168969e2f8f8433cf 100644 --- a/alfa-client/libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component.ts +++ b/alfa-client/libs/design-component/src/lib/form/file-upload-editor/file-upload-editor.component.ts @@ -1,28 +1,33 @@ -import { - Component, - EventEmitter, - HostListener, - Input, - OnInit, - Output, -} from '@angular/core'; +import { StateResource, TechSharedModule } from '@alfa-client/tech-shared'; +import { FormControlEditorAbstractComponent } from '@alfa-client/ui'; +import { NgForOf } from '@angular/common'; +import { Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core'; import { ControlContainer, + FormGroupDirective, + ReactiveFormsModule, UntypedFormArray, UntypedFormControl, - FormGroupDirective, } from '@angular/forms'; -import { StateResource } from '@alfa-client/tech-shared'; -import { uniqueId } from 'lodash-es'; import { Resource } from '@ngxp/rest'; -import { FormControlEditorAbstractComponent } from '../formcontrol-editor.abstract.component'; +import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from '@ods/system'; +import { uniqueId } from 'lodash-es'; @Component({ - selector: 'ozgcloud-file-upload-field', - templateUrl: './file-upload-field.component.html', + selector: 'ods-file-upload-editor', + templateUrl: './file-upload-editor.component.html', viewProviders: [{ provide: ControlContainer, useExisting: FormGroupDirective }], + standalone: true, + imports: [ + FileUploadButtonComponent, + IconComponent, + SpinnerIconComponent, + ReactiveFormsModule, + NgForOf, + TechSharedModule, + ], }) -export class FileUploadFieldComponent +export class FileUploadEditorComponent extends FormControlEditorAbstractComponent implements OnInit { diff --git a/alfa-client/libs/design-component/src/test-setup.ts b/alfa-client/libs/design-component/src/test-setup.ts new file mode 100644 index 0000000000000000000000000000000000000000..ef358fbdf02a6bfc0ca9a7c2f5c73766b01ef584 --- /dev/null +++ b/alfa-client/libs/design-component/src/test-setup.ts @@ -0,0 +1,7 @@ +globalThis.ngJest = { + testEnvironmentOptions: { + errorOnUnknownElements: true, + errorOnUnknownProperties: true, + }, +}; +import 'jest-preset-angular/setup-jest'; diff --git a/alfa-client/libs/design-component/tsconfig.json b/alfa-client/libs/design-component/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..2b706589dab1a61d0c9a4f928e271f5e996c3466 --- /dev/null +++ b/alfa-client/libs/design-component/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "target": "es2022" + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "extends": "../../tsconfig.base.json" +} diff --git a/alfa-client/libs/design-component/tsconfig.lib.json b/alfa-client/libs/design-component/tsconfig.lib.json new file mode 100644 index 0000000000000000000000000000000000000000..92987370e0ee1a0ee9444862c6101947f3274f5f --- /dev/null +++ b/alfa-client/libs/design-component/tsconfig.lib.json @@ -0,0 +1,17 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [] + }, + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableResourceInlining": true + }, + "exclude": ["src/**/*.spec.ts", "src/test-setup.ts", "jest.config.ts", "src/**/*.test.ts"], + "include": ["src/**/*.ts"] +} diff --git a/alfa-client/libs/design-component/tsconfig.spec.json b/alfa-client/libs/design-component/tsconfig.spec.json new file mode 100644 index 0000000000000000000000000000000000000000..7870b7c011681fb77d6114001f44d3eeca69975b --- /dev/null +++ b/alfa-client/libs/design-component/tsconfig.spec.json @@ -0,0 +1,11 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "target": "es2016", + "types": ["jest", "node"] + }, + "files": ["src/test-setup.ts"], + "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] +} diff --git a/alfa-client/libs/design-system/ng-package.json b/alfa-client/libs/design-system/ng-package.json deleted file mode 100644 index 3af87707a4d057cac46dede1721f1d3a1df7b3a1..0000000000000000000000000000000000000000 --- a/alfa-client/libs/design-system/ng-package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", - "dest": "../../dist/libs/design-system", - "lib": { - "entryFile": "src/index.ts" - } -} diff --git a/alfa-client/libs/design-system/package.json b/alfa-client/libs/design-system/package.json deleted file mode 100644 index 1e3e01a978365ed85846ba7e70bf0c20e0cc325b..0000000000000000000000000000000000000000 --- a/alfa-client/libs/design-system/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "design-system", - "version": "0.0.1", - "peerDependencies": { - "@angular/common": "^16.2.0", - "@angular/core": "^16.2.0" - }, - "dependencies": { - "tslib": "^2.3.0" - }, - "sideEffects": false -} diff --git a/alfa-client/libs/ui/src/lib/ui/editor/single-file-upload-editor/single-file-upload-editor.component.spec.ts b/alfa-client/libs/ui/src/lib/ui/editor/single-file-upload-editor/single-file-upload-editor.component.spec.ts index 43994bb263c60f7228841aae4f26126b0c3f31cb..2eba01b53838b248b42c2dad8a202c6abb443911 100644 --- a/alfa-client/libs/ui/src/lib/ui/editor/single-file-upload-editor/single-file-upload-editor.component.spec.ts +++ b/alfa-client/libs/ui/src/lib/ui/editor/single-file-upload-editor/single-file-upload-editor.component.spec.ts @@ -7,7 +7,7 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { FileUploadButtonComponent, SpinnerIconComponent } from 'design-system'; +import { FileUploadButtonComponent, SpinnerIconComponent } from '@ods/system'; import { MockComponent } from 'ng-mocks'; import { ValidationErrorComponent } from '../../validation-error/validation-error.component'; import { SingleFileUploadEditorComponent } from './single-file-upload-editor.component'; diff --git a/alfa-client/libs/ui/src/lib/ui/ui.module.ts b/alfa-client/libs/ui/src/lib/ui/ui.module.ts index ceccb6e1ab7de556509984addf63815369dbbb81..bd2345d9fafc9886fa820c41ef3ffba9202a5d11 100644 --- a/alfa-client/libs/ui/src/lib/ui/ui.module.ts +++ b/alfa-client/libs/ui/src/lib/ui/ui.module.ts @@ -47,8 +47,8 @@ import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { MatSnackBarModule } from '@angular/material/snack-bar'; import { MatTabsModule } from '@angular/material/tabs'; import { RouterModule } from '@angular/router'; +import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from '@ods/system'; import { de } from 'date-fns/locale'; -import { FileUploadButtonComponent, IconComponent, SpinnerIconComponent } from 'design-system'; import { AppIconComponent } from '../icon/app-icon/app-icon.component'; import { PostfachIconComponent } from '../icon/postfach-icon/postfach-icon.component'; import { HttpConnectionTimeoutInterceptor } from '../interceptor/http-connection-timeout.interceptor'; @@ -100,7 +100,6 @@ import { SpinnerTransparencyComponent } from './spinner-transparency/spinner-tra import { SpinnerComponent } from './spinner/spinner.component'; import { SubnavigationComponent } from './subnavigation/subnavigation.component'; import { ValidationErrorComponent } from './validation-error/validation-error.component'; -import { FileUploadFieldComponent } from './editor/file-upload-field/file-upload-field.component'; @NgModule({ declarations: [ @@ -125,7 +124,6 @@ import { FileUploadFieldComponent } from './editor/file-upload-field/file-upload InternalServerErrorDialogComponent, FileUploadEditorComponent, SingleFileUploadEditorComponent, - FileUploadFieldComponent, MatTooltipDirective, MatTooltipDisabledDirective, MatTooltipClassDirective, @@ -182,7 +180,7 @@ import { FileUploadFieldComponent } from './editor/file-upload-field/file-upload MatButtonToggleModule, FileUploadButtonComponent, SpinnerIconComponent, - IconComponent + IconComponent, ], exports: [ MatButtonModule, @@ -232,7 +230,6 @@ import { FileUploadFieldComponent } from './editor/file-upload-field/file-upload InternalServerErrorDialogComponent, FileUploadEditorComponent, SingleFileUploadEditorComponent, - FileUploadFieldComponent, MatTooltipDirective, MatTooltipDisabledDirective, MatTooltipClassDirective, diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts index 6197c656567eec2e1f910fe75a7f192363a2a660..1064a19c8793c209e0237532d4ef98dcdd9c2947 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-antrag-bescheiden/vorgang-detail-bescheiden-antrag-bescheiden.component.spec.ts @@ -4,7 +4,7 @@ import { DateEditorComponent } from '@alfa-client/ui'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; import { MatIcon } from '@angular/material/icon'; -import { RadioButtonCardComponent } from 'design-system'; +import { RadioButtonCardComponent } from '@ods/system'; import { MockComponent } from 'ng-mocks'; import { BescheidenFormService } from '../../../bescheiden.formservice'; import { VorgangDetailBescheidenAntragBescheidenComponent } from './vorgang-detail-bescheiden-antrag-bescheiden.component'; diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts index 52c3db50aad87d18f1714e12014ccfd43f3892b3..1705d6459f4061830c276782e7d388d665575311 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-bescheid-versenden/vorgang-detail-bescheiden-bescheid-versenden.component.spec.ts @@ -3,7 +3,7 @@ import { Mock, mock, useFromMock } from '@alfa-client/test-utils'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; import { MatIcon } from '@angular/material/icon'; -import { RadioButtonCardComponent } from 'design-system'; +import { RadioButtonCardComponent } from '@ods/system'; import { MockComponent } from 'ng-mocks'; import { BescheidenFormService } from '../../../bescheiden.formservice'; import { VorgangDetailBescheidenBescheidVersendenComponent } from './vorgang-detail-bescheiden-bescheid-versenden.component'; diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html index 69daff33144814855e96932e5e7a07e87ba010d1..58333a2dc251f41b4b20766e3c7882ce5c088416 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.html @@ -1,5 +1,5 @@ <div [formGroup]="formService.form" class="mt-4"> - <ozgcloud-file-upload-field + <ods-file-upload-editor [attr.data-test-id]="'vorgang-bescheiden-upload-editor' + formServiceClass.FIELD_ATTACHMENTS" [parentFormArrayName]="formServiceClass.FIELD_ATTACHMENTS" [uploadInProgress]="uploadInProgress$ | async" @@ -7,5 +7,5 @@ [fileLinkList]="getFileLinkList()" label="Attachment hochladen" > - </ozgcloud-file-upload-field> + </ods-file-upload-editor> </div> diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts index b516cda11f0853911d07cd6f12c8e8bd6f0dc802..e463406befda8957cd2a565d20f07a1ebeaf5aeb 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-attachment-hochladen/vorgang-detail-bescheiden-attachment-hochladen.component.spec.ts @@ -9,8 +9,8 @@ import { import { Mock, mock, useFromMock } from '@alfa-client/test-utils'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; +import { FileUploadEditorComponent } from '@ods/component'; import { cold } from 'jest-marbles'; -import { FileUploadFieldComponent } from 'libs/ui/src/lib/ui/editor/file-upload-field/file-upload-field.component'; import { MockComponent, MockPipe } from 'ng-mocks'; import { EMPTY, Observable, Subscription, of } from 'rxjs'; import { createBescheidResource } from '../../../../../../../../../bescheid-shared/src/test/bescheid'; @@ -39,7 +39,7 @@ describe('VorgangDetailBescheidenDokumentHochladenComponent', () => { declarations: [ VorgangDetailBescheidenAttachmentHochladenComponent, MockComponent(BinaryFileAttachmentContainerComponent), - MockComponent(FileUploadFieldComponent), + MockComponent(FileUploadEditorComponent), MockPipe(HasLinkPipe), ], imports: [ReactiveFormsModule], diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts index 79731c5661bc0d85b66cb78fd6eaabdfa2c6f839..d0d6bb3254e4c5129d251bd0033eaca8980ea505 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen/vorgang-detail-bescheiden-bescheid-automatisch-erstellen.component.spec.ts @@ -14,7 +14,7 @@ import { ButtonComponent, IconComponent, SpinnerIconComponent, -} from 'design-system'; +} from '@ods/system'; import { createBescheidResource } from 'libs/bescheid-shared/src/test/bescheid'; import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; import { MockComponent } from 'ng-mocks'; diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts index f5f153d70de00ceca824e53e1f3c3b3f5b14df02..98455e1671b95601e6f3020c4732e770cd1292a0 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-dokumente-hinzufuegen/vorgang-detail-bescheiden-dokument-hochladen/vorgang-detail-bescheiden-dokument-hochladen.component.spec.ts @@ -7,7 +7,7 @@ import { ReactiveFormsModule, UntypedFormBuilder } from '@angular/forms'; import { MatIcon } from '@angular/material/icon'; import faker from '@faker-js/faker'; import { ResourceUri } from '@ngxp/rest'; -import { SpinnerIconComponent } from 'design-system'; +import { SpinnerIconComponent } from '@ods/system'; import { MockComponent } from 'ng-mocks'; import { of } from 'rxjs'; import { createBescheidStateResource } from '../../../../../../../../../bescheid-shared/src/test/bescheid'; diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts index 837545e68b34902a10953df5d1b9961e71ce504d..cc4c4cd8027dd41689d7937837fa7992023ab248 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts @@ -40,6 +40,7 @@ import { WiedervorlageModule } from '@alfa-client/wiedervorlage'; import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { FileUploadEditorComponent } from '@ods/component'; import { AttachmentComponent, BescheidGenerateIconComponent, @@ -48,7 +49,7 @@ import { IconComponent, RadioButtonCardComponent, SpinnerIconComponent, -} from 'design-system'; +} from '@ods/system'; import { AktenzeichenEditDialogComponent } from './aktenzeichen-edit-dialog/aktenzeichen-edit-dialog.component'; import { AktenzeichenEditableComponent } from './aktenzeichen-editable/aktenzeichen-editable.component'; import { AbschliessenButtonComponent } from './buttons/abschliessen-button/abschliessen-button.component'; @@ -136,6 +137,7 @@ const routes: Routes = [ BescheidUploadIconComponent, BescheidGenerateIconComponent, AttachmentComponent, + FileUploadEditorComponent, ], declarations: [ VorgangDetailPageComponent, diff --git a/alfa-client/nx.json b/alfa-client/nx.json index 848237a025ee7fb9252b85e090a073afd6929346..972e0ca235126465a95f3927eef852f1eee0e3f6 100644 --- a/alfa-client/nx.json +++ b/alfa-client/nx.json @@ -14,7 +14,8 @@ }, "@nx/angular:library": { "linter": "eslint", - "unitTestRunner": "jest" + "unitTestRunner": "jest", + "styleext": "scss" }, "@nrwl/schematics:component": { "styleext": "scss" diff --git a/alfa-client/tsconfig.base.json b/alfa-client/tsconfig.base.json index 1f7364bba7606a74a3d102427b82bb77ac3049cb..485fa33d9e73493edfbf2a27dcdea991191ad1f8 100644 --- a/alfa-client/tsconfig.base.json +++ b/alfa-client/tsconfig.base.json @@ -54,7 +54,8 @@ "@alfa-client/wiedervorlage": ["libs/wiedervorlage/src/index.ts"], "@alfa-client/wiedervorlage-shared": ["libs/wiedervorlage-shared/src/index.ts"], "authentication": ["libs/authentication/src/index.ts"], - "design-system": ["libs/design-system/src/index.ts"] + "@ods/component": ["libs/design-component/src/index.ts"], + "@ods/system": ["libs/design-system/src/index.ts"] } }, "exclude": ["node_modules", "tmp"] diff --git a/alfa-server/src/main/resources/application-local.yml b/alfa-server/src/main/resources/application-local.yml index 6e08f1833de6c4fa25055aaa545745fb6a1a46bb..961e14d6fa3f44e0a1382e4b26c924e1fe0fd2d2 100644 --- a/alfa-server/src/main/resources/application-local.yml +++ b/alfa-server/src/main/resources/application-local.yml @@ -26,6 +26,10 @@ ozgcloud: url: http://localhost:9092 profile-template: /api/userProfiles/%s search-template: /api/userProfiles/?searchBy={searchBy} + xdomea: + behoerdenschluessel: "behoerdenschluesselWirdÜberHelmGesetzt" + behoerdenschluesselUri: "behoerdenschluesselUriWirdÜberHelmGesetzt" + behoerdenschluesselVersion: "behoerdenschluesselVersionWirdÜberHelmGesetzt" keycloak: auth-server-url: http://localhost:8088 diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/common/VersionTypeBuilder.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/common/VersionTypeBuilder.java index 6e6924f1e9c77d72a6dc8e18aed2bdea3d604a07..3937b36d4eb85deb773eac2dcd0d1cad63a098c7 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/common/VersionTypeBuilder.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/common/VersionTypeBuilder.java @@ -13,7 +13,7 @@ import de.xoev.xdomea.VersionType; public class VersionTypeBuilder { public static final String VERSION_NUMMER = "1"; public static final String DATEI_FORMAT_LIST_URI = "urn:xoev-de:xdomea:codeliste:dateiformat"; - public static final String LIST_VERSION_ID = "vCBzR"; + public static final String LIST_VERSION_ID = "2.0"; private OzgFile ozgFile; private ZonedDateTime createdAt; private String ersteller; diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilder.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilder.java index 63ace13435d4cdd1a6fbbc0abbbbb77d398668a0..ae734f35808d7cff6c55d85f30070b136539630f 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilder.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilder.java @@ -72,18 +72,7 @@ class XdomeaNachrichtBuilder { public AbgabeAbgabe0401 build() { addVorgangDokumente(); addVorgangChangeHistory(); - - var abgabeType = new AbgabeAbgabe0401(); - abgabeType.setKopf(kopf); - abgabeType.getSchriftgutobjekt().add(createSchriftgutobjekt()); - return abgabeType; - } - - private Schriftgutobjekt createSchriftgutobjekt() { - var schriftgutobjekt = new Schriftgutobjekt(); - schriftgutobjekt.setVorgang(vorgang); - schriftgutobjekt.setAkte(aktenzeichen); - return schriftgutobjekt; + return createAbgabeType(); } void addVorgangDokumente() { @@ -96,4 +85,24 @@ class XdomeaNachrichtBuilder { void addVorgangChangeHistory() { historie.forEach(vorgang.getHistorienProtokollInformation()::add); } + + AbgabeAbgabe0401 createAbgabeType() { + var abgabeType = new AbgabeAbgabe0401(); + abgabeType.setKopf(kopf); + abgabeType.getSchriftgutobjekt().add(createSchriftgutobjektVorgang()); + abgabeType.getSchriftgutobjekt().add(createSchriftgutobjektAkte()); + return abgabeType; + } + + private Schriftgutobjekt createSchriftgutobjektVorgang() { + var schriftgutobjekt = new Schriftgutobjekt(); + schriftgutobjekt.setVorgang(vorgang); + return schriftgutobjekt; + } + + private Schriftgutobjekt createSchriftgutobjektAkte() { + var schriftgutobjekt = new Schriftgutobjekt(); + schriftgutobjekt.setAkte(aktenzeichen); + return schriftgutobjekt; + } } diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaProperties.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaProperties.java index c2f59b1d50bca5d9902a5bc6defec49015edc1a3..b6b91bf3b14188ba000c8e797374e7753b0d5740 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaProperties.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/export/XdomeaProperties.java @@ -1,5 +1,7 @@ package de.ozgcloud.alfa.export; +import jakarta.validation.constraints.NotNull; + import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; @@ -15,5 +17,10 @@ public class XdomeaProperties { /** * xdomea Behoerdenschluessel. */ + @NotNull private String behoerdenschluessel; + @NotNull + private String behoerdenschluesselUri; + @NotNull + private String behoerdenschluesselVersion; } diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DokumentTypeBuilder.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DokumentTypeBuilder.java index 2e36dd77eb1da1e8f721b66d5e2d74c86484ee2a..26ca34e45be143fbd7aa2d46c5cd21f223416835 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DokumentTypeBuilder.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/kommentar/DokumentTypeBuilder.java @@ -1,26 +1,17 @@ package de.ozgcloud.alfa.kommentar; -import de.ozgcloud.alfa.common.DateConverter; -import de.ozgcloud.alfa.common.PrimaerdokumentTypeBuilder; -import de.ozgcloud.alfa.common.UUIDConverter; import java.util.Collections; import java.util.List; import de.ozgcloud.alfa.common.AnlageDokumentTypeBuilder; +import de.ozgcloud.alfa.common.DateConverter; import de.ozgcloud.alfa.common.IdentifikationObjektTypeBuilder; import de.ozgcloud.alfa.common.file.OzgFile; import de.xoev.xdomea.AnlageDokumentType; import de.xoev.xdomea.DokumentType; -import de.xoev.xdomea.FormatType; import de.xoev.xdomea.HistorienProtokollInformationType; -import de.xoev.xdomea.IdentifikationObjektType; -import de.xoev.xdomea.VersionType; -import java.util.Collections; -import java.util.List; import lombok.AccessLevel; import lombok.NoArgsConstructor; -import org.apache.commons.io.FilenameUtils; -import org.apache.commons.lang3.StringUtils; @NoArgsConstructor(access = AccessLevel.PRIVATE) class DokumentTypeBuilder { @@ -85,5 +76,4 @@ class DokumentTypeBuilder { return this.authorFullName + "; " + this.organisationseinheitenID; } - } diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java index a31903a23072ed69eac7f8537ea16171d052e36a..e5c2cddfa66a67517f7cc0f24d7c384be37dac22 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/KopfCreator.java @@ -20,9 +20,6 @@ import lombok.RequiredArgsConstructor; @Component class KopfCreator { - static final String BEHOERDENSCHLUSSEL_LIST_URI = "urn:de:bund:destatis:bevoelkerungsstatistik:schluessel:rs"; - static final String BEHOERDENSCHLUSSEL_LIST_VERSION_ID = "2023-11-30"; - static final String NACHRICHTENTYP_CODE_TYPE_LIST_URI = "urn:xoev-de:xdomea:codeliste:nachrichtentyp"; static final String NACHRICHTENTYP_CODE_TYPE_LIST_VERSION_ID = "2.0"; static final String NACHRICHTENTYP_ABGABE_ABGABE_TYPE_CODE = "0401"; @@ -78,8 +75,8 @@ class KopfCreator { Code createBehoerdenschlussen() { var behoerdenschlussel = new Code(); behoerdenschlussel.setCode(xDomeaProperties.getBehoerdenschluessel()); - behoerdenschlussel.setListURI(BEHOERDENSCHLUSSEL_LIST_URI); - behoerdenschlussel.setListVersionID(BEHOERDENSCHLUSSEL_LIST_VERSION_ID); + behoerdenschlussel.setListURI(xDomeaProperties.getBehoerdenschluesselUri()); + behoerdenschlussel.setListVersionID(xDomeaProperties.getBehoerdenschluesselVersion()); return behoerdenschlussel; } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/common/VersionTypeBuilderTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/common/VersionTypeBuilderTest.java index cfa67b0f0f45dff3c9881a3a64a7b05876d69a37..219cca4fdeb0a561cf52a66fd6af6414fcc2fd3f 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/common/VersionTypeBuilderTest.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/common/VersionTypeBuilderTest.java @@ -173,6 +173,13 @@ class VersionTypeBuilderTest { assertThat(dateiformatCode.getListURI()).isEqualTo(VersionTypeBuilder.DATEI_FORMAT_LIST_URI); } + @Test + void shouldHaveListVersionID() { + var dateiformatCode = builder.createDateiformatCodeType(); + + assertThat(dateiformatCode.getListVersionID()).isEqualTo(VersionTypeBuilder.LIST_VERSION_ID); + } + @Test void shouldGetXdomeaCode() { builder.createDateiformatCodeType(); diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilderTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilderTest.java index f7fda37ca90273d24630868b4b1a940ec32b9e31..5e7b4ea241d987d8713cab382e833fde766882cb 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilderTest.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/export/XdomeaNachrichtBuilderTest.java @@ -1,13 +1,19 @@ package de.ozgcloud.alfa.export; import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; import java.util.List; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.mockito.Spy; import de.ozgcloud.alfa.common.HistorienProtokollInformationTypeTestFactory; import de.ozgcloud.alfa.vorgang.VorgangTypeTestFactory; +import de.xoev.xdomea.AbgabeAbgabe0401; +import de.xoev.xdomea.AkteType; import de.xoev.xdomea.DokumentType; import de.xoev.xdomea.HistorienProtokollInformationType; import de.xoev.xdomea.NkAbgabeType; @@ -15,76 +21,139 @@ import de.xoev.xdomea.VorgangType; class XdomeaNachrichtBuilderTest { - private final NkAbgabeType kopfType = NkAbgabeTypeTestFactory.create(); private final VorgangType vorgangType = VorgangTypeTestFactory.create(); - private final List<DokumentType> representations = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create()); - private final List<DokumentType> attachments = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create()); - private final List<HistorienProtokollInformationType> historie = List.of(HistorienProtokollInformationTypeTestFactory.create(), - HistorienProtokollInformationTypeTestFactory.create()); - private final List<DokumentType> kommentare = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create()); - private final List<DokumentType> postfachMails = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create()); + @Spy private final XdomeaNachrichtBuilder builder = XdomeaNachrichtBuilder.builder().withVorgang(vorgangType); - @Test - void shoulAddOneSchriftgutobjekt() { - var abgabeType = builder.build(); + @Nested + class TestBuild { + private final AbgabeAbgabe0401 expectedAbgabe = AbgabeAbgabe0401TestFactory.create(); - assertThat(abgabeType.getSchriftgutobjekt()).size().isEqualTo(1); - } + @BeforeEach + void setUpMock() { + doReturn(expectedAbgabe).when(builder).createAbgabeType(); + } - @Test - void shouldSetVorgang() { - var abgabeType = builder.build(); + @Test + void shouldCallAddVorgangDokumente() { + builder.build(); - assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang()).isEqualTo(vorgangType); - } + verify(builder).addVorgangDokumente(); + } - @Test - void shouldSetKopf() { - var abgabeType = builder.withKopf(kopfType).build(); + @Test + void shouldCallAddVorgangChangeHistory() { + builder.build(); - assertThat(abgabeType.getKopf()).isEqualTo(kopfType); - } + verify(builder).addVorgangChangeHistory(); + } - @Test - void shouldAddRepresentations() { - var abgabeType = builder.withRepresentations(representations).build(); + @Test + void shouldCallCreateAbgabeType() { + builder.build(); - assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getDokument()).isEqualTo(representations); - } + verify(builder).createAbgabeType(); + } - @Test - void shouldAddAttachments() { - var abgabeType = builder.withAttachments(attachments).build(); + @Test + void shouldReturnAbgabeType() { + var abgabeType = builder.build(); - assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getDokument()).isEqualTo(attachments); + assertThat(abgabeType).isEqualTo(expectedAbgabe); + } } - @Test - void shouldAddHistorie() { - var abgabeType = builder.withHistorie(historie).build(); + @Nested + class TestCreateAbgabeType { + private final NkAbgabeType kopfType = NkAbgabeTypeTestFactory.create(); + private final AkteType akte = AkteTypeTestFactory.create(); - assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getHistorienProtokollInformation()).isEqualTo(historie); - } + @Test + void shouldHaveKopf() { + var abgabeType = builder.withKopf(kopfType).createAbgabeType(); + + assertThat(abgabeType.getKopf()).isEqualTo(kopfType); + } - @Test - void shouldNotAddHistorie() { - var abgabeType = builder.build(); + @Test + void shoulAddTwoSchriftgutobjekt() { + var abgabeType = builder.withAktenzeichen(akte).createAbgabeType(); + + assertThat(abgabeType.getSchriftgutobjekt()).size().isEqualTo(2); + } + + @Test + void shouldHaveVorgangSchriftgutObjekt() { + var abgabeType = builder.createAbgabeType(); + + assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang()).isEqualTo(vorgangType); + } + + @Test + void shouldHaveAkteSchriftgutObjekt() { + var abgabeType = builder.withAktenzeichen(akte).createAbgabeType(); + + assertThat(abgabeType.getSchriftgutobjekt().get(1).getAkte()).isEqualTo(akte); + } - assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getHistorienProtokollInformation()).isEmpty(); } - @Test - void shouldAddKommentare() { - var abgabeType = builder.withKommentare(kommentare).build(); + @Nested + class TestAddVorgangDokumente { + private final List<DokumentType> representations = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create()); + private final List<DokumentType> attachments = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create()); + private final List<DokumentType> kommentare = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create()); + private final List<DokumentType> postfachMails = List.of(DokumentTypeTestFactory.create(), DokumentTypeTestFactory.create()); + + @Test + void shouldAddRepresentations() { + builder.withRepresentations(representations).addVorgangDokumente(); + + assertThat(vorgangType.getDokument()).isEqualTo(representations); + } + + @Test + void shouldAddAttachments() { + builder.withAttachments(attachments).addVorgangDokumente(); + + assertThat(vorgangType.getDokument()).isEqualTo(attachments); + } + + @Test + void shouldAddKommentare() { + builder.withKommentare(kommentare).addVorgangDokumente(); + + assertThat(vorgangType.getDokument()).isEqualTo(kommentare); + } + + @Test + void shouldAddPostfachMails() { + builder.withPostfachMails(postfachMails).addVorgangDokumente(); + + assertThat(vorgangType.getDokument()).isEqualTo(postfachMails); + } - assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getDokument()).isEqualTo(kommentare); } - @Test - void shouldAddPostfachMails() { - var abgabeType = builder.withPostfachMails(postfachMails).build(); + @Nested + class TestAddVorgangChangeHistory { + + private final List<HistorienProtokollInformationType> historie = List.of(HistorienProtokollInformationTypeTestFactory.create(), + HistorienProtokollInformationTypeTestFactory.create()); + + @Test + void shouldAddHistorie() { + builder.withHistorie(historie).addVorgangChangeHistory(); - assertThat(abgabeType.getSchriftgutobjekt().get(0).getVorgang().getDokument()).isEqualTo(postfachMails); + assertThat(vorgangType.getHistorienProtokollInformation()).isEqualTo(historie); + } + + @Test + void shouldNotAddHistorie() { + builder.addVorgangChangeHistory(); + + assertThat(vorgangType.getHistorienProtokollInformation()).isEmpty(); + } } + } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java index 1bce187cf0a5b5374f18273a56d90000bff3a931..b602ccaf432568741a7f089b2ebccbb8fb1f1791 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/KopfCreatorTest.java @@ -1,6 +1,7 @@ package de.ozgcloud.alfa.vorgang; import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.time.ZoneOffset; @@ -14,6 +15,8 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import com.thedeanda.lorem.LoremIpsum; + import de.ozgcloud.alfa.common.DateConverter; import de.ozgcloud.alfa.export.XdomeaProperties; import de.xoev.xdomea.BehoerdenkennungType; @@ -214,7 +217,7 @@ class KopfCreatorTest { @Test void shouldSetCode() { - var expectedBehoerdenschluessel = "123456789"; + var expectedBehoerdenschluessel = LoremIpsum.getInstance().getWords(1); when(xDomeaProperties.getBehoerdenschluessel()).thenReturn(expectedBehoerdenschluessel); var behoerdenschlussel = creator.createBehoerdenschlussen(); @@ -224,16 +227,22 @@ class KopfCreatorTest { @Test void shouldSetListURI() { + var expectedBehoerdenschluesselUri = LoremIpsum.getInstance().getUrl(); + when(xDomeaProperties.getBehoerdenschluesselUri()).thenReturn(expectedBehoerdenschluesselUri); + var behoerdenschlussel = creator.createBehoerdenschlussen(); - assertThat(behoerdenschlussel.getListURI()).isEqualTo(KopfCreator.BEHOERDENSCHLUSSEL_LIST_URI); + assertThat(behoerdenschlussel.getListURI()).isEqualTo(expectedBehoerdenschluesselUri); } @Test void shouldSetListVersionID() { + var expectedBehoerdenschluesselVersion = LoremIpsum.getInstance().getWords(1); + when(xDomeaProperties.getBehoerdenschluesselVersion()).thenReturn(expectedBehoerdenschluesselVersion); + var behoerdenschlussel = creator.createBehoerdenschlussen(); - assertThat(behoerdenschlussel.getListVersionID()).isEqualTo(KopfCreator.BEHOERDENSCHLUSSEL_LIST_VERSION_ID); + assertThat(behoerdenschlussel.getListVersionID()).isEqualTo(expectedBehoerdenschluesselVersion); } } diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index b101df46569ff6e1c9432472921bfc8bf7fc1423..1aabf05903d1c0b2e15f6b686e9945f5c943f757 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -101,6 +101,12 @@ spec: value: {{ $bescheid.formEngineName }} {{- end }} {{- end}} + - name: ozgcloud_xdomea_behoerdenschluessel + value: {{ required "ozgcloud.xdomea.behoerdenschluessel muss angegeben sein" ((.Values.ozgcloud).xdomea).behoerdenschluessel | quote }} + - name: ozgcloud_xdomea_behoerdenschluesselUri + value: {{ required "ozgcloud.xdomea.behoerdenschluesselUri muss angegeben sein" ((.Values.ozgcloud).xdomea).behoerdenschluesselUri}} + - name: ozgcloud_xdomea_behoerdenschluesselVersion + value: {{ required "ozgcloud.xdomea.behoerdenschluesselVersion muss angegeben sein" ((.Values.ozgcloud).xdomea).behoerdenschluesselVersion | quote }} image: "{{ .Values.image.repo }}/{{ .Values.image.name }}:{{ coalesce (.Values.image).tag "latest" }}" imagePullPolicy: Always diff --git a/src/test/helm-linter-values.yaml b/src/test/helm-linter-values.yaml index 73536126680ed22d458c77db4f0e36a4ad07f262..7eb04a7cbd54b8dbc684a2801d67bf86f48beab6 100644 --- a/src/test/helm-linter-values.yaml +++ b/src/test/helm-linter-values.yaml @@ -28,6 +28,10 @@ ozgcloud: bundesland: sh bezeichner: helm environment: test + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" networkPolicy: ssoPublicIp: 51.89.117.53/32 @@ -36,4 +40,4 @@ networkPolicy: sso: serverUrl: https://sso.company.local -imagePullSecret: image-pull-secret \ No newline at end of file +imagePullSecret: image-pull-secret diff --git a/src/test/helm/deployment_63_char_test.yaml b/src/test/helm/deployment_63_char_test.yaml index 829ab69eac2a57630c55691468e1a4e31d2619a7..56f935559c21ba44f1d895bdccc6f614649be9c5 100644 --- a/src/test/helm/deployment_63_char_test.yaml +++ b/src/test/helm/deployment_63_char_test.yaml @@ -26,7 +26,7 @@ suite: test deyploment less than 63 chars release: name: alfa namespace: sh-helm-test - + chart: name: alfa @@ -37,6 +37,10 @@ set: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local baseUrl: test.company.local @@ -60,4 +64,4 @@ tests: errorMessage: .Chart.Name-.Chart.Version alfa-1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen) - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters asserts: - - notFailedTemplate: {} \ No newline at end of file + - notFailedTemplate: {} diff --git a/src/test/helm/deployment_bindings_test.yaml b/src/test/helm/deployment_bindings_test.yaml index fc77e8acfcca27bbbe6b9f482b81f1e5cb0e84a3..a42e08b93f1e55ace76e0f928514ac4744d5a32a 100644 --- a/src/test/helm/deployment_bindings_test.yaml +++ b/src/test/helm/deployment_bindings_test.yaml @@ -33,14 +33,18 @@ set: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local baseUrl: test.company.local imagePullSecret: image-pull-secret tests: - it: should have volumes - set: - usermanagerName: user-manager + set: + usermanagerName: user-manager asserts: - contains: path: spec.template.spec.containers[0].volumeMounts @@ -69,21 +73,21 @@ tests: subPath: ca.crt readOnly: true - it: should have volume mounts - set: - usermanagerName: user-manager + set: + usermanagerName: user-manager asserts: - contains: - path: spec.template.spec.volumes - content: - name: bindings - configMap: - name: alfa-bindings-type + path: spec.template.spec.volumes + content: + name: bindings + configMap: + name: alfa-bindings-type - contains: - path: spec.template.spec.volumes - content: - name: user-manager-tls-certificate - secret: - secretName: user-manager-tls-cert + path: spec.template.spec.volumes + content: + name: user-manager-tls-certificate + secret: + secretName: user-manager-tls-cert - contains: path: spec.template.spec.volumes content: @@ -94,9 +98,9 @@ tests: content: name: sso-tls-certificate - it: should have sso tls cert mount - set: - usermanagerName: user-manager - sso: + set: + usermanagerName: user-manager + sso: tlsCertName: sso-tls-cert serverUrl: https://sso.company.local asserts: @@ -130,4 +134,4 @@ tests: path: spec.template.spec.volumes content: name: user-manager-tls-certificate - any: true \ No newline at end of file + any: true diff --git a/src/test/helm/deployment_customList_env_test.yaml b/src/test/helm/deployment_customList_env_test.yaml index 7ed06f83209a96790e36ab6cd35d31608a44fff1..688ff738fed603778050d6875fbac57b72d0a039 100644 --- a/src/test/helm/deployment_customList_env_test.yaml +++ b/src/test/helm/deployment_customList_env_test.yaml @@ -22,15 +22,19 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test environments customList +suite: test environments customList templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret diff --git a/src/test/helm/deployment_defaults_affinity_test.yaml b/src/test/helm/deployment_defaults_affinity_test.yaml index 10518783e34f874d4b9f40270b9795d6ce7f8ce0..30d186a2b5f90146d41b4d9268db11399a6e82b3 100644 --- a/src/test/helm/deployment_defaults_affinity_test.yaml +++ b/src/test/helm/deployment_defaults_affinity_test.yaml @@ -33,6 +33,10 @@ set: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local baseUrl: test.company.local diff --git a/src/test/helm/deployment_defaults_env_test.yaml b/src/test/helm/deployment_defaults_env_test.yaml index 46fa731257e72bf9a8769bcb8376624c801a8a53..2e5e68b5275e27c9c755cc71cc6a80366834ed51 100644 --- a/src/test/helm/deployment_defaults_env_test.yaml +++ b/src/test/helm/deployment_defaults_env_test.yaml @@ -34,13 +34,17 @@ set: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret tests: - it: check default values - set: - usermanagerName: user-manager + set: + usermanagerName: user-manager asserts: - isKind: of: Deployment @@ -55,14 +59,13 @@ tests: name: grpc_client_user-manager_address value: user-manager.sh-helm-test:9000 - - it: should have service binding root - set: - usermanagerName: user-manager + set: + usermanagerName: user-manager asserts: - contains: - path: spec.template.spec.containers[0].env - content: + path: spec.template.spec.containers[0].env + content: name: SERVICE_BINDING_ROOT value: "/bindings" @@ -132,4 +135,4 @@ tests: path: spec.template.spec.containers[0].env content: name: grpc_client_user-manager_negotiationType - value: TLS \ No newline at end of file + value: TLS diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml index 1bbcef91e098fabe4cc2467529972884294eb0b3..93e3dc85202ef0dd11f8465f13de5a9ac322833a 100644 --- a/src/test/helm/deployment_defaults_labels_test.yaml +++ b/src/test/helm/deployment_defaults_labels_test.yaml @@ -28,13 +28,17 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml - + set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -43,11 +47,11 @@ tests: asserts: - equal: path: metadata.labels - value: + value: app.kubernetes.io/instance: alfa app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: alfa app.kubernetes.io/namespace: sh-helm-test app.kubernetes.io/part-of: ozgcloud app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS - helm.sh/chart: alfa-0.0.0-MANAGED-BY-JENKINS \ No newline at end of file + helm.sh/chart: alfa-0.0.0-MANAGED-BY-JENKINS diff --git a/src/test/helm/deployment_defaults_spec_containers_health_test.yaml b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml index 5748514857cb81f4e4d03befc9a1a122ea5d9945..a216743645f6f9b105815166fd2fff59b9837db7 100644 --- a/src/test/helm/deployment_defaults_spec_containers_health_test.yaml +++ b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml @@ -24,65 +24,68 @@ suite: test deployment health check release: - name: alfa - namespace: sh-helm-test + name: alfa + namespace: sh-helm-test templates: - - templates/deployment.yaml + - templates/deployment.yaml set: - baseUrl: test.company.local - ozgcloud: - environment: test - bundesland: sh - bezeichner: helm - sso: - serverUrl: https://sso.company.local - imagePullSecret: image-pull-secret + baseUrl: test.company.local + ozgcloud: + environment: test + bundesland: sh + bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" + sso: + serverUrl: https://sso.company.local + imagePullSecret: image-pull-secret tests: - - it: should have correct valaues for health check - asserts: - - equal: - path: spec.template.spec.containers[0].readinessProbe.failureThreshold - value: 3 - - equal: - path: spec.template.spec.containers[0].readinessProbe.httpGet.path - value: /actuator/health/readiness - - equal: - path: spec.template.spec.containers[0].readinessProbe.httpGet.port - value: 8081 - - equal: - path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme - value: HTTP - - equal: - path: spec.template.spec.containers[0].readinessProbe.periodSeconds - value: 10 - - equal: - path: spec.template.spec.containers[0].readinessProbe.successThreshold - value: 1 - - equal: - path: spec.template.spec.containers[0].readinessProbe.timeoutSeconds - value: 3 - - equal: - path: spec.template.spec.containers[0].startupProbe.failureThreshold - value: 10 - - equal: - path: spec.template.spec.containers[0].startupProbe.httpGet.path - value: /actuator/health/readiness - - equal: - path: spec.template.spec.containers[0].startupProbe.httpGet.port - value: 8081 - - equal: - path: spec.template.spec.containers[0].startupProbe.httpGet.scheme - value: HTTP - - equal: - path: spec.template.spec.containers[0].startupProbe.initialDelaySeconds - value: 30 - - equal: - path: spec.template.spec.containers[0].startupProbe.periodSeconds - value: 5 - - equal: - path: spec.template.spec.containers[0].startupProbe.successThreshold - value: 1 - - equal: - path: spec.template.spec.containers[0].startupProbe.timeoutSeconds - value: 5 - \ No newline at end of file + - it: should have correct valaues for health check + asserts: + - equal: + path: spec.template.spec.containers[0].readinessProbe.failureThreshold + value: 3 + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.path + value: /actuator/health/readiness + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.port + value: 8081 + - equal: + path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme + value: HTTP + - equal: + path: spec.template.spec.containers[0].readinessProbe.periodSeconds + value: 10 + - equal: + path: spec.template.spec.containers[0].readinessProbe.successThreshold + value: 1 + - equal: + path: spec.template.spec.containers[0].readinessProbe.timeoutSeconds + value: 3 + - equal: + path: spec.template.spec.containers[0].startupProbe.failureThreshold + value: 10 + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.path + value: /actuator/health/readiness + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.port + value: 8081 + - equal: + path: spec.template.spec.containers[0].startupProbe.httpGet.scheme + value: HTTP + - equal: + path: spec.template.spec.containers[0].startupProbe.initialDelaySeconds + value: 30 + - equal: + path: spec.template.spec.containers[0].startupProbe.periodSeconds + value: 5 + - equal: + path: spec.template.spec.containers[0].startupProbe.successThreshold + value: 1 + - equal: + path: spec.template.spec.containers[0].startupProbe.timeoutSeconds + value: 5 diff --git a/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml b/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml index be7c9a27dd4b584c17247abe363db669a3e349fc..db495d1e81c7f9b105260ba621c1241b23365437 100644 --- a/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml +++ b/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml @@ -34,6 +34,10 @@ set: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -92,4 +96,4 @@ tests: path: spec.template.spec.containers[0].securityContext.capabilities value: drop: - - ALL \ No newline at end of file + - ALL diff --git a/src/test/helm/deployment_defaults_spec_containers_test.yaml b/src/test/helm/deployment_defaults_spec_containers_test.yaml index cf97d4e2ea8b3526b6e0f57616fdb6d02822e215..d6fa262f48d0e455f791bdd3c559c512813379f6 100644 --- a/src/test/helm/deployment_defaults_spec_containers_test.yaml +++ b/src/test/helm/deployment_defaults_spec_containers_test.yaml @@ -28,12 +28,16 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -78,4 +82,4 @@ tests: value: metrics - equal: path: spec.template.spec.containers[0].ports[1].protocol - value: TCP \ No newline at end of file + value: TCP diff --git a/src/test/helm/deployment_defaults_sso_env_test.yaml b/src/test/helm/deployment_defaults_sso_env_test.yaml index d3bb35a1793e67a0a45089df6b2bc4e3d3bc50dd..0b8017066f12fb6fa88c5a5bf930df8979df054b 100644 --- a/src/test/helm/deployment_defaults_sso_env_test.yaml +++ b/src/test/helm/deployment_defaults_sso_env_test.yaml @@ -28,12 +28,16 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -83,4 +87,4 @@ tests: path: spec.template.spec.containers[0].env content: name: keycloak_resource - value: different-client \ No newline at end of file + value: different-client diff --git a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml index 7bb4be03499b6a5a87c307773eacdd2e9833c64b..a319bba88c827ee006de7735576d16dd74152e78 100644 --- a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml +++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml @@ -28,12 +28,16 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -51,4 +55,4 @@ tests: value: ScheduleAnyway - equal: path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"] - value: alfa \ No newline at end of file + value: alfa diff --git a/src/test/helm/deployment_host_aliases_test.yaml b/src/test/helm/deployment_host_aliases_test.yaml index 6e631160b32aa36bd2e3edc30bd8106f91b004ff..579000d7c63681b7bd4f4d772183693e5e54062c 100644 --- a/src/test/helm/deployment_host_aliases_test.yaml +++ b/src/test/helm/deployment_host_aliases_test.yaml @@ -28,12 +28,16 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -47,13 +51,13 @@ tests: hostAliases: - ip: "127.0.0.1" hostname: - - "eins" - - "zwei" + - "eins" + - "zwei" asserts: - contains: path: spec.template.spec.hostAliases content: ip: "127.0.0.1" hostname: - - "eins" - - "zwei" + - "eins" + - "zwei" diff --git a/src/test/helm/deployment_imageTag_test.yaml b/src/test/helm/deployment_imageTag_test.yaml index 6183e22152abbf377cc00fba756eddacdc3f1c92..e3973e264491fed4a3b0e6970a0585a27ef56907 100644 --- a/src/test/helm/deployment_imageTag_test.yaml +++ b/src/test/helm/deployment_imageTag_test.yaml @@ -28,12 +28,16 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -44,4 +48,4 @@ tests: asserts: - equal: path: spec.template.spec.containers[0].image - value: docker.ozg-sh.de/alfa:latest \ No newline at end of file + value: docker.ozg-sh.de/alfa:latest diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml index f7bd1f34172e0b0fb27bb65c65e449c4022dc2aa..e0fbf9fe891c1402f864c965e4cf4d6e2eb87da1 100644 --- a/src/test/helm/deployment_imagepull_secret_test.yaml +++ b/src/test/helm/deployment_imagepull_secret_test.yaml @@ -28,12 +28,16 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local tests: @@ -47,4 +51,4 @@ tests: - it: should fail template if imagepullsecret not set asserts: - failedTemplate: - errormessage: imagePullSecret must be set \ No newline at end of file + errormessage: imagePullSecret must be set diff --git a/src/test/helm/deployment_liveness_probe_test.yaml b/src/test/helm/deployment_liveness_probe_test.yaml index 0c0fde464c0a336863ea1fbca809e96ff2f045f9..688d7362586c481e7fd64b16ebd7a28cc729580a 100644 --- a/src/test/helm/deployment_liveness_probe_test.yaml +++ b/src/test/helm/deployment_liveness_probe_test.yaml @@ -34,6 +34,10 @@ set: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -62,4 +66,4 @@ tests: - it: not enable livenessProbe by default asserts: - isNull: - path: spec.template.spec.containers[0].livenessProbe \ No newline at end of file + path: spec.template.spec.containers[0].livenessProbe diff --git a/src/test/helm/deployment_pod_default_spec_values_test.yaml b/src/test/helm/deployment_pod_default_spec_values_test.yaml index aab286ae8900126630d6c293cf79b5e82005d6bd..fe479d789bf85d6d7196fde97b17b77371adf3b3 100644 --- a/src/test/helm/deployment_pod_default_spec_values_test.yaml +++ b/src/test/helm/deployment_pod_default_spec_values_test.yaml @@ -1,4 +1,4 @@ - # +# # Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den # Ministerpräsidenten des Landes Schleswig-Holstein # Staatskanzlei @@ -34,12 +34,16 @@ set: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret tests: - - it: should have correct pod template values - asserts: + - it: should have correct pod template values + asserts: - isEmpty: path: spec.template.spec.dnsConfig - equal: @@ -53,4 +57,4 @@ tests: value: "default-scheduler" - equal: path: spec.template.spec.terminationGracePeriodSeconds - value: 30 \ No newline at end of file + value: 30 diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml index ee5785c522f4c35288c78ef4dc10eb6b959bb057..ae938d402582e9a87963775eeab6a0077d1b277a 100644 --- a/src/test/helm/deployment_resources_test.yaml +++ b/src/test/helm/deployment_resources_test.yaml @@ -27,12 +27,16 @@ release: name: alfa templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -62,4 +66,4 @@ tests: - it: test empty resources asserts: - isEmpty: - path: spec.template.spec.containers[0].resources \ No newline at end of file + path: spec.template.spec.containers[0].resources diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml index 7e5a49ca0e13dffb4588f6855fe9cd25e88db9fa..a57bc628ff6b7c1cd4f290efb45740b24a22bb18 100644 --- a/src/test/helm/deployment_service_account_test.yaml +++ b/src/test/helm/deployment_service_account_test.yaml @@ -28,12 +28,16 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -58,4 +62,4 @@ tests: - it: should use default service account asserts: - isNull: - path: spec.template.spec.serviceAccountName \ No newline at end of file + path: spec.template.spec.serviceAccountName diff --git a/src/test/helm/deployment_springProfile_env_test.yaml b/src/test/helm/deployment_springProfile_env_test.yaml index 73a7188c0ec0dbba5c1ae45480c4fffc1471d197..c9507240396ac72e74db4dd34147d3d4df8b9825 100644 --- a/src/test/helm/deployment_springProfile_env_test.yaml +++ b/src/test/helm/deployment_springProfile_env_test.yaml @@ -28,12 +28,16 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -53,4 +57,4 @@ tests: path: spec.template.spec.containers[0].env content: name: spring_profiles_active - value: oc, test \ No newline at end of file + value: oc, test diff --git a/src/test/helm/deployment_usermanager_address_env_test.yaml b/src/test/helm/deployment_usermanager_address_env_test.yaml index 028e532557a65b3874420f6447a806f67dd4508a..58c7cb58e5b4c4c4223c0451fc64728724abcc20 100644 --- a/src/test/helm/deployment_usermanager_address_env_test.yaml +++ b/src/test/helm/deployment_usermanager_address_env_test.yaml @@ -34,6 +34,10 @@ set: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret diff --git a/src/test/helm/deployment_vorgang_manager_address_env_test.yaml b/src/test/helm/deployment_vorgang_manager_address_env_test.yaml index 6c71f04812469eb3d0d06e2abaaedc1ff79d83b4..5ad441a04a40b50098c7567829e2010d3853e38f 100644 --- a/src/test/helm/deployment_vorgang_manager_address_env_test.yaml +++ b/src/test/helm/deployment_vorgang_manager_address_env_test.yaml @@ -28,12 +28,16 @@ release: namespace: sh-helm-test templates: - templates/deployment.yaml -set: +set: baseUrl: test.company.local ozgcloud: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret diff --git a/src/test/helm/deployment_xdomea_env_test.yaml b/src/test/helm/deployment_xdomea_env_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7656d2d0ea2d8a7295222ed701c908f6cfdc1760 --- /dev/null +++ b/src/test/helm/deployment_xdomea_env_test.yaml @@ -0,0 +1,82 @@ +suite: deployment xdomea env +release: + name: alfa + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + baseUrl: test.company.local + ozgcloud: + environment: test + bundesland: sh + bezeichner: helm + sso: + serverUrl: https://sso.company.local + imagePullSecret: image-pull-secret +tests: + - it: should fail on missing behoerdenschlüssel + set: + ozgcloud: + xdomea: + behoerdenschluesselUri: "uri.uri:uri" + behoerdenschluesselVersion: "version 1" + asserts: + - failedTemplate: + errorMessage: "ozgcloud.xdomea.behoerdenschluessel muss angegeben sein" + - it: should set behoerdenschlüssel + set: + ozgcloud: + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: "uri.uri:uri" + behoerdenschluesselVersion: "version 1" + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_xdomea_behoerdenschluessel + value: "123456" + - it: should fail on missing behoerdenschlüsselUri + set: + ozgcloud: + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselVersion: "version 1" + asserts: + - failedTemplate: + errorMessage: "ozgcloud.xdomea.behoerdenschluesselUri muss angegeben sein" + - it: should set behoerdenschlüsselUri + set: + ozgcloud: + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: "uri.uri:uri" + behoerdenschluesselVersion: "version 1" + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_xdomea_behoerdenschluesselUri + value: "uri.uri:uri" + - it: should fail on missing behoerdenschlüsselVersion + set: + ozgcloud: + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: "uri.uri:uri" + asserts: + - failedTemplate: + errorMessage: "ozgcloud.xdomea.behoerdenschluesselVersion muss angegeben sein" + - it: should set behoerdenschlüsselVersion + set: + ozgcloud: + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: "uri.uri:uri" + behoerdenschluesselVersion: "version 1" + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_xdomea_behoerdenschluesselVersion + value: "version 1" diff --git a/src/test/helm/deyploment_general_value_and_default_spec_test.yaml b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml index edbcc4123f4322e758e45653c99d92b4a078519c..37001633477f2064777c9ceede85bbe9af9dfff5 100644 --- a/src/test/helm/deyploment_general_value_and_default_spec_test.yaml +++ b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml @@ -34,6 +34,10 @@ set: environment: test bundesland: sh bezeichner: helm + xdomea: + behoerdenschluessel: "123456" + behoerdenschluesselUri: uri.uri:uri + behoerdenschluesselVersion: "Version 1" sso: serverUrl: https://sso.company.local imagePullSecret: image-pull-secret @@ -44,18 +48,17 @@ tests: - isKind: of: Deployment - isAPIVersion: - of: "apps/v1" - - - it: should have correct deployment metadata - asserts: + of: "apps/v1" + + - it: should have correct deployment metadata + asserts: - equal: path: metadata.name value: alfa - - equal: + - equal: path: metadata.namespace value: sh-helm-test - - it: should have correct deyployment general spec values asserts: - equal: @@ -69,12 +72,10 @@ tests: value: 10 - it: should have correct deployment spec strategy values asserts: - - equal: + - equal: path: spec.strategy - value: + value: rollingUpdate: maxSurge: 1 maxUnavailable: 0 type: RollingUpdate - -