MCPcopy Create free account
hub / github.com/ddev/ddev / TestGetDBVersionFromVolumeScript

Function TestGetDBVersionFromVolumeScript

pkg/ddevapp/db_test.go:66–204  ·  view source on GitHub ↗

TestGetDBVersionFromVolumeScript tests the shell script logic used in GetDBVersionFromVolume to ensure it properly detects PostgreSQL 18+ directory structures

(t *testing.T)

Source from the content-addressed store, hash-verified

64// TestGetDBVersionFromVolumeScript tests the shell script logic used in GetDBVersionFromVolume
65// to ensure it properly detects PostgreSQL 18+ directory structures
66func TestGetDBVersionFromVolumeScript(t *testing.T) {
67 // Create temporary directory structure to simulate different DB volume layouts
68 tempDir := testcommon.CreateTmpDir("ddev-db-test-" + t.Name())
69
70 t.Cleanup(func() {
71 _ = os.RemoveAll(tempDir)
72 })
73
74 tests := []struct {
75 name string
76 setupFunc func() string // Returns expected output
77 expectedOutput string
78 }{
79 {
80 name: "MySQL/MariaDB version file",
81 setupFunc: func() string {
82 mysqlDir := filepath.Join(tempDir, "mysql")
83 err := os.MkdirAll(mysqlDir, 0755)
84 require.NoError(t, err)
85 err = os.WriteFile(filepath.Join(mysqlDir, "db_mariadb_version.txt"), []byte("mariadb_10.11"), 0644)
86 require.NoError(t, err)
87 return "mariadb_10.11"
88 },
89 expectedOutput: "mariadb_10.11",
90 },
91 {
92 name: "PostgreSQL 17 (pre-18 structure)",
93 setupFunc: func() string {
94 postgresDir := filepath.Join(tempDir, "postgres")
95 err := os.MkdirAll(postgresDir, 0755)
96 require.NoError(t, err)
97 err = os.WriteFile(filepath.Join(postgresDir, "PG_VERSION"), []byte("17"), 0644)
98 require.NoError(t, err)
99 return "17"
100 },
101 expectedOutput: "17",
102 },
103 {
104 name: "PostgreSQL 18 (new structure)",
105 setupFunc: func() string {
106 postgresDir := filepath.Join(tempDir, "postgres", "18", "docker")
107 err := os.MkdirAll(postgresDir, 0755)
108 require.NoError(t, err)
109 err = os.WriteFile(filepath.Join(postgresDir, "PG_VERSION"), []byte("18"), 0644)
110 require.NoError(t, err)
111 return "18"
112 },
113 expectedOutput: "18",
114 },
115 {
116 name: "PostgreSQL 19 (future version)",
117 setupFunc: func() string {
118 postgresDir := filepath.Join(tempDir, "postgres", "19", "docker")
119 err := os.MkdirAll(postgresDir, 0755)
120 require.NoError(t, err)
121 err = os.WriteFile(filepath.Join(postgresDir, "PG_VERSION"), []byte("19"), 0644)
122 require.NoError(t, err)
123 return "19"

Callers

nothing calls this directly

Calls 4

CreateTmpDirFunction · 0.92
RunSimpleContainerFunction · 0.92
RandStringFunction · 0.92
CleanupMethod · 0.80

Tested by

no test coverage detected