Update to make test code here available in qqq-middleware-api module

This commit is contained in:
2025-05-27 16:37:54 -05:00
parent afd8084d45
commit 35c6a13ce3
2 changed files with 65 additions and 6 deletions

View File

@ -162,6 +162,18 @@
</programs> </programs>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>

View File

@ -24,7 +24,12 @@ package com.kingsrook.qqq.middleware.javalin.specs;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import com.kingsrook.qqq.backend.core.context.CapturedContext;
import com.kingsrook.qqq.backend.core.context.QContext;
import com.kingsrook.qqq.backend.core.exceptions.QException;
import com.kingsrook.qqq.backend.core.model.metadata.QInstance; import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
import com.kingsrook.qqq.backend.core.model.session.QSystemUserSession;
import com.kingsrook.qqq.backend.core.modules.backend.implementations.memory.MemoryRecordStore; import com.kingsrook.qqq.backend.core.modules.backend.implementations.memory.MemoryRecordStore;
import com.kingsrook.qqq.backend.javalin.TestUtils; import com.kingsrook.qqq.backend.javalin.TestUtils;
import io.javalin.Javalin; import io.javalin.Javalin;
@ -38,7 +43,7 @@ import org.junit.jupiter.api.BeforeEach;
*******************************************************************************/ *******************************************************************************/
public abstract class SpecTestBase public abstract class SpecTestBase
{ {
private static int PORT = 6273; protected static int PORT = 6273;
protected static Javalin service; protected static Javalin service;
@ -109,32 +114,74 @@ public abstract class SpecTestBase
service = null; service = null;
} }
TestMiddlewareVersion testMiddlewareVersion = new TestMiddlewareVersion();
if(service == null) if(service == null)
{ {
service = Javalin.create(config -> service = Javalin.create(config ->
{ {
QInstance qInstance = TestUtils.defineInstance(); QInstance qInstance;
try
{
qInstance = defineQInstance();
primeTestData(qInstance);
}
catch(Exception e)
{
throw new RuntimeException(e);
}
AtomicReference<AbstractMiddlewareVersion> middlewareVersionRef = new AtomicReference<>();
QContext.withTemporaryContext(new CapturedContext(qInstance, new QSystemUserSession()), () ->
middlewareVersionRef.set(getMiddlewareVersion()));
AbstractMiddlewareVersion middlewareVersion = middlewareVersionRef.get();
AbstractEndpointSpec<?, ?, ?> spec = getSpec(); AbstractEndpointSpec<?, ?, ?> spec = getSpec();
spec.setQInstance(qInstance); spec.setQInstance(qInstance);
config.router.apiBuilder(() -> spec.defineRoute(testMiddlewareVersion, getVersion()));
String versionBasePath = middlewareVersion.getVersionBasePath();
config.router.apiBuilder(() -> spec.defineRoute(middlewareVersion, versionBasePath));
for(AbstractEndpointSpec<?, ?, ?> additionalSpec : getAdditionalSpecs()) for(AbstractEndpointSpec<?, ?, ?> additionalSpec : getAdditionalSpecs())
{ {
additionalSpec.setQInstance(qInstance); additionalSpec.setQInstance(qInstance);
config.router.apiBuilder(() -> additionalSpec.defineRoute(testMiddlewareVersion, getVersion())); config.router.apiBuilder(() -> additionalSpec.defineRoute(middlewareVersion, versionBasePath));
} }
} }
).start(PORT); ).start(PORT);
} }
}
/***************************************************************************
**
***************************************************************************/
protected void primeTestData(QInstance qInstance) throws Exception
{
TestUtils.primeTestDatabase(); TestUtils.primeTestDatabase();
} }
/***************************************************************************
**
***************************************************************************/
protected AbstractMiddlewareVersion getMiddlewareVersion()
{
return new TestMiddlewareVersion();
}
/***************************************************************************
**
***************************************************************************/
protected QInstance defineQInstance() throws QException
{
return (TestUtils.defineInstance());
}
/*************************************************************************** /***************************************************************************
** **
***************************************************************************/ ***************************************************************************/