From f2b3bf4890fe76106d80b10282225db0d7e7fd70 Mon Sep 17 00:00:00 2001 From: FarhanAnjum-opti Date: Thu, 2 Apr 2026 21:44:45 +0600 Subject: [PATCH] [AI-FSSDK] [FSSDK-12418] Remove experiment type validation from config parsing --- OptimizelySDK.Tests/ProjectConfigTest.cs | 13 +++++++++++++ OptimizelySDK/Config/DatafileProjectConfig.cs | 18 ------------------ 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/OptimizelySDK.Tests/ProjectConfigTest.cs b/OptimizelySDK.Tests/ProjectConfigTest.cs index 29b17583..6f912a95 100644 --- a/OptimizelySDK.Tests/ProjectConfigTest.cs +++ b/OptimizelySDK.Tests/ProjectConfigTest.cs @@ -1736,6 +1736,19 @@ public void TestTypeFieldParsedCorrectly() Assert.AreEqual("fr", rolloutExperiment.Type); } + [Test] + public void TestUnknownExperimentTypeAccepted() + { + var datafile = BuildFeatureRolloutDatafile(experimentType: "new_unknown_type"); + var config = DatafileProjectConfig.Create(datafile, LoggerMock.Object, + ErrorHandlerMock.Object); + + Assert.IsNotNull(config); + var experiment = config.GetExperimentFromKey("rollout_experiment"); + Assert.IsNotNull(experiment); + Assert.AreEqual("new_unknown_type", experiment.Type); + } + #endregion } } diff --git a/OptimizelySDK/Config/DatafileProjectConfig.cs b/OptimizelySDK/Config/DatafileProjectConfig.cs index ba00775e..4be4449a 100644 --- a/OptimizelySDK/Config/DatafileProjectConfig.cs +++ b/OptimizelySDK/Config/DatafileProjectConfig.cs @@ -375,26 +375,8 @@ private void Initialize() } } - var validExperimentTypes = new HashSet - { - Experiment.EXPERIMENT_TYPE_AB, - Experiment.EXPERIMENT_TYPE_MAB, - Experiment.EXPERIMENT_TYPE_CMAB, - Experiment.EXPERIMENT_TYPE_TD, - Experiment.EXPERIMENT_TYPE_FR, - }; - foreach (var experiment in _ExperimentIdMap.Values) { - if (experiment.Type != null && !validExperimentTypes.Contains(experiment.Type)) - { - Logger.Log(LogLevel.ERROR, - $@"Experiment ""{experiment.Key}"" has invalid type ""{experiment.Type}""."); - ErrorHandler.HandleError( - new InvalidExperimentException( - $"Invalid experiment type: {experiment.Type}")); - } - _VariationKeyMap[experiment.Key] = new Dictionary(); _VariationIdMap[experiment.Key] = new Dictionary(); _VariationIdMapByExperimentId[experiment.Id] = new Dictionary();