envfile_test.go 976 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package opts
  2. import (
  3. "os"
  4. "path/filepath"
  5. "testing"
  6. "gotest.tools/v3/assert"
  7. is "gotest.tools/v3/assert/cmp"
  8. )
  9. func tmpFileWithContent(t *testing.T, content string) string {
  10. t.Helper()
  11. fileName := filepath.Join(t.TempDir(), "envfile")
  12. err := os.WriteFile(fileName, []byte(content), 0o644)
  13. assert.NilError(t, err)
  14. return fileName
  15. }
  16. // Test ParseEnvFile for a non existent file
  17. func TestParseEnvFileNonExistentFile(t *testing.T) {
  18. _, err := ParseEnvFile("no_such_file")
  19. assert.Check(t, is.ErrorType(err, os.IsNotExist))
  20. }
  21. // ParseEnvFile with environment variable import definitions
  22. func TestParseEnvVariableDefinitionsFile(t *testing.T) {
  23. content := `# comment=
  24. UNDEFINED_VAR
  25. DEFINED_VAR
  26. `
  27. tmpFile := tmpFileWithContent(t, content)
  28. t.Setenv("DEFINED_VAR", "defined-value")
  29. variables, err := ParseEnvFile(tmpFile)
  30. assert.NilError(t, err)
  31. expectedLines := []string{"DEFINED_VAR=defined-value"}
  32. assert.Check(t, is.DeepEqual(variables, expectedLines))
  33. }