1
0
mirror of https://github.com/oauth2-proxy/oauth2-proxy.git synced 2025-08-10 22:51:31 +02:00
Files
oauth2-proxy/pkg/apis/options/cookie_test.go

71 lines
1.6 KiB
Go
Raw Permalink Normal View History

package options
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
)
func TestCookieGetSecret(t *testing.T) {
t.Run("returns secret when Secret is set", func(t *testing.T) {
c := &Cookie{
Secret: "my-secret",
SecretFile: "",
}
secret, err := c.GetSecret()
assert.NoError(t, err)
assert.Equal(t, "my-secret", secret)
})
t.Run("returns secret when both Secret and SecretFile are set", func(t *testing.T) {
c := &Cookie{
Secret: "my-secret",
SecretFile: "/some/file",
}
secret, err := c.GetSecret()
assert.NoError(t, err)
assert.Equal(t, "my-secret", secret)
})
t.Run("reads from file when only SecretFile is set", func(t *testing.T) {
// Create a temporary file
tmpfile, err := os.CreateTemp("", "cookie-secret-test")
assert.NoError(t, err)
defer os.Remove(tmpfile.Name())
_, err = tmpfile.Write([]byte("file-secret"))
assert.NoError(t, err)
tmpfile.Close()
c := &Cookie{
Secret: "",
SecretFile: tmpfile.Name(),
}
secret, err := c.GetSecret()
assert.NoError(t, err)
assert.Equal(t, "file-secret", secret)
})
t.Run("returns error when file does not exist", func(t *testing.T) {
c := &Cookie{
Secret: "",
SecretFile: "/nonexistent/file",
}
secret, err := c.GetSecret()
assert.Error(t, err)
assert.Equal(t, "", secret)
assert.Contains(t, err.Error(), "could not read cookie secret file")
})
t.Run("returns empty when both Secret and SecretFile are empty", func(t *testing.T) {
c := &Cookie{
Secret: "",
SecretFile: "",
}
secret, err := c.GetSecret()
assert.NoError(t, err)
assert.Equal(t, "", secret)
})
}