core/providers/golang/golang_test.go
core/providers/golang/golang_test.goBrowse 1970 files
519 tokens
1,825 bytes
Token encoding: o200k_base
Snapshot 21a254f
← Back to SKILL.md
1package golang2 3import (4 "testing"5 6 testingUtils "github.com/railwayapp/railpack/core/testing"7 "github.com/stretchr/testify/require"8)9 10func TestGolang(t *testing.T) {11 tests := []struct {12 name string13 path string14 detected bool15 hasGoMod bool16 hasWorkspace bool17 goVersion string18 cgoEnabled bool19 }{20 {21 name: "go mod",22 path: "../../../examples/go-mod",23 detected: true,24 hasGoMod: true,25 goVersion: "1.25.3",26 },27 {28 name: "go cmd dirs",29 path: "../../../examples/go-cmd-dirs",30 detected: true,31 hasGoMod: true,32 goVersion: "1.25.3",33 },34 {35 name: "go workspaces",36 path: "../../../examples/go-workspaces",37 detected: true,38 hasGoMod: false,39 hasWorkspace: true,40 goVersion: "1.25",41 },42 {43 name: "node",44 path: "../../../examples/node-npm",45 detected: false,46 },47 }48 49 for _, tt := range tests {50 t.Run(tt.name, func(t *testing.T) {51 ctx := testingUtils.CreateGenerateContext(t, tt.path)52 provider := GoProvider{}53 detected, err := provider.Detect(ctx)54 require.NoError(t, err)55 require.Equal(t, tt.detected, detected)56 57 if detected {58 err = provider.Initialize(ctx)59 require.NoError(t, err)60 61 err = provider.Plan(ctx)62 require.NoError(t, err)63 64 require.Equal(t, tt.hasGoMod, provider.isGoMod(ctx))65 require.Equal(t, tt.hasWorkspace, provider.isGoWorkspace(ctx))66 require.Equal(t, tt.cgoEnabled, provider.hasCGOEnabled(ctx))67 68 if tt.goVersion != "" {69 goVersion := ctx.Resolver.Get("go")70 require.Equal(t, tt.goVersion, goVersion.Version)71 }72 73 if tt.hasWorkspace {74 packages := provider.GoWorkspacePackages(ctx)75 require.Greater(t, len(packages), 0, "workspace should have at least one package")76 }77 }78 })79 }80}81