mirror of
https://github.com/hanzoai/pack.git
synced 2026-09-30 23:43:13 +00:00
75 lines
1.8 KiB
Go
75 lines
1.8 KiB
Go
package node
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestParsePackageManagerField(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
packageManager string
|
|
wantName string
|
|
wantVersion string
|
|
}{
|
|
{
|
|
name: "valid package manager field",
|
|
packageManager: "[email protected]",
|
|
wantName: "pnpm",
|
|
wantVersion: "8.15.4",
|
|
},
|
|
{
|
|
name: "valid package manager field with yarn",
|
|
packageManager: "[email protected]",
|
|
wantName: "yarn",
|
|
wantVersion: "4.1.0",
|
|
},
|
|
{
|
|
name: "valid package manager field with bun",
|
|
packageManager: "[email protected]",
|
|
wantName: "bun",
|
|
wantVersion: "1.0.25",
|
|
},
|
|
{
|
|
name: "valid package manager field with yarn and SHA",
|
|
packageManager: "[email protected]+sha224.953c8233f7a92884eee2de69a1b92d1f2ec1655e66d08071ba9a02fa",
|
|
wantName: "yarn",
|
|
wantVersion: "3.2.3",
|
|
},
|
|
{
|
|
name: "empty package manager field",
|
|
packageManager: "",
|
|
wantName: "",
|
|
wantVersion: "",
|
|
},
|
|
{
|
|
name: "invalid format - no version",
|
|
packageManager: "pnpm",
|
|
wantName: "",
|
|
wantVersion: "",
|
|
},
|
|
{
|
|
name: "invalid format - multiple @ symbols",
|
|
packageManager: "[email protected]@extra",
|
|
wantName: "",
|
|
wantVersion: "",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
var pm *string
|
|
if tt.packageManager != "" {
|
|
pm = &tt.packageManager
|
|
}
|
|
pkgJson := &PackageJson{
|
|
PackageManager: pm,
|
|
}
|
|
gotName, gotVersion := PackageManager("").parsePackageManagerField(pkgJson)
|
|
if gotName != tt.wantName || gotVersion != tt.wantVersion {
|
|
t.Errorf("parsePackageManagerField() = (%v, %v), want (%v, %v)",
|
|
gotName, gotVersion, tt.wantName, tt.wantVersion)
|
|
}
|
|
})
|
|
}
|
|
}
|