diff --git a/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.spec.ts b/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.spec.ts
index dc9b252a76c61cb862874c627c32fd14af236af2..bb2e5b51d1be004bced187df35871e16a00d738a 100644
--- a/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.spec.ts
+++ b/alfa-client/libs/tech-shared/src/lib/validation/tech.validation.util.spec.ts
@@ -22,10 +22,11 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { AbstractControl, FormControl, FormGroup, UntypedFormControl, UntypedFormGroup } from '@angular/forms';
+import { faker } from '@faker-js/faker';
 import { createInvalidParam, createIssue, createProblemDetail } from '../../../test/error';
 import { InvalidParam, Issue } from '../tech.model';
-import { ValidationMessageCode } from './tech.validation.messages';
-import { getControlForInvalidParam, getControlForIssue, getFieldPath, getMessageForIssue, getMessageReason, setInvalidParamValidationError, setIssueValidationError } from './tech.validation.util';
+import { VALIDATION_MESSAGES, ValidationMessageCode } from './tech.validation.messages';
+import { getControlForInvalidParam, getControlForIssue, getFieldPath, getMessageForInvalidParam, getMessageForIssue, getMessageReason, setInvalidParamValidationError, setIssueValidationError } from './tech.validation.util';
 
 describe('ValidationUtils', () => {
   const baseField1Control: FormControl = new UntypedFormControl();
@@ -276,4 +277,62 @@ describe('ValidationUtils', () => {
       expect(reason).toBeNull();
     });
   });
+
+  describe('getMessageForInvalidParam', () => {
+    const label: string = faker.random.word();
+
+    it('should return undefined reason', () => {
+      const invalidParam: InvalidParam = createInvalidParam();
+
+      const message: string = getMessageForInvalidParam(label, {
+        ...invalidParam,
+        reason: undefined,
+      });
+
+      expect(message).toBeUndefined();
+    });
+
+    it('should return message', () => {
+      const invalidParam: InvalidParam = createInvalidParam();
+
+      const message: string = getMessageForInvalidParam(label, {
+        ...invalidParam,
+        reason: ValidationMessageCode.FIELD_DATE_FORMAT_INVALID,
+      });
+      expect(message).toEqual(VALIDATION_MESSAGES[ValidationMessageCode.FIELD_DATE_FORMAT_INVALID]);
+    });
+
+    it('should return message with field placeholder', () => {
+      const invalidParam: InvalidParam = createInvalidParam();
+
+      const message: string = getMessageForInvalidParam(label, {
+        ...invalidParam,
+        reason: ValidationMessageCode.FIELD_INVALID,
+      });
+      expect(message).toEqual(
+        VALIDATION_MESSAGES[ValidationMessageCode.FIELD_INVALID].replace('{field}', label),
+      );
+    });
+
+    it('should return message with placeholders', () => {
+      const invalidParam: InvalidParam = createInvalidParam();
+      const min: string = '1';
+      const max: string = '5';
+
+      const message: string = getMessageForInvalidParam(label, {
+        ...invalidParam,
+        reason: ValidationMessageCode.FIELD_SIZE,
+        constraintParameters: [
+          { name: 'min', value: min },
+          { name: 'max', value: max },
+        ],
+      });
+      expect(message).toEqual(
+        VALIDATION_MESSAGES[ValidationMessageCode.FIELD_SIZE]
+          .replace('{field}', label)
+          .replace('{min}', min)
+          .replace('{max}', max),
+      );
+    });
+  });
 });