github.com/replit/upm@v0.0.0-20240423230255-9ce4fc3ea24c/internal/backends/backends_test.go (about) 1 package backends 2 3 import ( 4 "context" 5 "os" 6 "path/filepath" 7 "testing" 8 ) 9 10 func TestGetBackends(t *testing.T) { 11 fileToBackend := map[string]string{ 12 "Setup.cs": "dotnet", 13 "project.csproj": "dotnet", 14 "Setup.fs": "dotnet", 15 "project.fsproj": "dotnet", 16 "pom.xml": "java-maven", 17 "package.json": "nodejs-npm", 18 "Cargo.toml": "rust", 19 } 20 21 dir, err := os.MkdirTemp("", "TestGetBackends") 22 if err != nil { 23 t.Errorf("failed to create a temp directory %v", err) 24 } 25 defer os.RemoveAll(dir) 26 27 for file, backend := range fileToBackend { 28 tmpfile := filepath.Join(dir, file) 29 30 if err := os.WriteFile(tmpfile, []byte{}, 0o666); err != nil { 31 t.Errorf("failed to create empty file: %s err: %v", tmpfile, err) 32 } 33 34 if err := os.Chdir(dir); err != nil { 35 t.Errorf("failed to change to directory: %s err: %v", dir, err) 36 } 37 38 actualBackend := GetBackend(context.Background(), "") 39 if backend != actualBackend.Name { 40 t.Errorf("expected backend: %s but got backend %s", backend, actualBackend.Name) 41 } 42 os.Remove(tmpfile) 43 } 44 }