blob: b5a0e21e48772be18c090444d057c56ab50f6d40 [file] [log] [blame] [edit]
package twirp_auth2
import (
"context"
"testing"
"github.com/stretchr/testify/require"
"go.skia.org/infra/go/alogin"
"go.skia.org/infra/go/roles"
)
var (
unauthorizedStatus = alogin.Status{
EMail: alogin.NotLoggedIn,
Roles: roles.Roles{},
}
viewerStatus = alogin.Status{
EMail: alogin.EMail("viewer@example.com"),
Roles: roles.Roles{roles.Viewer},
}
editorStatus = alogin.Status{
EMail: alogin.EMail("editor@example.com"),
Roles: roles.Roles{roles.Editor},
}
)
func TestAuthHelperGetEditor_UserIsViewer_ReturnsError(t *testing.T) {
ctx := alogin.FakeStatus(context.Background(), &viewerStatus)
email, err := New().GetEditor(ctx)
require.Error(t, err)
require.Equal(t, alogin.NotLoggedIn.String(), email)
}
func TestAuthHelperGetEditor_UserIsEditor_Success(t *testing.T) {
ctx := alogin.FakeStatus(context.Background(), &editorStatus)
email, err := New().GetEditor(ctx)
require.NoError(t, err)
require.Equal(t, editorStatus.EMail.String(), email)
}
func TestAuthHelperGetViewer_UserIsViewer_ReturnsSuccess(t *testing.T) {
ctx := alogin.FakeStatus(context.Background(), &viewerStatus)
email, err := New().GetViewer(ctx)
require.NoError(t, err)
require.Equal(t, viewerStatus.EMail.String(), email)
}
func TestAuthHelperGetViewer_UserIsEditor_Success(t *testing.T) {
ctx := alogin.FakeStatus(context.Background(), &editorStatus)
email, err := New().GetViewer(ctx)
require.NoError(t, err)
require.Equal(t, editorStatus.EMail.String(), email)
}
func TestAuthHelperGetViewer_UserIsNotLoggedIn_ReturnsError(t *testing.T) {
ctx := alogin.FakeStatus(context.Background(), &unauthorizedStatus)
email, err := New().GetViewer(ctx)
require.Error(t, err)
require.Equal(t, alogin.NotLoggedIn.String(), email)
}