Skip to content

Commit ef9922a

Browse files
authored
test(feishu): raise adapter coverage
test(feishu): raise adapter coverage
2 parents fc2adde + fa36449 commit ef9922a

5 files changed

Lines changed: 608 additions & 16 deletions

File tree

internal/cli/feishu_adapter_command_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,24 @@ func TestInjectFeishuSecretsFromEnvLoadsSDKSecret(t *testing.T) {
184184
}
185185
}
186186

187+
func TestInjectFeishuSecretsFromEnvHandlesNilAndWebhookSkipVerify(t *testing.T) {
188+
if err := injectFeishuSecretsFromEnv(nil); err == nil || err.Error() != "feishu options are required" {
189+
t.Fatalf("unexpected nil options error: %v", err)
190+
}
191+
192+
t.Setenv(config.FeishuAppSecretEnvVar, "app-secret")
193+
options := mergedFeishuOptions{
194+
Ingress: config.FeishuIngressWebhook,
195+
InsecureSkipSignVerify: true,
196+
}
197+
if err := injectFeishuSecretsFromEnv(&options); err != nil {
198+
t.Fatalf("inject webhook secret with skip verify: %v", err)
199+
}
200+
if options.SigningSecret != "" {
201+
t.Fatalf("expected signing secret to stay empty when skip verify is enabled, got %q", options.SigningSecret)
202+
}
203+
}
204+
187205
type stubFeishuGatewayClient struct {
188206
closed bool
189207
}
@@ -375,3 +393,14 @@ func TestDefaultFeishuAdapterCommandRunnerPropagatesLoadAndValidateError(t *test
375393
t.Fatal("expected validation error from config")
376394
}
377395
}
396+
397+
func TestDefaultFeishuAdapterCommandRunnerPropagatesMissingSecretEnv(t *testing.T) {
398+
writeFeishuAdapterConfig(t)
399+
t.Setenv(config.FeishuAppSecretEnvVar, "")
400+
t.Setenv(config.FeishuSigningSecretEnvVar, "")
401+
402+
err := defaultFeishuAdapterCommandRunner(context.Background(), feishuAdapterCommandOptions{})
403+
if err == nil || err.Error() != "config: feishu: "+config.FeishuAppSecretEnvVar+" is required when feishu.enabled=true" {
404+
t.Fatalf("runner error = %v, want config validation error", err)
405+
}
406+
}

internal/config/feishu_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,23 @@ func TestFeishuConfigValidateRequiresAppSecretEnv(t *testing.T) {
9797
}
9898
}
9999

100+
func TestFeishuConfigValidateRejectsInvalidIngress(t *testing.T) {
101+
t.Setenv(FeishuAppSecretEnvVar, "secret")
102+
cfg := FeishuConfig{
103+
Enabled: true,
104+
Ingress: "invalid",
105+
AppID: "app",
106+
RequestTimeoutSec: 8,
107+
IdempotencyTTLSec: 600,
108+
ReconnectBackoffMinM: 500,
109+
ReconnectBackoffMaxM: 10000,
110+
RebindIntervalSec: 15,
111+
}
112+
if err := cfg.Validate(); err == nil {
113+
t.Fatal("expected invalid ingress error")
114+
}
115+
}
116+
100117
func TestFeishuConfigApplyDefaults(t *testing.T) {
101118
var cfg FeishuConfig
102119
cfg.ApplyDefaults(FeishuConfig{

0 commit comments

Comments
 (0)