This commit is contained in:
@@ -31,6 +31,7 @@ class SetupContextSmokeTest {
|
||||
registry.add("finance.setup.env-file", () -> STATE_ROOT.resolve("application.env").toString());
|
||||
registry.add("finance.setup.marker-file", () -> STATE_ROOT.resolve("locked").toString());
|
||||
registry.add("finance.setup.restart-after-complete", () -> false);
|
||||
registry.add("spring.web.resources.static-locations", () -> "classpath:/spa-fixture/");
|
||||
}
|
||||
|
||||
@Autowired
|
||||
@@ -49,6 +50,14 @@ class SetupContextSmokeTest {
|
||||
assertThat(status.getBody().path("data").path("supportedDatabaseTypes").toString())
|
||||
.isEqualTo("[\"MYSQL\"]");
|
||||
|
||||
ResponseEntity<String> setupPage = rest.getForEntity(url("/setup"), String.class);
|
||||
assertThat(setupPage.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||
assertThat(setupPage.getBody()).contains("kaidi-spa-fixture");
|
||||
|
||||
ResponseEntity<String> asset = rest.getForEntity(url("/assets/app.js"), String.class);
|
||||
assertThat(asset.getStatusCode()).isEqualTo(HttpStatus.OK);
|
||||
assertThat(asset.getBody()).contains("kaidi-spa-fixture");
|
||||
|
||||
ResponseEntity<JsonNode> business = rest.getForEntity(url("/api/v1/auth/session"), JsonNode.class);
|
||||
assertThat(business.getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.kaidi.finance.shared.web;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
import org.springframework.mock.web.MockHttpServletResponse;
|
||||
|
||||
class SpaForwardFilterTest {
|
||||
|
||||
private final SpaForwardFilter filter = new SpaForwardFilter();
|
||||
|
||||
@Test
|
||||
void forwardsExtensionlessBrowserRouteToVueEntryPoint() throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/finance/workbench");
|
||||
MockHttpServletResponse response = new MockHttpServletResponse();
|
||||
AtomicBoolean continued = new AtomicBoolean();
|
||||
|
||||
filter.doFilter(request, response, (ignoredRequest, ignoredResponse) -> continued.set(true));
|
||||
|
||||
assertThat(response.getForwardedUrl()).isEqualTo("/index.html");
|
||||
assertThat(continued).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void leavesApiAndStaticAssetRequestsToSpringMvc() throws Exception {
|
||||
assertContinues("/api/v1/unknown-resource");
|
||||
assertContinues("/actuator/health");
|
||||
assertContinues("/assets/index-a1b2c3.js");
|
||||
}
|
||||
|
||||
private void assertContinues(String uri) throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", uri);
|
||||
MockHttpServletResponse response = new MockHttpServletResponse();
|
||||
AtomicBoolean continued = new AtomicBoolean();
|
||||
|
||||
filter.doFilter(request, response, (ignoredRequest, ignoredResponse) -> continued.set(true));
|
||||
|
||||
assertThat(continued).isTrue();
|
||||
assertThat(response.getForwardedUrl()).isNull();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
window.__KAIDI_SPA_FIXTURE__ = 'kaidi-spa-fixture';
|
||||
@@ -0,0 +1,5 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head><meta charset="UTF-8"><title>kaidi-spa-fixture</title></head>
|
||||
<body><div id="app">kaidi-spa-fixture</div></body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user