| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package service
- import (
- "context"
- "testing"
- "github.com/Wei-Shaw/sub2api/internal/config"
- "github.com/stretchr/testify/require"
- )
- func resetGatewayForwardingSettingsCacheForTest(t *testing.T) {
- t.Helper()
- gatewayForwardingSF.Forget("gateway_forwarding")
- gatewayForwardingCache.Store(&cachedGatewayForwardingSettings{})
- t.Cleanup(func() {
- gatewayForwardingSF.Forget("gateway_forwarding")
- gatewayForwardingCache.Store(&cachedGatewayForwardingSettings{})
- })
- }
- func TestSettingService_GetClaudeOAuthSystemPromptInjectionSettings(t *testing.T) {
- t.Run("defaults to enabled with empty prompt", func(t *testing.T) {
- resetGatewayForwardingSettingsCacheForTest(t)
- svc := NewSettingService(&gatewayTTLSettingRepo{data: map[string]string{}}, &config.Config{})
- enabled, prompt, blocks := svc.GetClaudeOAuthSystemPromptInjectionSettings(context.Background())
- require.True(t, enabled)
- require.Empty(t, prompt)
- require.Empty(t, blocks)
- })
- t.Run("uses configured switch prompt and blocks", func(t *testing.T) {
- resetGatewayForwardingSettingsCacheForTest(t)
- const customPrompt = "custom prompt\n\nkeep spacing"
- const customBlocks = `[{"type":"text","text":"custom block","cache_control":true}]`
- svc := NewSettingService(&gatewayTTLSettingRepo{data: map[string]string{
- SettingKeyEnableClaudeOAuthSystemPromptInjection: "false",
- SettingKeyClaudeOAuthSystemPrompt: customPrompt,
- SettingKeyClaudeOAuthSystemPromptBlocks: customBlocks,
- }}, &config.Config{})
- enabled, prompt, blocks := svc.GetClaudeOAuthSystemPromptInjectionSettings(context.Background())
- require.False(t, enabled)
- require.Equal(t, customPrompt, prompt)
- require.Equal(t, customBlocks, blocks)
- })
- }
|