MCPcopy Create free account
hub / github.com/compose-spec/compose-go / TestProjectName

Function TestProjectName

cli/options_test.go:33–203  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

31)
32
33func TestProjectName(t *testing.T) {
34 t.Run("by name", func(t *testing.T) {
35 opts, err := NewProjectOptions([]string{"testdata/simple/compose.yaml"}, WithName("my_project"))
36 assert.NilError(t, err)
37 p, err := ProjectFromOptions(context.TODO(), opts)
38 assert.NilError(t, err)
39 assert.Equal(t, p.Name, "my_project")
40 })
41
42 t.Run("by name start with number", func(t *testing.T) {
43 opts, err := NewProjectOptions([]string{"testdata/simple/compose.yaml"}, WithName("42my_project_num"))
44 assert.NilError(t, err)
45 p, err := ProjectFromOptions(context.TODO(), opts)
46 assert.NilError(t, err)
47 assert.Equal(t, p.Name, "42my_project_num")
48
49 opts, err = NewProjectOptions([]string{"testdata/simple/compose.yaml"}, WithEnv([]string{
50 fmt.Sprintf("%s=%s", consts.ComposeProjectName, "42my_project_env"),
51 }))
52 assert.NilError(t, err)
53 p, err = ProjectFromOptions(context.TODO(), opts)
54 assert.NilError(t, err)
55 assert.Equal(t, p.Name, "42my_project_env")
56 })
57
58 t.Run("by name empty", func(t *testing.T) {
59 opts, err := NewProjectOptions(
60 []string{"testdata/simple/compose.yaml"},
61 WithName(""),
62 )
63 assert.NilError(t, err)
64 p, err := ProjectFromOptions(context.TODO(), opts)
65 assert.NilError(t, err)
66 assert.Equal(t, p.Name, "simple")
67 })
68
69 t.Run("by name empty working dir", func(t *testing.T) {
70 opts, err := NewProjectOptions(
71 []string{"testdata/simple/compose.yaml"},
72 WithName(""),
73 WithWorkingDirectory("/path/to/proj"),
74 )
75 assert.NilError(t, err)
76 p, err := ProjectFromOptions(context.TODO(), opts)
77 assert.NilError(t, err)
78 assert.Equal(t, p.Name, "proj")
79 })
80
81 t.Run("by name must not come from root directory", func(t *testing.T) {
82 opts, err := NewProjectOptions([]string{"testdata/simple/compose.yaml"},
83 WithWorkingDirectory("/"))
84 assert.NilError(t, err)
85 p, err := ProjectFromOptions(context.TODO(), opts)
86
87 // root directory will resolve to an empty project name since there
88 // IS no directory name!
89 assert.ErrorContains(t, err, `project name must not be empty`)
90 assert.Assert(t, p == nil)

Callers

nothing calls this directly

Calls 6

NewProjectOptionsFunction · 0.85
WithNameFunction · 0.85
ProjectFromOptionsFunction · 0.85
WithEnvFunction · 0.85
WithWorkingDirectoryFunction · 0.85
WithEnvFilesFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…