forked from LaconicNetwork/kompose
test: adding tests for convert
This commit is contained in:
parent
a7c63a650c
commit
82eb2a8e10
@ -33,6 +33,7 @@ func (k *Kompose) Convert(options ConvertOptions) ([]runtime.Object, error) {
|
|||||||
PushImageRegistry: options.PushImageRegistry,
|
PushImageRegistry: options.PushImageRegistry,
|
||||||
CreateDeploymentConfig: k.createDeploymentConfig(options),
|
CreateDeploymentConfig: k.createDeploymentConfig(options),
|
||||||
EmptyVols: false,
|
EmptyVols: false,
|
||||||
|
Profiles: options.Profiles,
|
||||||
Volumes: *options.VolumeType,
|
Volumes: *options.VolumeType,
|
||||||
PVCRequestSize: options.PvcRequestSize,
|
PVCRequestSize: options.PvcRequestSize,
|
||||||
InsecureRepository: k.insecureRepository(options),
|
InsecureRepository: k.insecureRepository(options),
|
||||||
|
|||||||
@ -2,6 +2,8 @@ package client
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
v1 "k8s.io/api/core/v1"
|
||||||
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"gotest.tools/v3/assert"
|
"gotest.tools/v3/assert"
|
||||||
@ -69,7 +71,7 @@ func TestConvertWithDefaultOptions(t *testing.T) {
|
|||||||
client, err := NewClient(WithErrorOnWarning())
|
client, err := NewClient(WithErrorOnWarning())
|
||||||
assert.Check(t, is.Equal(err, nil))
|
assert.Check(t, is.Equal(err, nil))
|
||||||
objects, err := client.Convert(ConvertOptions{
|
objects, err := client.Convert(ConvertOptions{
|
||||||
OutFile: "./testdata/generated/",
|
ToStdout: true,
|
||||||
InputFiles: []string{
|
InputFiles: []string{
|
||||||
"./testdata/docker-compose.yaml",
|
"./testdata/docker-compose.yaml",
|
||||||
},
|
},
|
||||||
@ -81,3 +83,89 @@ func TestConvertWithDefaultOptions(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestConvertWithProfiles(t *testing.T) {
|
||||||
|
client, err := NewClient(WithErrorOnWarning())
|
||||||
|
assert.Check(t, is.Equal(err, nil))
|
||||||
|
|
||||||
|
type Want struct {
|
||||||
|
deploymentsNames []string
|
||||||
|
servicesNames []string
|
||||||
|
}
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
options ConvertOptions
|
||||||
|
want Want
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "No profiles provided",
|
||||||
|
options: ConvertOptions{
|
||||||
|
ToStdout: true,
|
||||||
|
InputFiles: []string{
|
||||||
|
"./testdata/docker-compose-profiles.yaml",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
want: Want{
|
||||||
|
deploymentsNames: nil,
|
||||||
|
servicesNames: nil,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "All profiles provided",
|
||||||
|
options: ConvertOptions{
|
||||||
|
ToStdout: true,
|
||||||
|
InputFiles: []string{
|
||||||
|
"./testdata/docker-compose-profiles.yaml",
|
||||||
|
},
|
||||||
|
Profiles: []string{"hello", "world"},
|
||||||
|
},
|
||||||
|
want: Want{
|
||||||
|
deploymentsNames: []string{"backend", "frontend", "database"},
|
||||||
|
servicesNames: []string{"backend", "frontend", "database"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "All profiles provided",
|
||||||
|
options: ConvertOptions{
|
||||||
|
ToStdout: true,
|
||||||
|
InputFiles: []string{
|
||||||
|
"./testdata/docker-compose-profiles.yaml",
|
||||||
|
},
|
||||||
|
Profiles: []string{"hello"},
|
||||||
|
},
|
||||||
|
want: Want{
|
||||||
|
deploymentsNames: []string{"backend", "frontend"},
|
||||||
|
servicesNames: []string{"backend", "frontend"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
objects, err := client.Convert(tt.options)
|
||||||
|
assert.Check(t, is.Equal(err, nil))
|
||||||
|
|
||||||
|
sort.Strings(tt.want.deploymentsNames)
|
||||||
|
sort.Strings(tt.want.servicesNames)
|
||||||
|
|
||||||
|
var deploymentsNames []string
|
||||||
|
var servicesNames []string
|
||||||
|
|
||||||
|
for _, object := range objects {
|
||||||
|
if deployment, ok := object.(*appsv1.Deployment); ok {
|
||||||
|
deploymentsNames = append(deploymentsNames, deployment.Name)
|
||||||
|
}
|
||||||
|
|
||||||
|
if service, ok := object.(*v1.Service); ok {
|
||||||
|
servicesNames = append(servicesNames, service.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sort.Strings(deploymentsNames)
|
||||||
|
sort.Strings(servicesNames)
|
||||||
|
|
||||||
|
assert.Check(t, is.DeepEqual(deploymentsNames, tt.want.deploymentsNames))
|
||||||
|
assert.Check(t, is.DeepEqual(servicesNames, tt.want.servicesNames))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
17
client/testdata/docker-compose-profiles.yaml
vendored
Normal file
17
client/testdata/docker-compose-profiles.yaml
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
backend:
|
||||||
|
image: dummy:tag
|
||||||
|
profiles: ['hello', 'world']
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
frontend:
|
||||||
|
image: dummy:tag
|
||||||
|
profiles: [ 'hello' ]
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
database:
|
||||||
|
image: dummy:tag
|
||||||
|
profiles: [ 'world' ]
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
@ -44,6 +44,7 @@ type ConvertOptions struct {
|
|||||||
PvcRequestSize string
|
PvcRequestSize string
|
||||||
WithKomposeAnnotations *bool
|
WithKomposeAnnotations *bool
|
||||||
InputFiles []string
|
InputFiles []string
|
||||||
|
Profiles []string
|
||||||
Provider
|
Provider
|
||||||
GenerateNetworkPolicies bool
|
GenerateNetworkPolicies bool
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user