Ctrl K
ComunidadGuías…

internal/config/codex_compression_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package config

import (
	"encoding/json"
	"testing"

	"gopkg.in/yaml.v3"
)

func TestCodexConfigRequestCompressionMinBytes(t *testing.T) {
	for _, tt := range []struct {
		name string
		cfg  *CodexConfig
		want int
	}{
		{name: "nil", want: 1024},
		{name: "zero", cfg: &CodexConfig{}, want: 1024},
		{name: "negative", cfg: &CodexConfig{UpstreamRequestCompressionMinBytes: -1}, want: 1024},
		{name: "explicit", cfg: &CodexConfig{UpstreamRequestCompressionMinBytes: 2048}, want: 2048},
	} {
		t.Run(tt.name, func(t *testing.T) {
			if got := tt.cfg.RequestCompressionMinBytes(); got != tt.want {
				t.Fatalf("RequestCompressionMinBytes()=%d, want %d", got, tt.want)
			}
		})
	}
}

func TestCodexConfigRequestCompressionSerialization(t *testing.T) {
	var cfg CodexConfig
	if cfg.UpstreamRequestCompression {
		t.Fatal("request compression must default to disabled")
	}
	if errUnmarshal := yaml.Unmarshal([]byte("upstream-request-compression: true\nupstream-request-compression-min-bytes: 4096\n"), &cfg); errUnmarshal != nil {
		t.Fatal(errUnmarshal)
	}
	if !cfg.UpstreamRequestCompression || cfg.RequestCompressionMinBytes() != 4096 {
		t.Fatalf("unexpected YAML config: %+v", cfg)
	}
	data, errMarshal := json.Marshal(cfg)
	if errMarshal != nil {
		t.Fatal(errMarshal)
	}
	var values map[string]any
	if errUnmarshal := json.Unmarshal(data, &values); errUnmarshal != nil {
		t.Fatal(errUnmarshal)
	}
	if values["upstream-request-compression"] != true || values["upstream-request-compression-min-bytes"] != float64(4096) {
		t.Fatalf("unexpected JSON: %s", data)
	}
}