返回 DeepSeek-Reasonix
project_credential_preservation_test.go
根目录 / internal / config / project_credential_preservation_test.go
1 package config
2
3 import (
4 "os"
5 "path/filepath"
6 "strings"
7 "testing"
8 )
9
10 func TestProjectCredentialEditPreservesUnknownProviderFields(t *testing.T) {
11 t.Setenv("REASONIX_HOME", t.TempDir())
12 path := filepath.Join(t.TempDir(), "reasonix.toml")
13 body := "[[providers]]\nname='relay'\nkind='openai'\nbase_url='https://relay.invalid/v1'\nmodel='chat'\napi_key_env='OLD_KEY'\nfuture_option='keep-me'\n"
14 if err := os.WriteFile(path, []byte(body), 0600); err != nil {
15 t.Fatal(err)
16 }
17 _, err := CommitConnectionCredential(ConnectionCredentialRequest{RequestID: "project-test", ConfigPath: path, ProviderNames: []string{"relay"}, Key: "fixture-key"})
18 if err != nil {
19 t.Fatal(err)
20 }
21 raw, err := os.ReadFile(path)
22 if err != nil {
23 t.Fatal(err)
24 }
25 if !strings.Contains(string(raw), "future_option") {
26 t.Fatal("credential-only edit removed unknown provider field")
27 }
28 }
29
30 func TestCredentialReceiptLegacyDigestCannotReplay(t *testing.T) {
31 result, err := connectionCredentialReceiptResult(ModelSettingsReceipt{RequestDigest: "legacy-digest", AfterRevision: "saved"}, "hmac-v1:new")
32 if err == nil || !strings.Contains(err.Error(), "unknown_result") || result.Persisted {
33 t.Fatal("legacy receipt was treated as a verified replay")
34 }
35 result, err = connectionCredentialReceiptResult(ModelSettingsReceipt{RequestDigest: "hmac-v1:one", AfterRevision: "saved"}, "hmac-v1:two")
36 if err == nil || !strings.Contains(err.Error(), "request_conflict") || result.Persisted {
37 t.Fatal("changed request was accepted")
38 }
39 }
40
40 lines GO