pkg-proxy/internal/handler/gem_test.go
Andrew Nesbitt 7b22638ef7
Hello world
2026-01-20 22:00:31 +00:00

30 lines
760 B
Go

package handler
import (
"log/slog"
"testing"
)
func TestGemParseFilename(t *testing.T) {
h := &GemHandler{proxy: &Proxy{Logger: slog.Default()}}
tests := []struct {
filename string
wantName string
wantVersion string
}{
{"rails-7.1.0.gem", "rails", "7.1.0"},
{"aws-sdk-s3-1.142.0.gem", "aws-sdk-s3", "1.142.0"},
{"nokogiri-1.15.4-x86_64-linux.gem", "nokogiri", "1.15.4-x86_64-linux"},
{"activerecord-7.0.8.gem", "activerecord", "7.0.8"},
{"invalid", "", ""},
}
for _, tt := range tests {
name, version := h.parseGemFilename(tt.filename)
if name != tt.wantName || version != tt.wantVersion {
t.Errorf("parseGemFilename(%q) = (%q, %q), want (%q, %q)",
tt.filename, name, version, tt.wantName, tt.wantVersion)
}
}
}