From 33de73b3e82ab0c2ad1216b391e841b714ac3149 Mon Sep 17 00:00:00 2001 From: Will Ezell Date: Wed, 5 Aug 2026 21:35:15 -0400 Subject: [PATCH 1/2] perf(test): move ContentTypeResourceTests to template postman group (#36914) Category Content ran ~40m with ContentTypeResourceTests alone taking 14m37s of it, while the Template job finished in ~10m (mostly boot overhead). Rebalancing the collection across existing groups cuts the Postman critical path ~15m without adding a job or paying another ~12m dotCMS boot. Co-Authored-By: Claude Fable 5 --- dotcms-postman/config.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dotcms-postman/config.json b/dotcms-postman/config.json index dca5b14e7a41..024a7bc6beb7 100644 --- a/dotcms-postman/config.json +++ b/dotcms-postman/config.json @@ -8,7 +8,6 @@ "collections": [ "Category.postman_collection", "ContentResourceV1.postman_collection", - "ContentTypeResourceTests", "Content_Resource.postman_collection" ] }, @@ -45,7 +44,10 @@ }, { "name": "template", - "collections": ["Template_Resource.postman_collection"] + "collections": [ + "Template_Resource.postman_collection", + "ContentTypeResourceTests" + ] }, { "name": "workflow", From 88d993b6ea41597dd3cfe00083632fe9e5d0bbe2 Mon Sep 17 00:00:00 2001 From: Will Ezell Date: Wed, 5 Aug 2026 22:34:05 -0400 Subject: [PATCH 2/2] fix(test): make ContentTypeResourceTests ensure-param tests self-contained (#36914) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'ensure' tests assert a Video content type exists, but nothing creates it eagerly at startup — it only existed because collections that previously ran before this one in the category-content group created it indirectly. Moving the collection to the template group exposed this (Video missing, dotAsset present). Add a create-if-missing setup request so the collection passes regardless of group placement or ordering. Co-Authored-By: Claude Fable 5 --- .../postman/ContentTypeResourceTests.json | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/dotcms-postman/src/main/resources/postman/ContentTypeResourceTests.json b/dotcms-postman/src/main/resources/postman/ContentTypeResourceTests.json index fd9694047dfd..ec84616782de 100644 --- a/dotcms-postman/src/main/resources/postman/ContentTypeResourceTests.json +++ b/dotcms-postman/src/main/resources/postman/ContentTypeResourceTests.json @@ -1866,6 +1866,66 @@ { "name": "Test Get ContentTypes", "item": [ + { + "name": "Ensure Video DotAsset type exists (setup)", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "// Setup: the 'ensure' tests in this folder expect a 'Video' content type to exist.", + "// Nothing in dotCMS creates it eagerly at startup, so when this collection runs", + "// without the collections that create it indirectly, the assertions fail.", + "// Create it if missing so this collection is self-contained (400 = already exists).", + "pm.test(\"Video type exists or was created\", function () {", + " pm.expect([200, 201, 400]).to.include(pm.response.code);", + "});" + ], + "type": "text/javascript" + } + } + ], + "request": { + "auth": { + "type": "basic", + "basic": [ + { + "key": "password", + "value": "admin", + "type": "string" + }, + { + "key": "username", + "value": "admin@dotcms.com", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"clazz\": \"com.dotcms.contenttype.model.type.ImmutableDotAssetContentType\",\n \"defaultType\": false,\n \"fixed\": false,\n \"system\": false,\n \"folder\": \"SYSTEM_FOLDER\",\n \"name\": \"Video\",\n \"variable\": \"Video\",\n \"workflow\": [\n \"d61a59e1-a49c-46f2-a929-db2b4bfa88b2\"\n ]\n}" + }, + "url": { + "raw": "{{serverURL}}/api/v1/contenttype", + "host": [ + "{{serverURL}}" + ], + "path": [ + "api", + "v1", + "contenttype" + ] + } + }, + "response": [] + }, { "name": "Get ContentTypes sending HostID", "event": [