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,
|
||||
CreateDeploymentConfig: k.createDeploymentConfig(options),
|
||||
EmptyVols: false,
|
||||
Profiles: options.Profiles,
|
||||
Volumes: *options.VolumeType,
|
||||
PVCRequestSize: options.PvcRequestSize,
|
||||
InsecureRepository: k.insecureRepository(options),
|
||||
|
||||
@ -2,6 +2,8 @@ package client
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"sort"
|
||||
"testing"
|
||||
|
||||
"gotest.tools/v3/assert"
|
||||
@ -69,7 +71,7 @@ func TestConvertWithDefaultOptions(t *testing.T) {
|
||||
client, err := NewClient(WithErrorOnWarning())
|
||||
assert.Check(t, is.Equal(err, nil))
|
||||
objects, err := client.Convert(ConvertOptions{
|
||||
OutFile: "./testdata/generated/",
|
||||
ToStdout: true,
|
||||
InputFiles: []string{
|
||||
"./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
|
||||
WithKomposeAnnotations *bool
|
||||
InputFiles []string
|
||||
Profiles []string
|
||||
Provider
|
||||
GenerateNetworkPolicies bool
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user