| 97 | } |
| 98 | |
| 99 | func TestPresetsFromBothSources(t *testing.T) { |
| 100 | // Create temporary preset file |
| 101 | tmpFile, err := os.CreateTemp(t.TempDir(), "presets-*.txt") |
| 102 | require.NoError(t, err) |
| 103 | defer os.Remove(tmpFile.Name()) |
| 104 | |
| 105 | // Write presets to file |
| 106 | _, err = tmpFile.WriteString("file_preset1\nfile_preset2\n") |
| 107 | require.NoError(t, err) |
| 108 | tmpFile.Close() |
| 109 | |
| 110 | // Setup environment with both sources |
| 111 | t.Setenv("IMGPROXY_PRESETS_SEPARATOR", ",") |
| 112 | t.Setenv("IMGPROXY_PRESETS", "preset1,preset2") |
| 113 | t.Setenv("IMGPROXY_PRESETS_PATH", tmpFile.Name()) |
| 114 | |
| 115 | // Load config |
| 116 | cfg, err := optionsparser.LoadConfigFromEnv(nil) |
| 117 | |
| 118 | // Verify both presets are loaded |
| 119 | require.NoError(t, err) |
| 120 | require.NotNil(t, cfg) |
| 121 | require.Equal(t, []string{"preset1", "preset2", "file_preset1", "file_preset2"}, cfg.Presets) |
| 122 | } |