From 6d007a5a36b776d99a8809d4d38e468b1825b9e7 Mon Sep 17 00:00:00 2001
From: fdegier <fdegier@gitlab.com>
Date: Tue, 28 Jan 2025 14:57:31 +0100
Subject: [PATCH] Model Registry: Fix default_experiment path

Changelog: fixed
---
 app/presenters/ml/model_presenter.rb       | 2 +-
 spec/factories/ml/experiments.rb           | 4 ++++
 spec/graphql/types/ml/model_type_spec.rb   | 4 ++--
 spec/presenters/ml/model_presenter_spec.rb | 2 +-
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/app/presenters/ml/model_presenter.rb b/app/presenters/ml/model_presenter.rb
index 741e14b4a6cdb..feb5f4fe25457 100644
--- a/app/presenters/ml/model_presenter.rb
+++ b/app/presenters/ml/model_presenter.rb
@@ -35,7 +35,7 @@ def path
     end
 
     def default_experiment_path
-      project_ml_experiment_path(model.project, model.default_experiment)
+      project_ml_experiment_path(model.project, model.default_experiment.iid)
     end
 
     private
diff --git a/spec/factories/ml/experiments.rb b/spec/factories/ml/experiments.rb
index 7a3a61f256446..61edea0be56a0 100644
--- a/spec/factories/ml/experiments.rb
+++ b/spec/factories/ml/experiments.rb
@@ -6,6 +6,10 @@
     project
     user { project&.creator }
 
+    after(:stub) do |record|
+      record.iid ||= generate(:iid)
+    end
+
     trait :with_metadata do
       after(:create) do |e|
         e.metadata = FactoryBot.create_list(:ml_experiment_metadata, 2, experiment: e) # rubocop:disable StrategyInCallback
diff --git a/spec/graphql/types/ml/model_type_spec.rb b/spec/graphql/types/ml/model_type_spec.rb
index 5ec68575f9648..4b42869a31a32 100644
--- a/spec/graphql/types/ml/model_type_spec.rb
+++ b/spec/graphql/types/ml/model_type_spec.rb
@@ -116,7 +116,7 @@
       'descriptionHtml' =>
         '<p data-sourcepos="1:1-1:13" dir="auto">A description</p>',
       'defaultExperimentPath' =>
-        "/#{project.full_path}/-/ml/experiments/#{model.default_experiment.id}",
+        "/#{project.full_path}/-/ml/experiments/#{model.default_experiment.iid}",
       'latestVersion' => {
         'id' => model_version_id
       },
@@ -148,7 +148,7 @@
       'descriptionHtml' =>
         '<p data-sourcepos="1:1-1:17" dir="auto">A <strong data-sourcepos="1:3-1:17">description</strong></p>',
       'defaultExperimentPath' =>
-        "/#{project_markdown.full_path}/-/ml/experiments/#{model_markdown.default_experiment.id}",
+        "/#{project_markdown.full_path}/-/ml/experiments/#{model_markdown.default_experiment.iid}",
       'latestVersion' => {
         'id' => model_version_id_markdown
       },
diff --git a/spec/presenters/ml/model_presenter_spec.rb b/spec/presenters/ml/model_presenter_spec.rb
index a4a2495f67402..954bdc5253498 100644
--- a/spec/presenters/ml/model_presenter_spec.rb
+++ b/spec/presenters/ml/model_presenter_spec.rb
@@ -103,6 +103,6 @@
   describe '#default_experiment_path' do
     subject { model1.present.default_experiment_path }
 
-    it { is_expected.to eq("/#{model1.project.full_path}/-/ml/experiments/#{model1.default_experiment.id}") }
+    it { is_expected.to eq("/#{model1.project.full_path}/-/ml/experiments/#{model1.default_experiment.iid}") }
   end
 end
-- 
GitLab