core/generate/mise_step_builder_test.go
core/generate/mise_step_builder_test.goBrowse 1970 files
630 tokens
2,414 bytes
Token encoding: o200k_base
Snapshot 21a254f
← Back to SKILL.md
1package generate2 3import (4 "os"5 "strings"6 "testing"7 8 "github.com/railwayapp/railpack/core/resolver"9 "github.com/stretchr/testify/require"10)11 12func TestGetPackageVersions(t *testing.T) {13 tempDir, err := os.MkdirTemp("", "mise-test")14 if err != nil {15 t.Fatalf("failed to create temp dir: %v", err)16 }17 defer func() { _ = os.RemoveAll(tempDir) }()18 19 ctx := CreateTestContext(t, "../../examples/python-uv-tool-versions")20 21 // Create a resolver22 resolver, err := resolver.NewResolver(tempDir)23 require.NoError(t, err)24 25 builder := &MiseStepBuilder{26 Resolver: resolver,27 app: ctx.App,28 env: ctx.Env,29 }30 31 packages, err := builder.GetMisePackageVersions(ctx)32 require.NoError(t, err)33 34 // Expected packages from the example35 expected := map[string]struct{}{36 "python": {},37 "uv": {},38 }39 40 // Ensure ONLY expected packages are present41 require.Len(t, packages, len(expected), "unexpected number of packages returned")42 for name := range packages {43 _, ok := expected[name]44 require.True(t, ok, "unexpected package found: %s", name)45 }46 47 // The python-uv-tool-versions example should have python and uv defined48 require.Contains(t, packages, "python")49 require.Contains(t, packages, "uv")50 51 // Verify versions are not empty52 require.NotEmpty(t, packages["python"].Version)53 require.NotEmpty(t, packages["uv"].Version)54 55 // Verify python version starts with "3.9" (as defined in .tool-versions)56 require.True(t, strings.HasPrefix(packages["python"].Version, "3.9"))57 58 // Verify uv version starts with "0.7" (as defined in .tool-versions)59 require.True(t, strings.HasPrefix(packages["uv"].Version, "0.7"))60 61 // Verify source types are set62 require.NotEmpty(t, packages["python"].Source)63 require.NotEmpty(t, packages["uv"].Source)64}65 66func TestGetPackageVersionsWithNoToolVersions(t *testing.T) {67 tempDir, err := os.MkdirTemp("", "mise-test")68 if err != nil {69 t.Fatalf("failed to create temp dir: %v", err)70 }71 defer func() { _ = os.RemoveAll(tempDir) }()72 73 ctx := CreateTestContext(t, "../../examples/node-tanstack-start")74 75 // Create a resolver76 resolver, err := resolver.NewResolver(tempDir)77 require.NoError(t, err)78 79 builder := &MiseStepBuilder{80 Resolver: resolver,81 app: ctx.App,82 env: ctx.Env,83 }84 85 packages, err := builder.GetMisePackageVersions(ctx)86 require.NoError(t, err)87 88 // Should return empty map for directory with no .tool-versions89 require.Empty(t, packages)90}91