optimierungen gateway-Modul

This commit is contained in:
stefan
2025-09-04 13:54:30 +02:00
parent 3b40cb9c45
commit 6675e2de94
17 changed files with 552 additions and 538 deletions
@@ -8,31 +8,31 @@ import org.springframework.test.context.ActiveProfiles
import org.springframework.test.web.reactive.server.WebTestClient
/**
* Tests for the Fallback Controller that handles circuit breaker scenarios.
* Tests all fallback endpoints for different services.
* Tests für den Fallback Controller, der Circuit Breaker Szenarien behandelt.
* Testet alle Fallback-Endpunkte für verschiedene Services.
*/
@SpringBootTest(
classes = [GatewayApplication::class],
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
properties = [
// Disable external dependencies for fallback tests
// Externe Abhängigkeiten für Fallback-Tests deaktivieren
"spring.cloud.discovery.enabled=false",
"spring.cloud.consul.enabled=false",
"spring.cloud.consul.config.enabled=false",
"spring.cloud.consul.discovery.register=false",
"spring.cloud.loadbalancer.enabled=false",
// Disable circuit breaker health indicator to avoid interference
// Circuit Breaker Health Indicator deaktivieren um Interferenzen zu vermeiden
"resilience4j.circuitbreaker.configs.default.registerHealthIndicator=false",
"management.health.circuitbreakers.enabled=false",
// Disable custom filters for pure fallback testing
// Custom Filter für reine Fallback-Tests deaktivieren
"gateway.security.jwt.enabled=false",
// Use reactive web application type
// Reaktiven Web-Anwendungstyp verwenden
"spring.main.web-application-type=reactive",
// Disable gateway discovery
// Gateway Discovery deaktivieren
"spring.cloud.gateway.discovery.locator.enabled=false",
// Disable actuator security
// Actuator Security deaktivieren
"management.security.enabled=false",
// Set random port
// Zufälligen Port setzen
"server.port=0"
]
)
@@ -43,7 +43,7 @@ class FallbackControllerTests {
lateinit var webTestClient: WebTestClient
@Test
fun `should return members service fallback response`() {
fun `sollte Members Service Fallback Response zurückgeben`() {
webTestClient.get()
.uri("/fallback/members")
.exchange()
@@ -60,7 +60,7 @@ class FallbackControllerTests {
}
@Test
fun `should return horses service fallback response`() {
fun `sollte Horses Service Fallback Response zurückgeben`() {
webTestClient.get()
.uri("/fallback/horses")
.exchange()
@@ -75,7 +75,7 @@ class FallbackControllerTests {
}
@Test
fun `should return events service fallback response`() {
fun `sollte Events Service Fallback Response zurückgeben`() {
webTestClient.get()
.uri("/fallback/events")
.exchange()
@@ -5,31 +5,31 @@ import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.ActiveProfiles
/**
* Basic test to verify that the Gateway application context loads successfully.
* Uses test profile to disable production filters and external dependencies.
* Basis-Test zur Überprüfung, dass der Gateway-Anwendungskontext erfolgreich lädt.
* Verwendet Test-Profil um Produktions-Filter und externe Abhängigkeiten zu deaktivieren.
*/
@SpringBootTest(
classes = [GatewayApplication::class],
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
properties = [
// Disable all external dependencies for context loading test
// Alle externen Abhängigkeiten für Context-Loading-Test deaktivieren
"spring.cloud.discovery.enabled=false",
"spring.cloud.consul.enabled=false",
"spring.cloud.consul.config.enabled=false",
"spring.cloud.consul.discovery.register=false",
"spring.cloud.loadbalancer.enabled=false",
// Disable circuit breaker for tests
// Circuit Breaker für Tests deaktivieren
"resilience4j.circuitbreaker.configs.default.registerHealthIndicator=false",
"management.health.circuitbreakers.enabled=false",
// Disable custom security and filters
// Custom Security und Filter deaktivieren
"gateway.security.jwt.enabled=false",
// Use reactive web application type
// Reaktiven Web-Anwendungstyp verwenden
"spring.main.web-application-type=reactive",
// Disable gateway discovery
// Gateway Discovery deaktivieren
"spring.cloud.gateway.discovery.locator.enabled=false",
// Disable actuator security
// Actuator Security deaktivieren
"management.security.enabled=false",
// Set random port
// Zufälligen Port setzen
"server.port=0"
]
)
@@ -38,7 +38,7 @@ class GatewayApplicationTests {
@Test
fun contextLoads() {
// This test passes if the Spring application context loads successfully
// without any configuration errors or missing bean dependencies
// Dieser Test ist erfolgreich, wenn der Spring-Anwendungskontext erfolgreich lädt
// ohne Konfigurationsfehler oder fehlende Bean-Abhängigkeiten
}
}
@@ -21,9 +21,11 @@ spring:
discovery:
locator:
enabled: false
httpclient:
connect-timeout: 1000
response-timeout: 5s
server:
webflux:
httpclient:
connect-timeout: 1000
response-timeout: 5s
# Override production routes: keep empty in tests running with dev profile
routes: []
globalcors:
@@ -22,8 +22,8 @@ spring:
locator:
enabled: false
httpclient:
connect-timeout: 1000
response-timeout: 5s
connectTimeout: 1000
responseTimeout: 5s
# IMPORTANT: Do not load production lb:// routes in tests
routes: []
globalcors: