Skip to content

Commit 68445fc

Browse files
committed
Revision 36: Use random values in updateExperiment regression test
- Replace hardcoded strings with RandomStringUtils.secure().nextAlphanumeric() - Replace hardcoded JSON metadata with podamFactory.manufacturePojo(JsonNode.class) - Aligns with existing test patterns in ExperimentsResourceTest - Improves test robustness by using unique random values each run
1 parent 4e028d0 commit 68445fc

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

apps/opik-backend/src/test/java/com/comet/opik/api/resources/v1/priv/ExperimentsResourceTest.java

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5387,51 +5387,51 @@ private Stream<Arguments> updateExperiment_whenInvalidUpdate_thenReturn400() {
53875387
@Test
53885388
@DisplayName("when updating experiment multiple times with partial updates, then latest values are preserved")
53895389
void updateExperiment_whenMultiplePartialUpdates_thenLatestValuesPreserved() {
5390-
// given - Create experiment with original values
5391-
var originalMetadata = JsonUtils.getJsonNodeFromString("{\"version\": \"1.0\", \"model\": \"gpt-3\"}");
5390+
var originalName = "original-" + RandomStringUtils.secure().nextAlphanumeric(32);
5391+
var originalMetadata = podamFactory.manufacturePojo(JsonNode.class);
53925392
var initialExperiment = experimentResourceClient.createPartialExperiment()
5393-
.name("Original Name")
5393+
.name(originalName)
53945394
.metadata(originalMetadata)
5395-
.type(ExperimentType.REGULAR)
5396-
.status(ExperimentStatus.RUNNING)
53975395
.build();
53985396
var experimentId = experimentResourceClient.create(initialExperiment, API_KEY, TEST_WORKSPACE);
53995397

5400-
// when - First update: Change both name and metadata
5401-
var firstUpdateMetadata = JsonUtils.getJsonNodeFromString("{\"version\": \"2.0\", \"model\": \"gpt-4\"}");
5398+
// First update: Change both name and metadata with random values
5399+
var firstUpdateName = "first-update-" + RandomStringUtils.secure().nextAlphanumeric(32);
5400+
var firstUpdateMetadata = podamFactory.manufacturePojo(JsonNode.class);
54025401
var firstUpdate = ExperimentUpdate.builder()
5403-
.name("First Update Name")
5402+
.name(firstUpdateName)
54045403
.metadata(firstUpdateMetadata)
54055404
.build();
5406-
experimentResourceClient.updateExperiment(experimentId, firstUpdate, API_KEY, TEST_WORKSPACE,
5407-
HttpStatus.SC_NO_CONTENT);
5405+
experimentResourceClient.updateExperiment(
5406+
experimentId, firstUpdate, API_KEY, TEST_WORKSPACE, HttpStatus.SC_NO_CONTENT);
54085407

5409-
// when - Second update: Change only the name
5408+
// Second update: Change only the name with random value
5409+
var secondUpdateName = "second-update-" + RandomStringUtils.secure().nextAlphanumeric(32);
54105410
var secondUpdate = ExperimentUpdate.builder()
5411-
.name("Second Update Name")
5411+
.name(secondUpdateName)
54125412
.build();
5413-
experimentResourceClient.updateExperiment(experimentId, secondUpdate, API_KEY, TEST_WORKSPACE,
5414-
HttpStatus.SC_NO_CONTENT);
5413+
experimentResourceClient.updateExperiment(
5414+
experimentId, secondUpdate, API_KEY, TEST_WORKSPACE, HttpStatus.SC_NO_CONTENT);
54155415

5416-
// then - Verify that metadata from first update is preserved (not from original)
5416+
// Verify that metadata from first update is preserved (not from original)
54175417
var expectedExperiment = initialExperiment.toBuilder()
5418-
.name("Second Update Name")
5419-
.metadata(firstUpdateMetadata) // Should have metadata from first update
5418+
.name(secondUpdateName)
5419+
.metadata(firstUpdateMetadata)
54205420
.build();
54215421
getAndAssert(experimentId, expectedExperiment, TEST_WORKSPACE, API_KEY);
54225422

5423-
// when - Third update: Change only the metadata
5424-
var thirdUpdateMetadata = JsonUtils.getJsonNodeFromString("{\"version\": \"3.0\", \"model\": \"gpt-4-turbo\"}");
5423+
// Third update: Change only the metadata with random value
5424+
var thirdUpdateMetadata = podamFactory.manufacturePojo(JsonNode.class);
54255425
var thirdUpdate = ExperimentUpdate.builder()
54265426
.metadata(thirdUpdateMetadata)
54275427
.build();
5428-
experimentResourceClient.updateExperiment(experimentId, thirdUpdate, API_KEY, TEST_WORKSPACE,
5429-
HttpStatus.SC_NO_CONTENT);
5428+
experimentResourceClient.updateExperiment(
5429+
experimentId, thirdUpdate, API_KEY, TEST_WORKSPACE, HttpStatus.SC_NO_CONTENT);
54305430

5431-
// then - Verify that name from second update is preserved (not from first or original)
5431+
// Verify that name from second update is preserved (not from first or original)
54325432
var finalExpectedExperiment = initialExperiment.toBuilder()
5433-
.name("Second Update Name") // Should have name from second update
5434-
.metadata(thirdUpdateMetadata) // Should have metadata from third update
5433+
.name(secondUpdateName)
5434+
.metadata(thirdUpdateMetadata)
54355435
.build();
54365436
getAndAssert(experimentId, finalExpectedExperiment, TEST_WORKSPACE, API_KEY);
54375437
}

0 commit comments

Comments
 (0)