60 lines
2.7 KiB
Java
60 lines
2.7 KiB
Java
package com.svnlog.web.service;
|
|
|
|
import java.nio.file.Path;
|
|
import java.util.Map;
|
|
import java.nio.file.Paths;
|
|
|
|
import org.junit.jupiter.api.Assertions;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.io.TempDir;
|
|
|
|
class SettingsServiceTest {
|
|
|
|
@TempDir
|
|
Path tempDir;
|
|
|
|
@Test
|
|
void shouldReturnDefaultProviderAndOpenAiDefaults() throws Exception {
|
|
final OutputFileService outputFileService = new OutputFileService();
|
|
outputFileService.setOutputRoot(tempDir.resolve("outputs").toString());
|
|
final SettingsService settingsService = new SettingsService(outputFileService, new SvnPresetService());
|
|
|
|
final Map<String, Object> settings = settingsService.getSettings();
|
|
|
|
Assertions.assertEquals(SettingsService.PROVIDER_DEEPSEEK, settings.get("provider"));
|
|
Assertions.assertEquals("http://127.0.0.1:5001/v1", settings.get("openaiBaseUrl"));
|
|
Assertions.assertEquals("sk-f8b3f43e1fdd4f50b287050f08a6c7ed", settings.get("openaiApiKey"));
|
|
Assertions.assertEquals("deepseek-v4-flash", settings.get("openaiStageOneModel"));
|
|
Assertions.assertEquals("deepseek-v4-pro", settings.get("openaiStageTwoModel"));
|
|
}
|
|
|
|
@Test
|
|
void shouldUpdateProviderAndOpenAiSettings() throws Exception {
|
|
final OutputFileService outputFileService = new OutputFileService();
|
|
outputFileService.setOutputRoot(tempDir.resolve("outputs").toString());
|
|
final SettingsService settingsService = new SettingsService(outputFileService, new SvnPresetService());
|
|
final String newOutputDir = tempDir.resolve("custom-output").toString();
|
|
|
|
settingsService.updateSettings(
|
|
"sk-deepseek-runtime",
|
|
SettingsService.PROVIDER_OPENAI_COMPATIBLE,
|
|
"http://localhost:5001/v1/",
|
|
"sk-openai-runtime",
|
|
"deepseek-v4-flash",
|
|
"deepseek-v4-pro",
|
|
newOutputDir,
|
|
"preset-2"
|
|
);
|
|
|
|
final Map<String, Object> settings = settingsService.getSettings();
|
|
|
|
Assertions.assertEquals(SettingsService.PROVIDER_OPENAI_COMPATIBLE, settings.get("provider"));
|
|
Assertions.assertEquals("http://localhost:5001/v1/", settings.get("openaiBaseUrl"));
|
|
Assertions.assertEquals("sk-openai-runtime", settings.get("openaiApiKey"));
|
|
Assertions.assertEquals("deepseek-v4-flash", settings.get("openaiStageOneModel"));
|
|
Assertions.assertEquals("deepseek-v4-pro", settings.get("openaiStageTwoModel"));
|
|
Assertions.assertEquals("preset-2", settings.get("defaultSvnPresetId"));
|
|
Assertions.assertEquals(Paths.get(newOutputDir).toAbsolutePath().normalize().toString(), settings.get("outputDir"));
|
|
}
|
|
}
|