forked from toolshed/abra
fix: correct append service name logic in Filters function (!396)
This fixes a regression introduced by #395 Reviewed-on: coop-cloud/abra#396 Co-authored-by: p4u1 <p4u1_f4u1@riseup.net> Co-committed-by: p4u1 <p4u1_f4u1@riseup.net>
This commit is contained in:
@ -1,12 +1,15 @@
|
||||
package config_test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"coopcloud.tech/abra/pkg/config"
|
||||
"coopcloud.tech/abra/pkg/recipe"
|
||||
"github.com/docker/docker/api/types/filters"
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@ -106,3 +109,89 @@ func TestGetComposeFilesError(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilters(t *testing.T) {
|
||||
oldDir := config.RECIPES_DIR
|
||||
config.RECIPES_DIR = "./testdir"
|
||||
defer func() {
|
||||
config.RECIPES_DIR = oldDir
|
||||
}()
|
||||
|
||||
app, err := config.NewApp(config.AppEnv{
|
||||
"DOMAIN": "test.example.com",
|
||||
"RECIPE": "test-recipe",
|
||||
}, "test_example_com", config.AppFile{
|
||||
Path: "./testdir/filtertest.end",
|
||||
Server: "local",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
f, err := app.Filters(false, false)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
compareFilter(t, f, map[string]map[string]bool{
|
||||
"name": {
|
||||
"test_example_com": true,
|
||||
},
|
||||
})
|
||||
|
||||
f2, err := app.Filters(false, true)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
compareFilter(t, f2, map[string]map[string]bool{
|
||||
"name": {
|
||||
"^test_example_com": true,
|
||||
},
|
||||
})
|
||||
|
||||
f3, err := app.Filters(true, false)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
compareFilter(t, f3, map[string]map[string]bool{
|
||||
"name": {
|
||||
"test_example_com_bar": true,
|
||||
"test_example_com_foo": true,
|
||||
},
|
||||
})
|
||||
|
||||
f4, err := app.Filters(true, true)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
compareFilter(t, f4, map[string]map[string]bool{
|
||||
"name": {
|
||||
"^test_example_com_bar": true,
|
||||
"^test_example_com_foo": true,
|
||||
},
|
||||
})
|
||||
|
||||
f5, err := app.Filters(false, false, "foo")
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
compareFilter(t, f5, map[string]map[string]bool{
|
||||
"name": {
|
||||
"test_example_com_foo": true,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func compareFilter(t *testing.T, f1 filters.Args, f2 map[string]map[string]bool) {
|
||||
t.Helper()
|
||||
j1, err := f1.MarshalJSON()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
j2, err := json.Marshal(f2)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if diff := cmp.Diff(string(j2), string(j1)); diff != "" {
|
||||
t.Errorf("filters mismatch (-want +got):\n%s", diff)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user