Files
vpd-permission-poc/vpd-backoffice/src/test/java/com/cloudhandson/vpdbackoffice/web/SettingsTemplateRenderTest.java

48 lines
1.7 KiB
Java

package com.cloudhandson.vpdbackoffice.web;
import static org.assertj.core.api.Assertions.assertThat;
import java.nio.file.Path;
import java.util.Locale;
import org.junit.jupiter.api.Test;
import org.thymeleaf.context.Context;
import org.thymeleaf.spring6.SpringTemplateEngine;
import org.thymeleaf.templateresolver.FileTemplateResolver;
class SettingsTemplateRenderTest {
@Test
void rendersConnectionAndDatabasePreparationPagesSeparately() {
var resolver = new FileTemplateResolver();
resolver.setPrefix(Path.of("src/main/resources/templates").toAbsolutePath() + "/");
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML");
resolver.setCacheable(false);
var engine = new SpringTemplateEngine();
engine.setTemplateResolver(resolver);
var context = new Context(Locale.KOREAN);
context.setVariable("_csrf", new CsrfFixture("_csrf", "test-token"));
context.setVariable("ordsBaseUrl", "https://ords.example.test/ords");
context.setVariable("hmmMcpPublicUrl", "https://hmm-backoffice.cloud-handson.com/mcp");
String connection = engine.process("settings", context);
String database = engine.process("settings-database", context);
assertThat(connection)
.contains("설정 기반 MCP 도구")
.contains("https://hmm-backoffice.cloud-handson.com/mcp")
.contains("Legacy ORDS Base URL")
.contains("/settings/database")
.doesNotContain("g329127dfd380ad-kbaipoc")
.doesNotContain("/settings/database/initialize");
assertThat(database)
.contains("DB 준비 상태")
.contains("/settings/database/initialize")
.contains("DB 준비 실행");
}
private record CsrfFixture(String parameterName, String token) {
}
}