From 109a35805ab48e0a704a4b7827d976f8b3148f1a Mon Sep 17 00:00:00 2001
From: Emmanuel Raviart <emmanuel@raviart.com>
Date: Thu, 5 Dec 2024 14:32:46 +0100
Subject: [PATCH] Don't fail when duplicating a test case

---
 .../test_cases/TestCaseCompareModal.svelte       | 16 ++++++++++------
 .../components/test_cases/TestCaseSummary.svelte |  2 +-
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/lib/components/test_cases/TestCaseCompareModal.svelte b/src/lib/components/test_cases/TestCaseCompareModal.svelte
index ec02324e1..e63f015ae 100644
--- a/src/lib/components/test_cases/TestCaseCompareModal.svelte
+++ b/src/lib/components/test_cases/TestCaseCompareModal.svelte
@@ -23,27 +23,31 @@
   function duplicateTestCaseAndCloseModal() {
     shared.testCasesIndex = [shared.testCasesIndex[0], shared.testCases.length]
     const duplicatedTestCase = structuredClone(
-      shared.testCases[shared.testCasesIndex[0]],
+      $state.snapshot(shared.testCases[shared.testCasesIndex[0]]),
     )
     duplicatedTestCase.title = `Copie de ${duplicatedTestCase.title}`
     shared.testCases.push(duplicatedTestCase)
 
     const duplicatedEvaluationByName = structuredClone(
-      shared.evaluationByNameArray[shared.testCasesIndex[0]],
+      $state.snapshot(shared.evaluationByNameArray[shared.testCasesIndex[0]]),
     )
     shared.evaluationByNameArray.push(duplicatedEvaluationByName)
 
     const duplicatedInputInstantsByVariableName = structuredClone(
-      shared.inputInstantsByVariableNameArray[shared.testCasesIndex[0]],
+      $state.snapshot(
+        shared.inputInstantsByVariableNameArray[shared.testCasesIndex[0]],
+      ),
     )
     shared.inputInstantsByVariableNameArray.push(
       duplicatedInputInstantsByVariableName,
     )
 
     const duplicatedValuesByCalculationNameByVariableName = structuredClone(
-      shared.valuesByCalculationNameByVariableNameArray[
-        shared.testCasesIndex[0]
-      ],
+      $state.snapshot(
+        shared.valuesByCalculationNameByVariableNameArray[
+          shared.testCasesIndex[0]
+        ],
+      ),
     )
     shared.valuesByCalculationNameByVariableNameArray.push(
       duplicatedValuesByCalculationNameByVariableName,
diff --git a/src/lib/components/test_cases/TestCaseSummary.svelte b/src/lib/components/test_cases/TestCaseSummary.svelte
index 575cedc53..53ac3bc29 100644
--- a/src/lib/components/test_cases/TestCaseSummary.svelte
+++ b/src/lib/components/test_cases/TestCaseSummary.svelte
@@ -288,7 +288,7 @@
     }
     const originalSituation = testCasesCore[situationIndex]
     for (const key in originalSituation) {
-      situation[key] = structuredClone(originalSituation[key])
+      situation[key] = structuredClone($state.snapshot(originalSituation[key]))
     }
   }
 
-- 
GitLab