env_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package env
  2. import (
  3. "io"
  4. "os"
  5. "path"
  6. "strings"
  7. "testing"
  8. )
  9. // Testing that the template writer creates the appropriate data
  10. func TestWriteTemplate(t *testing.T) {
  11. tmp := t.TempDir()
  12. envTmp := path.Join(tmp, ".env")
  13. wr, err := os.Create(envTmp)
  14. if err != nil {
  15. t.Errorf("failed to created test file: %s\n", err.Error())
  16. }
  17. defer wr.Close()
  18. err = WriteTemplate(wr)
  19. if err != nil {
  20. t.Errorf("failed to write to test file: %s\n", err.Error())
  21. }
  22. wr.Close()
  23. r, err := os.Open(envTmp)
  24. if err != nil {
  25. t.Errorf("failed to open test file for reading: %s\n", err.Error())
  26. }
  27. got, err := io.ReadAll(r)
  28. if err != nil {
  29. t.Errorf("failed to read from open file: %s\n", err.Error())
  30. }
  31. want := []string{
  32. KEIJI_USERNAME,
  33. KEIJI_PASSWORD,
  34. IMAGE_STORE,
  35. WEB_ROOT,
  36. DOMAIN_NAME,
  37. HOST_PORT,
  38. HOST_ADDR,
  39. USE_SSL,
  40. CHAIN,
  41. KEY,
  42. SQLITE_PATH,
  43. }
  44. for i := range want {
  45. if !strings.Contains(string(got), want[i]) {
  46. t.Errorf("test failed! Template file with content: '%s'\n Did not contain: '%s'\n", string(got), want[i])
  47. }
  48. }
  49. }
  50. func TestSQLitePath(t *testing.T) {
  51. t.Setenv(SQLITE_PATH, "")
  52. if got := SQLitePath(); got != "sqlite.db" {
  53. t.Fatalf("default SQLite path = %q", got)
  54. }
  55. t.Setenv(SQLITE_PATH, "/data/keiji.db")
  56. if got := SQLitePath(); got != "/data/keiji.db" {
  57. t.Fatalf("configured SQLite path = %q", got)
  58. }
  59. }