diff --git a/blorg/config_test.go b/blorg/config_test.go index 03451eb..61e5749 100644 --- a/blorg/config_test.go +++ b/blorg/config_test.go @@ -1,6 +1,12 @@ package blorg -import "testing" +import ( + "fmt" + "io/ioutil" + "os/exec" + "strings" + "testing" +) func TestBlorg(t *testing.T) { config, err := ReadConfig("testdata/blorg.org") @@ -8,7 +14,23 @@ func TestBlorg(t *testing.T) { t.Errorf("Could not read config: %s", err) return } + commitedHashBs, err := ioutil.ReadFile("testdata/public.md5") + if err != nil { + t.Errorf("Could not read hash bytes: %s", err) + return + } if err := config.Render(); err != nil { t.Errorf("Could not render: %s", err) + return + } + renderedHashBs, err := exec.Command("bash", "-c", fmt.Sprintf("find %s -type f | sort -u | xargs cat | md5sum", config.PublicDir)).Output() + if err != nil { + t.Errorf("Could not hash PublicDir: %s", err) + return + } + rendered, committed := strings.TrimSpace(string(renderedHashBs)), strings.TrimSpace(string(commitedHashBs)) + if rendered != committed { + t.Errorf("PublicDir hashes do not match: '%s' -> '%s'", committed, rendered) + return } } diff --git a/blorg/testdata/public.md5 b/blorg/testdata/public.md5 new file mode 100644 index 0000000..9adc584 --- /dev/null +++ b/blorg/testdata/public.md5 @@ -0,0 +1 @@ +89cf2d231acc494dde0a4f565e668242 - diff --git a/etc/generate-fixtures b/etc/generate-fixtures index 7a5be42..1af700f 100755 --- a/etc/generate-fixtures +++ b/etc/generate-fixtures @@ -5,3 +5,5 @@ for org_file in org/testdata/*.org; do ./go-org render $org_file html > org/testdata/$(basename $org_file .org).html ./go-org render $org_file org > org/testdata/$(basename $org_file .org).pretty_org done + +find blorg/testdata/public -type f | sort -u | xargs cat | md5sum > blorg/testdata/public.md5