From 59a1b64a36f6088a035c5eea8584d50d9df878cd Mon Sep 17 00:00:00 2001
From: Felipe Artur <felipefac@gmail.com>
Date: Mon, 8 Apr 2024 15:38:28 -0300
Subject: [PATCH] Fix analytics fixtures

Stop using factories to create users
on some fixtures. This was causing errors
when trying to create organizations for users
with the same path making the fixtures not imdepotent.
---
 db/fixtures/development/17_cycle_analytics.rb    | 16 ++++++++++------
 .../30_customizable_cycle_analytics.rb           | 16 ++++++++++------
 .../development/90_productivity_analytics.rb     | 16 ++++++++++------
 3 files changed, 30 insertions(+), 18 deletions(-)

diff --git a/db/fixtures/development/17_cycle_analytics.rb b/db/fixtures/development/17_cycle_analytics.rb
index 211a61a74c2c2..3fedc46b381d9 100644
--- a/db/fixtures/development/17_cycle_analytics.rb
+++ b/db/fixtures/development/17_cycle_analytics.rb
@@ -223,12 +223,16 @@ def create_vulnerabilities_count_report!
 
   def create_developers!
     5.times do |i|
-      user = FactoryBot.create(
-        :user,
-        name: "VSM User#{i}",
-        username: "vsm-user-#{i}-#{suffix}",
-        email: "vsm-user-#{i}@#{suffix}.com"
-      )
+      user =
+        ::User.create!(
+          username: "vsm-user-#{i}-#{suffix}",
+          name: "VSM User#{i}",
+          email: "vsm-user-#{i}@#{suffix}.com",
+          confirmed_at: DateTime.now,
+          password: ::User.random_password
+        ) do |user|
+          user.assign_personal_namespace(Organizations::Organization.default_organization)
+        end
 
       project.group&.add_developer(user)
       project.add_developer(user)
diff --git a/ee/db/fixtures/development/30_customizable_cycle_analytics.rb b/ee/db/fixtures/development/30_customizable_cycle_analytics.rb
index c46fbd9e69114..59ec3fe0ac68c 100644
--- a/ee/db/fixtures/development/30_customizable_cycle_analytics.rb
+++ b/ee/db/fixtures/development/30_customizable_cycle_analytics.rb
@@ -258,12 +258,16 @@ def create_custom_value_stream_for!(parent)
 
   def create_developers!
     5.times do |i|
-      developer = FactoryBot.create(
-        :user,
-        name: "VSM User#{i}",
-        username: "vsm-user-#{i}-#{suffix}",
-        email: "vsm-user-#{i}@#{suffix}.com"
-      )
+      developer =
+        ::User.create!(
+          username: "vsm-user-#{i}-#{suffix}",
+          name: "VSM User#{i}",
+          email: "vsm-user-#{i}@#{suffix}.com",
+          confirmed_at: DateTime.now,
+          password: ::User.random_password
+        ) do |user|
+          user.assign_personal_namespace(Organizations::Organization.default_organization)
+        end
 
       project.group&.add_developer(developer)
       project.add_developer(developer)
diff --git a/ee/db/fixtures/development/90_productivity_analytics.rb b/ee/db/fixtures/development/90_productivity_analytics.rb
index ff1b3ce4b2335..eb252964dd29e 100644
--- a/ee/db/fixtures/development/90_productivity_analytics.rb
+++ b/ee/db/fixtures/development/90_productivity_analytics.rb
@@ -111,12 +111,16 @@ def create_project_with_group
 
   def create_maintainers!
     5.times do |i|
-      user = FactoryBot.create(
-        :user,
-        name: "P User#{i}",
-        username: "p-user-#{i}-#{suffix}",
-        email: "p-user-#{i}@#{suffix}.com"
-      )
+      user =
+        ::User.create!(
+          username: "p-user-#{i}-#{suffix}",
+          name: "P User#{i}",
+          email: "p-user-#{i}@#{suffix}.com",
+          confirmed_at: DateTime.now,
+          password: ::User.random_password
+        ) do |user|
+          user.assign_personal_namespace(Organizations::Organization.default_organization)
+        end
 
       project.group&.add_maintainer(user)
       project.add_maintainer(user)
-- 
GitLab