github.com/ddev/ddev@v1.23.2-0.20240519125000-d824ffe36ff3/pkg/ddevapp/utils_test.go (about) 1 package ddevapp_test 2 3 import ( 4 "github.com/ddev/ddev/pkg/ddevapp" 5 "github.com/ddev/ddev/pkg/exec" 6 asrt "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 "os" 9 "path/filepath" 10 "testing" 11 ) 12 13 func TestGetInactiveProjects(t *testing.T) { 14 assert := asrt.New(t) 15 16 origDir, _ := os.Getwd() 17 app := &ddevapp.DdevApp{} 18 19 site := TestSites[0] 20 21 t.Cleanup(func() { 22 err := os.Chdir(origDir) 23 assert.NoError(err) 24 err = app.Stop(true, false) 25 assert.NoError(err) 26 }) 27 // Make sure we have one app in existence 28 err := app.Init(site.Dir) 29 require.NoError(t, err) 30 err = app.Start() 31 require.NoError(t, err) 32 33 // Stop all sites 34 _, err = exec.RunCommand(DdevBin, []string{"stop", "--all"}) 35 require.NoError(t, err) 36 37 apps, err := ddevapp.GetInactiveProjects() 38 require.NoError(t, err) 39 40 assert.Greater(len(apps), 0) 41 } 42 43 func TestExtractProjectNames(t *testing.T) { 44 var apps []*ddevapp.DdevApp 45 46 assert := asrt.New(t) 47 48 apps = append(apps, &ddevapp.DdevApp{Name: "bar"}) 49 apps = append(apps, &ddevapp.DdevApp{Name: "foo"}) 50 apps = append(apps, &ddevapp.DdevApp{Name: "zoz"}) 51 52 names := ddevapp.ExtractProjectNames(apps) 53 expectedNames := []string{"bar", "foo", "zoz"} 54 55 assert.Equal(expectedNames, names) 56 } 57 58 // TestGetRelativeWorkingDirectory validates GetRelativeWorkingDirectory 59 func TestGetRelativeWorkingDirectory(t *testing.T) { 60 assert := asrt.New(t) 61 62 origDir, _ := os.Getwd() 63 app := &ddevapp.DdevApp{} 64 65 site := TestSites[0] 66 67 t.Cleanup(func() { 68 err := os.Chdir(origDir) 69 assert.NoError(err) 70 err = app.Stop(true, false) 71 assert.NoError(err) 72 _ = os.RemoveAll("one") 73 }) 74 // Make sure we have one app in existence 75 err := app.Init(site.Dir) 76 require.NoError(t, err) 77 err = os.MkdirAll(filepath.Join(app.AppRoot, "one", "two", "three", "four"), 0755) 78 require.NoError(t, err) 79 80 testCases := []string{filepath.Join("one"), filepath.Join("one", "two"), filepath.Join("one", "two", "three"), filepath.Join("one", "two", "three", "four")} 81 for _, c := range testCases { 82 err = os.Chdir(filepath.Join(app.AppRoot, c)) 83 require.NoError(t, err) 84 relDir := app.GetRelativeWorkingDirectory() 85 assert.Equal(filepath.ToSlash(c), filepath.ToSlash(relDir)) 86 } 87 }