| 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) | 
 | } |