package handlers

import (
	"encoding/json"
	"testing"

	"github.com/stretchr/testify/assert"

	"edge-infra.dev/pkg/edge/auth-proxy/faker"
)

func TestGoodSessionRefresh(t *testing.T) {
	req, err := json.Marshal(faker.MockGoodSessionRefreshResponse())
	assert.NoError(t, err)
	_, body, err := proxyHandler.SessionRefresh(nil, req)
	assert.NoError(t, err)
	assert.Equal(t, req, body)
}

func TestEmptySessionRefresh(t *testing.T) {
	req, err := json.Marshal(faker.MockEmptySessionRefreshResponse())
	assert.NoError(t, err)
	_, _, err = proxyHandler.SessionRefresh(nil, req)
	assert.Error(t, err)
	assert.ErrorIs(t, err, ErrEmptyBSLTokenResponse)
}

func TestBadSessionRefresh(t *testing.T) {
	req, err := json.Marshal(faker.MockBadSessionRefreshResponse())
	assert.NoError(t, err)
	_, _, err = proxyHandler.SessionRefresh(nil, req)
	assert.Error(t, err)
}