github.com/davidmanzanares/dsd@v0.1.2-0.20210106152357-a35988f5d245/dsdl/config_test.go (about)

     1  package dsdl
     2  
     3  import (
     4  	"os"
     5  	"reflect"
     6  	"testing"
     7  )
     8  
     9  func TestConfig(t *testing.T) {
    10  	w, err := os.Getwd()
    11  	if err != nil {
    12  		t.Fatal(err)
    13  	}
    14  	dir := "./test-config"
    15  	os.Mkdir(dir, 0777)
    16  	defer os.RemoveAll(dir)
    17  	os.Chdir(dir)
    18  	defer os.Chdir(w)
    19  
    20  	conf, err := LoadConfig()
    21  	if err == nil {
    22  		t.Fatal("Expected error, no config file")
    23  	}
    24  	if !reflect.DeepEqual(conf, Config{Targets: make(map[string]*Target)}) {
    25  		t.Fatal(conf)
    26  	}
    27  
    28  	target := Target{Name: "myname", Patterns: []string{"asd", "wadus"}, Service: "myservice"}
    29  	err = AddTarget(target)
    30  	if err != nil {
    31  		t.Fatal(err)
    32  	}
    33  
    34  	conf, err = LoadConfig()
    35  	if err != nil {
    36  		t.Fatal(err)
    37  	}
    38  	expected := make(map[string]*Target)
    39  	expected["myname"] = &target
    40  	if !reflect.DeepEqual(conf, Config{Targets: expected}) {
    41  		t.Fatal(conf)
    42  	}
    43  }