@@ -2,13 +2,16 @@ package commands
2
2
3
3
import (
4
4
"bytes"
5
+ "encoding/json"
6
+ "fmt"
5
7
"strings"
6
8
"testing"
7
9
8
10
"github.com/deislabs/cnab-go/bundle"
9
11
"github.com/deislabs/cnab-go/bundle/definition"
10
12
"github.com/deislabs/cnab-go/claim"
11
13
"github.com/docker/app/internal"
14
+ "github.com/docker/app/internal/packager"
12
15
"github.com/docker/app/internal/store"
13
16
"gotest.tools/assert"
14
17
"gotest.tools/assert/cmp"
@@ -264,3 +267,41 @@ func TestMergeBundleParameters(t *testing.T) {
264
267
assert .ErrorContains (t , err , "invalid value for parameter" )
265
268
})
266
269
}
270
+
271
+ func TestLabels (t * testing.T ) {
272
+ expected := packager.DockerAppArgs {
273
+ Labels : map [string ]string {
274
+ "label" : "value" ,
275
+ },
276
+ }
277
+ expectedStr , err := json .Marshal (expected )
278
+ assert .NilError (t , err )
279
+
280
+ labels := []string {
281
+ "label=value" ,
282
+ }
283
+ op := withLabels (labels )
284
+
285
+ config := & mergeBundleConfig {
286
+ bundle : & bundle.Bundle {
287
+ Parameters : map [string ]bundle.Parameter {
288
+ internal .ParameterArgs : {},
289
+ },
290
+ },
291
+ params : map [string ]string {},
292
+ }
293
+ err = op (config )
294
+ assert .NilError (t , err )
295
+ fmt .Println (config .params )
296
+ l := config .params [internal .ParameterArgs ]
297
+ assert .Equal (t , l , string (expectedStr ))
298
+ }
299
+
300
+ func TestInvalidLabels (t * testing.T ) {
301
+ labels := []string {
302
+ "com.docker.app.label=value" ,
303
+ }
304
+ op := withLabels (labels )
305
+ err := op (& mergeBundleConfig {})
306
+ assert .ErrorContains (t , err , fmt .Sprintf ("labels cannot start with %q" , internal .Namespace ))
307
+ }
0 commit comments