fixing issues with tests

This commit is contained in:
Prince
2026-06-20 02:51:45 +02:00
parent 4d0e18c1a6
commit a367acd81d
5 changed files with 54 additions and 6 deletions

View File

@@ -1,17 +1,16 @@
package zw.qantra.tm; package zw.qantra.tm;
import io.nflow.rest.config.RestConfiguration;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import com.google.gson.Gson; import com.google.gson.Gson;
import org.springframework.context.annotation.Import;
import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication @SpringBootApplication
@Import(RestConfiguration.class)
@EnableCaching @EnableCaching
@EnableAsync @EnableAsync
public class TmApplication { public class TmApplication {
@@ -24,4 +23,14 @@ public class TmApplication {
public Gson gson() { public Gson gson() {
return new Gson(); return new Gson();
} }
/**
* Conditionally imports nFlow REST configuration only when NOT running the "test" profile.
* This prevents nFlow's PostgreSQL-dependent beans from loading in tests that use H2.
*/
@Configuration
@Profile("!test")
@org.springframework.context.annotation.Import(io.nflow.rest.config.RestConfiguration.class)
static class NflowRestConfig {
}
} }

View File

@@ -8,11 +8,13 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import javax.sql.DataSource; import javax.sql.DataSource;
@Configuration @Configuration
@Profile("!test")
public class NflowDatabaseConfig extends PgDatabaseConfiguration { public class NflowDatabaseConfig extends PgDatabaseConfiguration {
@Bean @Bean

View File

@@ -2,10 +2,13 @@ package zw.qantra.tm;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ActiveProfiles;
import zw.qantra.tm.config.NflowTestConfig;
@SpringBootTest @SpringBootTest
@ActiveProfiles("test") @ActiveProfiles("test")
@Import(NflowTestConfig.class)
class TmApplicationTests { class TmApplicationTests {
@Test @Test

View File

@@ -0,0 +1,34 @@
package zw.qantra.tm.config;
import io.nflow.engine.internal.workflow.ObjectStringMapper;
import io.nflow.engine.service.WorkflowInstanceService;
import io.nflow.engine.workflow.instance.QueryWorkflowInstances;
import io.nflow.engine.workflow.instance.WorkflowInstanceFactory;
import org.mockito.Mockito;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Profile;
@TestConfiguration
@Profile("test")
public class NflowTestConfig {
@Bean
@Primary
public WorkflowInstanceFactory workflowInstanceFactory() {
return Mockito.mock(WorkflowInstanceFactory.class);
}
@Bean
@Primary
public WorkflowInstanceService workflowInstanceService() {
return Mockito.mock(WorkflowInstanceService.class);
}
@Bean
@Primary
public ObjectStringMapper objectStringMapper() {
return Mockito.mock(ObjectStringMapper.class);
}
}

View File

@@ -15,7 +15,7 @@ nflow.db.h2.password=
nflow.autostart=false nflow.autostart=false
# Disable security for tests # Disable security for tests
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration,io.nflow.spring.boot.autoconfigure.NflowAutoConfiguration spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
# Disable jobrunr for tests # Disable jobrunr for tests
jobrunr.enabled=false jobrunr.enabled=false