From 0664ad86be9046545f85c3082c414183f7a3876c Mon Sep 17 00:00:00 2001 From: nilansh Date: Tue, 13 Aug 2024 09:43:34 +0530 Subject: [PATCH 1/7] feat: added properties for executeAction mixpanel event (#35291) --- .../server/constants/ce/FieldNameCE.java | 2 ++ .../services/ce/AnalyticsServiceCEImpl.java | 4 ++++ .../ce/ActionExecutionSolutionCEImpl.java | 19 ++++++++++++++++--- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java index ced4d5619e23..b52c825169d4 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java @@ -151,6 +151,8 @@ public class FieldNameCE { public static final String ACTION_EXECUTION_REQUEST_PARAMS_COUNT = "actionExecutionRequestParamsCount"; public static final String ACTION_EXECUTION_RESULT = "actionExecutionResult"; public static final String ACTION_EXECUTION_TIME = "actionExecutionTime"; + public static final String ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP = "actionExecutionRequestParamsValueMap"; + public static final String ACTION_EXECUTION_INVERT_PARAMETER_MAP = "actionExecutionInvertParameterMap"; public static final String WEBSITE = "website"; public static final String TEMPLATE_APPLICATION_NAME = "templateAppName"; public static final String SOURCE = "source"; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java index 4eb0807948e7..6c6b143f9a37 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java @@ -207,6 +207,10 @@ public Mono sendEvent(String event, String userId, Map properti if (shouldHashUserId(event, userId, hashUserId, commonConfig.isCloudHosting())) { final String hashedUserId = hash(userId); analyticsProperties.remove("request"); + // Remove params map key property if it's self-hosted + if (analyticsProperties.containsKey(FieldName.ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP)) { + analyticsProperties.remove(FieldName.ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP); + } for (final Map.Entry entry : analyticsProperties.entrySet()) { if (userId.equals(entry.getValue())) { analyticsProperties.put(entry.getKey(), hashedUserId); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java index 6b31319f3423..cf8174409ee4 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java @@ -789,6 +789,7 @@ protected Mono getActionExecutionResult( final DatasourceStorage datasourceStorage = tuple.getT2(); final PluginExecutor pluginExecutor = tuple.getT3(); final Plugin plugin = tuple.getT4(); + final String rawQuery = actionDTO.getActionConfiguration().getBody(); log.debug( "[{}]Execute Action called in Page {}, for action id : {} action name : {}", @@ -824,7 +825,12 @@ protected Mono getActionExecutionResult( timeElapsed); return sendExecuteAnalyticsEvent( - actionDTO, datasourceStorage, executeActionDTO, result, timeElapsed) + actionDTO, + datasourceStorage, + executeActionDTO, + result, + timeElapsed, + rawQuery) .thenReturn(result); }); }); @@ -925,7 +931,8 @@ private Mono sendExecuteAnalyticsEvent( DatasourceStorage datasourceStorage, ExecuteActionDTO executeActionDto, ActionExecutionResult actionExecutionResult, - Long timeElapsed) { + Long timeElapsed, + String rawQuery) { if (!isSendExecuteAnalyticsEvent()) { return Mono.empty(); @@ -1113,8 +1120,14 @@ private Mono sendExecuteAnalyticsEvent( } else { eventData.put(FieldName.ACTION_EXECUTION_REQUEST_PARAMS, REDACTED_DATA); } + if (executeActionDto != null) { + data.put(FieldName.ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP, executeActionDto.getParams()); + data.put( + FieldName.ACTION_EXECUTION_INVERT_PARAMETER_MAP, + executeActionDto.getInvertParameterMap()); + } + data.put("rawQuery", rawQuery); data.put(FieldName.EVENT_DATA, eventData); - return analyticsService .sendObjectEvent(AnalyticsEvents.EXECUTE_ACTION, actionDTO, data) .thenReturn(request); From 3f64cfd34fb0404b9b37d36d449d1f54811b4bae Mon Sep 17 00:00:00 2001 From: nilansh Date: Tue, 13 Aug 2024 09:50:54 +0530 Subject: [PATCH 2/7] added rawQuery field --- .../main/java/com/appsmith/server/constants/ce/FieldNameCE.java | 1 + .../server/solutions/ce/ActionExecutionSolutionCEImpl.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java index b52c825169d4..54caf3375685 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java @@ -153,6 +153,7 @@ public class FieldNameCE { public static final String ACTION_EXECUTION_TIME = "actionExecutionTime"; public static final String ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP = "actionExecutionRequestParamsValueMap"; public static final String ACTION_EXECUTION_INVERT_PARAMETER_MAP = "actionExecutionInvertParameterMap"; + public static final String ACTION_EXECUTION_RAW_QUERY = "rawQuery"; public static final String WEBSITE = "website"; public static final String TEMPLATE_APPLICATION_NAME = "templateAppName"; public static final String SOURCE = "source"; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java index cf8174409ee4..fa29b6b0ef53 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java @@ -1126,7 +1126,7 @@ private Mono sendExecuteAnalyticsEvent( FieldName.ACTION_EXECUTION_INVERT_PARAMETER_MAP, executeActionDto.getInvertParameterMap()); } - data.put("rawQuery", rawQuery); + data.put(FieldName.ACTION_EXECUTION_RAW_QUERY, rawQuery); data.put(FieldName.EVENT_DATA, eventData); return analyticsService .sendObjectEvent(AnalyticsEvents.EXECUTE_ACTION, actionDTO, data) From bb3c7f1cd3807fd96d25296971b6bbb7bbf175a0 Mon Sep 17 00:00:00 2001 From: nilansh Date: Tue, 13 Aug 2024 11:34:20 +0530 Subject: [PATCH 3/7] updated comment --- .../com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java index 6c6b143f9a37..d0eca50d38a8 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java @@ -206,8 +206,8 @@ public Mono sendEvent(String event, String userId, Map properti // Hash usernames at all places for self-hosted instance if (shouldHashUserId(event, userId, hashUserId, commonConfig.isCloudHosting())) { final String hashedUserId = hash(userId); + // Remove params map and request key properties, if it's self-hosted as it contains user's evaluated params analyticsProperties.remove("request"); - // Remove params map key property if it's self-hosted if (analyticsProperties.containsKey(FieldName.ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP)) { analyticsProperties.remove(FieldName.ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP); } From 13960e08d63c84fbb31fb464bb8e69e07c3191db Mon Sep 17 00:00:00 2001 From: nilansh Date: Tue, 13 Aug 2024 20:03:40 +0530 Subject: [PATCH 4/7] stored rawActionConfiguration and addressed comments --- .../server/constants/ce/FieldNameCE.java | 2 +- .../ActionExecutionSolutionImpl.java | 7 ++++-- .../ce/ActionExecutionSolutionCEImpl.java | 24 +++++++++++++++---- .../ce/ActionExecutionSolutionCEImplTest.java | 7 +++++- 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java index 54caf3375685..4f091e9cb59c 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/constants/ce/FieldNameCE.java @@ -153,7 +153,7 @@ public class FieldNameCE { public static final String ACTION_EXECUTION_TIME = "actionExecutionTime"; public static final String ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP = "actionExecutionRequestParamsValueMap"; public static final String ACTION_EXECUTION_INVERT_PARAMETER_MAP = "actionExecutionInvertParameterMap"; - public static final String ACTION_EXECUTION_RAW_QUERY = "rawQuery"; + public static final String ACTION_CONFIGURATION = "actionConfiguration"; public static final String WEBSITE = "website"; public static final String TEMPLATE_APPLICATION_NAME = "templateAppName"; public static final String SOURCE = "source"; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ActionExecutionSolutionImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ActionExecutionSolutionImpl.java index 821e6717d81d..de3ae719512c 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ActionExecutionSolutionImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ActionExecutionSolutionImpl.java @@ -1,6 +1,7 @@ package com.appsmith.server.solutions; import com.appsmith.server.applications.base.ApplicationService; +import com.appsmith.server.configurations.CommonConfig; import com.appsmith.server.datasources.base.DatasourceService; import com.appsmith.server.datasourcestorages.base.DatasourceStorageService; import com.appsmith.server.helpers.PluginExecutorHelper; @@ -38,7 +39,8 @@ public ActionExecutionSolutionImpl( DatasourceStorageService datasourceStorageService, EnvironmentPermission environmentPermission, ConfigService configService, - TenantService tenantService) { + TenantService tenantService, + CommonConfig commonConfig) { super( newActionService, actionPermission, @@ -57,6 +59,7 @@ public ActionExecutionSolutionImpl( datasourceStorageService, environmentPermission, configService, - tenantService); + tenantService, + commonConfig); } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java index fa29b6b0ef53..694d438e616d 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java @@ -8,6 +8,7 @@ import com.appsmith.external.exceptions.pluginExceptions.AppsmithPluginException; import com.appsmith.external.exceptions.pluginExceptions.StaleConnectionException; import com.appsmith.external.helpers.MustacheHelper; +import com.appsmith.external.models.ActionConfiguration; import com.appsmith.external.models.ActionDTO; import com.appsmith.external.models.ActionExecutionRequest; import com.appsmith.external.models.ActionExecutionResult; @@ -19,6 +20,7 @@ import com.appsmith.external.plugins.PluginExecutor; import com.appsmith.server.acl.AclPermission; import com.appsmith.server.applications.base.ApplicationService; +import com.appsmith.server.configurations.CommonConfig; import com.appsmith.server.constants.Constraint; import com.appsmith.server.constants.FieldName; import com.appsmith.server.datasources.base.DatasourceService; @@ -51,6 +53,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; import io.micrometer.observation.ObservationRegistry; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.ArrayUtils; @@ -117,6 +120,7 @@ public class ActionExecutionSolutionCEImpl implements ActionExecutionSolutionCE private final EnvironmentPermission environmentPermission; private final ConfigService configService; private final TenantService tenantService; + private final CommonConfig commonConfig; static final String PARAM_KEY_REGEX = "^k\\d+$"; static final String BLOB_KEY_REGEX = @@ -143,7 +147,8 @@ public ActionExecutionSolutionCEImpl( DatasourceStorageService datasourceStorageService, EnvironmentPermission environmentPermission, ConfigService configService, - TenantService tenantService) { + TenantService tenantService, + CommonConfig commonConfig) { this.newActionService = newActionService; this.actionPermission = actionPermission; this.observationRegistry = observationRegistry; @@ -162,6 +167,7 @@ public ActionExecutionSolutionCEImpl( this.environmentPermission = environmentPermission; this.configService = configService; this.tenantService = tenantService; + this.commonConfig = commonConfig; this.patternList.add(Pattern.compile(PARAM_KEY_REGEX)); this.patternList.add(Pattern.compile(BLOB_KEY_REGEX)); @@ -789,7 +795,14 @@ protected Mono getActionExecutionResult( final DatasourceStorage datasourceStorage = tuple.getT2(); final PluginExecutor pluginExecutor = tuple.getT3(); final Plugin plugin = tuple.getT4(); - final String rawQuery = actionDTO.getActionConfiguration().getBody(); + // This is to return the raw user query including bindings + ActionConfiguration rawActionConfiguration = null; + if (actionDTO != null && actionDTO.getActionConfiguration() != null) { + // deep copying the actionConfiguration to avoid any changes in the original object + Gson gson = commonConfig.gsonInstance(); + rawActionConfiguration = gson.fromJson( + gson.toJson(actionDTO.getActionConfiguration()), ActionConfiguration.class); + } log.debug( "[{}]Execute Action called in Page {}, for action id : {} action name : {}", @@ -808,6 +821,7 @@ protected Mono getActionExecutionResult( executeActionDTO, actionDTO, datasourceStorage, plugin, pluginExecutor) .timeout(Duration.ofMillis(timeoutDuration))); + ActionConfiguration finalRawActionConfiguration = rawActionConfiguration; return actionExecutionResultMono .onErrorMap(executionExceptionMapper(actionDTO, timeoutDuration)) .onErrorResume(executionExceptionHandler(actionDTO)) @@ -830,7 +844,7 @@ protected Mono getActionExecutionResult( executeActionDTO, result, timeElapsed, - rawQuery) + finalRawActionConfiguration) .thenReturn(result); }); }); @@ -932,7 +946,7 @@ private Mono sendExecuteAnalyticsEvent( ExecuteActionDTO executeActionDto, ActionExecutionResult actionExecutionResult, Long timeElapsed, - String rawQuery) { + ActionConfiguration rawActionConfiguration) { if (!isSendExecuteAnalyticsEvent()) { return Mono.empty(); @@ -1126,7 +1140,7 @@ private Mono sendExecuteAnalyticsEvent( FieldName.ACTION_EXECUTION_INVERT_PARAMETER_MAP, executeActionDto.getInvertParameterMap()); } - data.put(FieldName.ACTION_EXECUTION_RAW_QUERY, rawQuery); + data.put(FieldName.ACTION_CONFIGURATION, rawActionConfiguration); data.put(FieldName.EVENT_DATA, eventData); return analyticsService .sendObjectEvent(AnalyticsEvents.EXECUTE_ACTION, actionDTO, data) diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImplTest.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImplTest.java index 4f0a20df1a41..d35d8590306e 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImplTest.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImplTest.java @@ -8,6 +8,7 @@ import com.appsmith.external.models.Datasource; import com.appsmith.external.models.Param; import com.appsmith.server.applications.base.ApplicationService; +import com.appsmith.server.configurations.CommonConfig; import com.appsmith.server.constants.FieldName; import com.appsmith.server.datasources.base.DatasourceService; import com.appsmith.server.datasourcestorages.base.DatasourceStorageService; @@ -128,6 +129,9 @@ class ActionExecutionSolutionCEImplTest { @SpyBean TenantService tenantService; + @MockBean + CommonConfig commonConfig; + @Autowired EnvironmentPermission environmentPermission; @@ -157,7 +161,8 @@ public void beforeEach() { datasourceStorageService, environmentPermission, configService, - tenantService); + tenantService, + commonConfig); ObservationRegistry.ObservationConfig mockObservationConfig = Mockito.mock(ObservationRegistry.ObservationConfig.class); From fa86034acaa6e2569ee660f092ba0c337a00f89d Mon Sep 17 00:00:00 2001 From: nilansh Date: Tue, 13 Aug 2024 20:12:34 +0530 Subject: [PATCH 5/7] added parameter only for cloud hosting --- .../appsmith/server/services/ce/AnalyticsServiceCEImpl.java | 3 --- .../server/solutions/ce/ActionExecutionSolutionCEImpl.java | 5 ++++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java index d0eca50d38a8..6f329177c7c0 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java @@ -208,9 +208,6 @@ public Mono sendEvent(String event, String userId, Map properti final String hashedUserId = hash(userId); // Remove params map and request key properties, if it's self-hosted as it contains user's evaluated params analyticsProperties.remove("request"); - if (analyticsProperties.containsKey(FieldName.ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP)) { - analyticsProperties.remove(FieldName.ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP); - } for (final Map.Entry entry : analyticsProperties.entrySet()) { if (userId.equals(entry.getValue())) { analyticsProperties.put(entry.getKey(), hashedUserId); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java index 694d438e616d..5f62d3371745 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImpl.java @@ -1135,7 +1135,10 @@ private Mono sendExecuteAnalyticsEvent( eventData.put(FieldName.ACTION_EXECUTION_REQUEST_PARAMS, REDACTED_DATA); } if (executeActionDto != null) { - data.put(FieldName.ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP, executeActionDto.getParams()); + if (commonConfig.isCloudHosting()) { + // Only send this parameter if cloud hosting is true as it contains user's evaluated params + data.put(FieldName.ACTION_EXECUTION_REQUEST_PARAMS_VALUE_MAP, executeActionDto.getParams()); + } data.put( FieldName.ACTION_EXECUTION_INVERT_PARAMETER_MAP, executeActionDto.getInvertParameterMap()); From 71c144286cc43d43c7b141e01c158d9bb4ceb2df Mon Sep 17 00:00:00 2001 From: nilansh Date: Tue, 13 Aug 2024 20:15:02 +0530 Subject: [PATCH 6/7] updated comment --- .../com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java index 6f329177c7c0..8c41a2fc8514 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/AnalyticsServiceCEImpl.java @@ -206,7 +206,7 @@ public Mono sendEvent(String event, String userId, Map properti // Hash usernames at all places for self-hosted instance if (shouldHashUserId(event, userId, hashUserId, commonConfig.isCloudHosting())) { final String hashedUserId = hash(userId); - // Remove params map and request key properties, if it's self-hosted as it contains user's evaluated params + // Remove request key, if it's self-hosted as it contains user's evaluated params analyticsProperties.remove("request"); for (final Map.Entry entry : analyticsProperties.entrySet()) { if (userId.equals(entry.getValue())) { From e8d8a02d38c9306eebef201a84a3570db9cd572d Mon Sep 17 00:00:00 2001 From: nilansh Date: Tue, 13 Aug 2024 21:06:49 +0530 Subject: [PATCH 7/7] fixed tests --- .../server/solutions/ce/ActionExecutionSolutionCEImplTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImplTest.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImplTest.java index d35d8590306e..9aac576ae4bd 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImplTest.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/solutions/ce/ActionExecutionSolutionCEImplTest.java @@ -129,7 +129,7 @@ class ActionExecutionSolutionCEImplTest { @SpyBean TenantService tenantService; - @MockBean + @SpyBean CommonConfig commonConfig; @Autowired