AddRelation

6

tests

0

failures

0

ignored

8.150s

duration

100%

successful

Tests

Test Duration Result
globalAdmin_canNotAddRelation_ifAnchorPersonDoesNotExist() 1.288s passed
globalAdmin_canNotAddRelation_ifContactDoesNotExist() 1.232s passed
globalAdmin_canNotAddRelation_ifHolderPersonDoesNotExist() 1.281s passed
globalAdmin_withoutAssumedRole_canAddRelationWithHolderAndContactData() 1.475s passed
globalAdmin_withoutAssumedRole_canAddRelationWithHolderUuidAndContactUuid() 1.512s passed
normalUser_canNotAddRelationWithNewMark() 1.362s passed

Standard output

ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_withoutAssumedRole_canAddRelationWithHolderUuidAndContactUuid(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 201 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://localhost:42409/api/hs/office/relations/01646464-4b9e-4d56-abf3-6e1d49eb7d58
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 16:31:45 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "uuid": "01646464-4b9e-4d56-abf3-6e1d49eb7d58",
    "anchor": {
        "uuid": "968db17e-982d-4253-91af-4fbdcf694a99",
        "personType": "INCORPORATED_FIRM",
        "tradeName": "Third OHG",
        "salutation": null,
        "title": null,
        "givenName": null,
        "familyName": null
    },
    "holder": {
        "uuid": "b368d8f4-3fbe-4d88-a549-db0a86f4b9c5",
        "personType": "NATURAL_PERSON",
        "tradeName": null,
        "salutation": null,
        "title": null,
        "givenName": "Paul",
        "familyName": "Winkler"
    },
    "type": "SUBSCRIBER",
    "mark": "operations-discuss",
    "contact": {
        "uuid": "a2d70253-3237-4490-a25f-a35555a390b0",
        "caption": "second contact",
        "postalAddress": {
            "country": "Germany"
        },
        "emailAddresses": {
            "main": "contact-admin@secondcontact.example.com"
        },
        "phoneNumbers": {
            "phone_office": "+49 123 1234567"
        }
    }
}
toCleanup(HsOfficeRelationRealEntity, 01646464-4b9e-4d56-abf3-6e1d49eb7d58)
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
DELETING temporary HsOfficeRelationRealEntity#01646464-4b9e-4d56-abf3-6e1d49eb7d58 deleted 1 rows
globalAdmin_withoutAssumedRole_canAddRelationWithHolderUuidAndContactUuid(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
normalUser_canNotAddRelationWithNewMark(): TOTAL OBJECT COUNT (initial): 210 -> 210
2026-08-10T16:31:46.546Z  WARN 374 --- [o-auto-1-exec-9] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 0, SQLState: P0001
2026-08-10T16:31:46.547Z ERROR 374 --- [o-auto-1-exec-9] o.h.engine.jdbc.spi.SqlExceptionHelper   : ERROR: [403] new mark "brand-new-list" for relation-type SUBSCRIBER may only be introduced by a global admin
  Where: PL/pgSQL function hs_office.relation_enforce_new_mark_by_global_admin() line 20 at RAISE
SQL statement "insert
            into hs_office.relation (uuid, version, anchoruuid, holderuuid, contactuuid, type, mark)
            values (new.uuid, new.version, new.anchoruuid, new.holderuuid, new.contactuuid, new.type, new.mark)
            returning *"
PL/pgSQL function hs_office.relation_instead_of_insert_tf() line 5 at SQL statement
HTTP/1.1 403 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 16:31:46 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "timestamp": "2026-08-10 04:31:46",
    "path": "",
    "statusCode": 403,
    "statusPhrase": "Forbidden",
    "message": "ERROR: [403] new mark \"brand-new-list\" for relation-type SUBSCRIBER may only be introduced by a global admin"
}
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
normalUser_canNotAddRelationWithNewMark(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_canNotAddRelation_ifHolderPersonDoesNotExist(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 404 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 16:31:47 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "timestamp": "2026-08-10 04:31:47",
    "path": "",
    "statusCode": 404,
    "statusPhrase": "Not Found",
    "message": "ERROR: [404] cannot find Person by holderUuid: 00000000-0000-0000-0000-000000000000"
}
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
globalAdmin_canNotAddRelation_ifHolderPersonDoesNotExist(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_withoutAssumedRole_canAddRelationWithHolderAndContactData(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 201 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://localhost:42409/api/hs/office/relations/021d3218-ce9b-462d-980c-ac54a1cded16
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 16:31:49 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "uuid": "021d3218-ce9b-462d-980c-ac54a1cded16",
    "anchor": {
        "uuid": "968db17e-982d-4253-91af-4fbdcf694a99",
        "personType": "INCORPORATED_FIRM",
        "tradeName": "Third OHG",
        "salutation": null,
        "title": null,
        "givenName": null,
        "familyName": null
    },
    "holder": {
        "uuid": "3ab9baf0-db1d-49f4-aa53-7b45171de0d1",
        "personType": "NATURAL_PERSON",
        "tradeName": null,
        "salutation": null,
        "title": null,
        "givenName": "Temp",
        "familyName": "Person"
    },
    "type": "SUBSCRIBER",
    "mark": "operations-discuss",
    "contact": {
        "uuid": "3cb2f117-2d6c-4b49-b738-142fe78d9f7e",
        "caption": "Temp Contact",
        "postalAddress": {
            "zipcode": "12345",
            "firm": "Test Contact GmbH",
            "country": "Germany",
            "city": "Dachstadt",
            "street": "Am Schieferbruch 3",
            "name": "Herr Test Contact"
        },
        "emailAddresses": {
            "main": "test@example.org"
        },
        "phoneNumbers": {
            
        }
    }
}
toCleanup(HsOfficeRelationRealEntity, 021d3218-ce9b-462d-980c-ac54a1cded16)
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
DELETING temporary HsOfficeRelationRealEntity#021d3218-ce9b-462d-980c-ac54a1cded16 deleted 1 rows
DELETING leaked hs_office.person#3ab9baf0-db1d-49f4-aa53-7b45171de0d1 SUCCEEDED
DELETING leaked hs_office.contact#3cb2f117-2d6c-4b49-b738-142fe78d9f7e SUCCEEDED
globalAdmin_withoutAssumedRole_canAddRelationWithHolderAndContactData(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_canNotAddRelation_ifAnchorPersonDoesNotExist(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 404 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 16:31:50 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "timestamp": "2026-08-10 04:31:50",
    "path": "",
    "statusCode": 404,
    "statusPhrase": "Not Found",
    "message": "ERROR: [404] cannot find Person by anchorUuid: 00000000-0000-0000-0000-000000000000"
}
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
globalAdmin_canNotAddRelation_ifAnchorPersonDoesNotExist(): TOTAL OBJECT COUNT (after): 210 -> 210
ContextBasedTestWithCleanup.retrieveInitialTestData
globalAdmin_canNotAddRelation_ifContactDoesNotExist(): TOTAL OBJECT COUNT (initial): 210 -> 210
HTTP/1.1 404 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 10 Aug 2026 16:31:51 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
    "timestamp": "2026-08-10 04:31:51",
    "path": "",
    "statusCode": 404,
    "statusPhrase": "Not Found",
    "message": "ERROR: [404] cannot find Contact by contactUuid: 00000000-0000-0000-0000-000000000000"
}
ContextBasedTestWithCleanup.cleanupAndCheckCleanup
globalAdmin_canNotAddRelation_ifContactDoesNotExist(): TOTAL OBJECT COUNT (after): 210 -> 210