tests that would have caught tag renaming bug. js tests now don't marahsl expected through the go object. Instead minify both sides to compare

This commit is contained in:
Craig Peterson 2017-07-20 17:41:15 -04:00
parent d106c88488
commit 710d14b1a9
11 changed files with 41 additions and 25 deletions

View file

@ -213,7 +213,7 @@ type DomainConfig struct {
Metadata map[string]string `json:"meta,omitempty"`
Records []*RecordConfig `json:"records"`
Nameservers []*Nameserver `json:"nameservers,omitempty"`
KeepUnknown bool `json:"keepunknown"`
KeepUnknown bool `json:"keepunknown,omitempty"`
}
func (dc *DomainConfig) Copy() (*DomainConfig, error) {

View file

@ -8,7 +8,8 @@ import (
"testing"
"unicode"
"github.com/StackExchange/dnscontrol/models"
"github.com/tdewolff/minify"
minjson "github.com/tdewolff/minify/json"
)
const (
@ -30,6 +31,8 @@ func TestParsedFiles(t *testing.T) {
if filepath.Ext(f.Name()) != ".js" || !unicode.IsNumber(rune(f.Name()[0])) {
continue
}
m := minify.New()
m.AddFunc("json", minjson.Minify)
t.Run(f.Name(), func(t *testing.T) {
content, err := ioutil.ReadFile(filepath.Join(testDir, f.Name()))
if err != nil {
@ -43,25 +46,24 @@ func TestParsedFiles(t *testing.T) {
if err != nil {
t.Fatal(err)
}
actualJSON, err = m.Bytes("json", actualJSON)
if err != nil {
t.Fatal(err)
}
expectedFile := filepath.Join(testDir, f.Name()[:len(f.Name())-3]+".json")
expectedData, err := ioutil.ReadFile(expectedFile)
if err != nil {
t.Fatal(err)
}
conf = &models.DNSConfig{}
//unmarshal and remarshal to not require manual formatting
err = json.Unmarshal(expectedData, conf)
if err != nil {
t.Fatal(err)
}
expectedJSON, err := json.MarshalIndent(conf, "", " ")
expectedJSON, err := m.String("json", string(expectedData))
if err != nil {
t.Fatal(err)
}
if string(expectedJSON) != string(actualJSON) {
t.Error("Expected and actual json don't match")
t.Log("Expected:", string(expectedJSON))
t.Log("Actual:", string(actualJSON))
t.Log("Actual :", string(actualJSON))
}
})
}

View file

@ -27,8 +27,7 @@
"transform": "0.0.0.0 ~ 1.1.1.1 ~ 2.2.2.2 ~ ; 1.1.1.1 ~ 2.2.2.2 ~ 3.3.3.3,4.4.4.4,5.5.5.5 ~ ; 1.1.1.1 ~ 2.2.2.2 ~ ~ 3.3.3.3,4.4.4.4,5.5.5.5"
}
}
],
"keepunknown": false
]
}
]
}

View file

@ -16,8 +16,7 @@
"transform_table": "0.0.0.0 ~ 1.1.1.1 ~ 2.2.2.2 ~ "
}
}
],
"keepunknown": false
]
}
]
}

View file

@ -12,8 +12,7 @@
"name": "@",
"target": "1.2.3.4"
}
],
"keepunknown": false
]
}
]
}

View file

@ -6,8 +6,7 @@
"name": "2.1.in-addr.arpa",
"registrar": "none",
"dnsProviders": {},
"records": [],
"keepunknown": false
"records": []
}
]
}

View file

@ -12,8 +12,7 @@
"name": "@",
"target": "foo.com."
}
],
"keepunknown": false
]
}
]
}

View file

@ -17,8 +17,7 @@
"name": "@",
"target": "test.foo.com,https://goo.com/$1"
}
],
"keepunknown": false
]
}
]
}

View file

@ -37,9 +37,7 @@
"target": "1.2.3.4",
"ttl":259200
}
],
"keepunknown": false
]
}
]
}

View file

@ -0,0 +1,3 @@
D("foo.com","none",
MX("@",15,"foo.com.")
);

View file

@ -0,0 +1,19 @@
{
"registrars": [],
"dns_providers": [],
"domains": [
{
"name": "foo.com",
"registrar": "none",
"dnsProviders": {},
"records": [
{
"type": "MX",
"name": "@",
"target": "foo.com.",
"mxpreference": 15
}
]
}
]
}