main_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package main
  2. import (
  3. "bytes"
  4. "os"
  5. "strings"
  6. "testing"
  7. )
  8. const (
  9. inputFile = "./testdata/test1.md"
  10. outputFile = "test1.md.html"
  11. goldenFile = "./testdata/test1.md.html"
  12. )
  13. func TestParseContent(t *testing.T) {
  14. input, err := os.ReadFile(inputFile)
  15. if err != nil {
  16. t.Fatalf("could not read file: %v", err)
  17. }
  18. result, err := parseContent(input, "")
  19. if err != nil {
  20. t.Fatal(err)
  21. }
  22. expected, err := os.ReadFile(goldenFile)
  23. if err != nil {
  24. t.Fatalf("could not read file: %v", err)
  25. }
  26. if !bytes.Equal(expected, result) {
  27. t.Logf("golden:\n%s\n", expected)
  28. t.Logf("result:\n%s\n", result)
  29. t.Error("Result content does not match golden file")
  30. }
  31. }
  32. func TestRun(t *testing.T) {
  33. var mockStdOut bytes.Buffer
  34. if err := run(inputFile, "", &mockStdOut, true); err != nil {
  35. t.Fatal(err)
  36. }
  37. resultFile := strings.TrimSpace(mockStdOut.String())
  38. result, err := os.ReadFile(resultFile)
  39. if err != nil {
  40. t.Fatal(err)
  41. }
  42. expected, err := os.ReadFile(goldenFile)
  43. if err != nil {
  44. t.Fatal(err)
  45. }
  46. if !bytes.Equal(expected, result) {
  47. t.Logf("golden:\n%s\n", expected)
  48. t.Logf("result:\n%s\n", result)
  49. t.Error("Result content does not match golden file")
  50. }
  51. os.Remove(resultFile)
  52. }