@@ -11,7 +11,6 @@ import (
1111 "github.com/docker/cli/internal/test/testutil"
1212 "github.com/docker/docker/api/types"
1313 "github.com/docker/docker/api/types/swarm"
14- "github.com/gotestyourself/gotestyourself/golden"
1514 "github.com/pkg/errors"
1615 "github.com/stretchr/testify/assert"
1716)
@@ -52,15 +51,22 @@ func TestSecretCreateErrors(t *testing.T) {
5251
5352func TestSecretCreateWithName (t * testing.T ) {
5453 name := "foo"
55- var actual []byte
54+ data , err := ioutil .ReadFile (filepath .Join ("testdata" , secretDataFile ))
55+ assert .NoError (t , err )
56+
57+ expected := swarm.SecretSpec {
58+ Annotations : swarm.Annotations {
59+ Name : name ,
60+ Labels : make (map [string ]string ),
61+ },
62+ Data : data ,
63+ }
64+
5665 cli := test .NewFakeCli (& fakeClient {
5766 secretCreateFunc : func (spec swarm.SecretSpec ) (types.SecretCreateResponse , error ) {
58- if spec . Name != name {
59- return types.SecretCreateResponse {}, errors .Errorf ("expected name %q , got %q " , name , spec . Name )
67+ if ! reflect . DeepEqual ( spec , expected ) {
68+ return types.SecretCreateResponse {}, errors .Errorf ("expected %+v , got %+v " , expected , spec )
6069 }
61-
62- actual = spec .Data
63-
6470 return types.SecretCreateResponse {
6571 ID : "ID-" + spec .Name ,
6672 }, nil
@@ -70,7 +76,6 @@ func TestSecretCreateWithName(t *testing.T) {
7076 cmd := newSecretCreateCommand (cli )
7177 cmd .SetArgs ([]string {name , filepath .Join ("testdata" , secretDataFile )})
7278 assert .NoError (t , cmd .Execute ())
73- golden .Assert (t , string (actual ), secretDataFile )
7479 assert .Equal (t , "ID-" + name , strings .TrimSpace (cli .OutBuffer ().String ()))
7580}
7681
@@ -86,7 +91,7 @@ func TestSecretCreateWithDriver(t *testing.T) {
8691 return types.SecretCreateResponse {}, errors .Errorf ("expected name %q, got %q" , name , spec .Name )
8792 }
8893
89- if ! reflect . DeepEqual ( spec .Driver .Name , expectedDriver .Name ) {
94+ if spec .Driver .Name != expectedDriver .Name {
9095 return types.SecretCreateResponse {}, errors .Errorf ("expected driver %v, got %v" , expectedDriver , spec .Labels )
9196 }
9297
@@ -103,6 +108,35 @@ func TestSecretCreateWithDriver(t *testing.T) {
103108 assert .Equal (t , "ID-" + name , strings .TrimSpace (cli .OutBuffer ().String ()))
104109}
105110
111+ func TestSecretCreateWithTemplatingDriver (t * testing.T ) {
112+ expectedDriver := & swarm.Driver {
113+ Name : "template-driver" ,
114+ }
115+ name := "foo"
116+
117+ cli := test .NewFakeCli (& fakeClient {
118+ secretCreateFunc : func (spec swarm.SecretSpec ) (types.SecretCreateResponse , error ) {
119+ if spec .Name != name {
120+ return types.SecretCreateResponse {}, errors .Errorf ("expected name %q, got %q" , name , spec .Name )
121+ }
122+
123+ if spec .Templating .Name != expectedDriver .Name {
124+ return types.SecretCreateResponse {}, errors .Errorf ("expected driver %v, got %v" , expectedDriver , spec .Labels )
125+ }
126+
127+ return types.SecretCreateResponse {
128+ ID : "ID-" + spec .Name ,
129+ }, nil
130+ },
131+ })
132+
133+ cmd := newSecretCreateCommand (cli )
134+ cmd .SetArgs ([]string {name })
135+ cmd .Flags ().Set ("template-driver" , expectedDriver .Name )
136+ assert .NoError (t , cmd .Execute ())
137+ assert .Equal (t , "ID-" + name , strings .TrimSpace (cli .OutBuffer ().String ()))
138+ }
139+
106140func TestSecretCreateWithLabels (t * testing.T ) {
107141 expectedLabels := map [string ]string {
108142 "lbl1" : "Label-foo" ,
0 commit comments