@@ -29,9 +29,10 @@ import (
2929func Test_ApplyProfiles (t * testing.T ) {
3030 p := makeProject ()
3131 p .ApplyProfiles ([]string {"foo" })
32- assert .Equal (t , len (p .Services ), 2 )
32+ assert .Equal (t , len (p .Services ), 3 )
3333 assert .Equal (t , p .Services [0 ].Name , "service_1" )
3434 assert .Equal (t , p .Services [1 ].Name , "service_2" )
35+ assert .Equal (t , p .Services [2 ].Name , "service_6" )
3536 assert .Equal (t , len (p .DisabledServices ), 3 )
3637 assert .Equal (t , p .DisabledServices [0 ].Name , "service_3" )
3738 assert .Equal (t , p .DisabledServices [1 ].Name , "service_4" )
@@ -40,11 +41,12 @@ func Test_ApplyProfiles(t *testing.T) {
4041 err := p .EnableServices ("service_4" )
4142 assert .NilError (t , err )
4243
43- assert .Equal (t , len (p .Services ), 4 )
44+ assert .Equal (t , len (p .Services ), 5 )
4445 assert .Equal (t , p .Services [0 ].Name , "service_1" )
4546 assert .Equal (t , p .Services [1 ].Name , "service_2" )
46- assert .Equal (t , p .Services [2 ].Name , "service_4" )
47- assert .Equal (t , p .Services [3 ].Name , "service_5" )
47+ assert .Equal (t , p .Services [2 ].Name , "service_6" )
48+ assert .Equal (t , p .Services [3 ].Name , "service_4" )
49+ assert .Equal (t , p .Services [4 ].Name , "service_5" )
4850 assert .Equal (t , len (p .DisabledServices ), 1 )
4951 assert .Equal (t , p .DisabledServices [0 ].Name , "service_3" )
5052
@@ -74,9 +76,10 @@ func Test_WithoutUnnecessaryResources(t *testing.T) {
7476func Test_NoProfiles (t * testing.T ) {
7577 p := makeProject ()
7678 p .ApplyProfiles (nil )
77- assert .Equal (t , len (p .Services ), 1 )
79+ assert .Equal (t , len (p .Services ), 2 )
7880 assert .Equal (t , len (p .DisabledServices ), 4 )
7981 assert .Equal (t , p .Services [0 ].Name , "service_1" )
82+ assert .Equal (t , p .Services [1 ].Name , "service_6" )
8083}
8184
8285func Test_ServiceProfiles (t * testing.T ) {
@@ -94,10 +97,22 @@ func Test_ForServices(t *testing.T) {
9497 err := p .ForServices ([]string {"service_2" })
9598 assert .NilError (t , err )
9699
97- assert .Equal (t , len (p .DisabledServices ), 3 )
100+ assert .Equal (t , len (p .DisabledServices ), 4 )
98101 assert .Equal (t , p .DisabledServices [0 ].Name , "service_3" )
99102 assert .Equal (t , p .DisabledServices [1 ].Name , "service_4" )
100103 assert .Equal (t , p .DisabledServices [2 ].Name , "service_5" )
104+ assert .Equal (t , p .DisabledServices [3 ].Name , "service_6" )
105+
106+ // Should not load the dependency service_1 when explicitly loading service_6
107+ p = makeProject ()
108+ err = p .ForServices ([]string {"service_6" })
109+ assert .NilError (t , err )
110+ assert .Equal (t , len (p .DisabledServices ), 5 )
111+ assert .Equal (t , p .DisabledServices [0 ].Name , "service_1" )
112+ assert .Equal (t , p .DisabledServices [1 ].Name , "service_2" )
113+ assert .Equal (t , p .DisabledServices [2 ].Name , "service_3" )
114+ assert .Equal (t , p .DisabledServices [3 ].Name , "service_4" )
115+ assert .Equal (t , p .DisabledServices [4 ].Name , "service_5" )
101116}
102117
103118func Test_ForServicesCycle (t * testing.T ) {
@@ -127,6 +142,9 @@ func makeProject() Project {
127142 }, ServiceConfig {
128143 Name : "service_5" ,
129144 Profiles : []string {"zot" },
145+ }, ServiceConfig {
146+ Name : "service_6" ,
147+ Links : []string {"service_1" },
130148 }),
131149 Networks : Networks {},
132150 Volumes : Volumes {},
0 commit comments