@ -56,7 +56,6 @@ afterEach(() => {
describe ( 'Tabs rendering' , ( ) = > {
it ( 'should render All and Org Users tabs when user has permissions to read to org users and is admin' , async ( ) = > {
jest . spyOn ( contextSrv , 'hasAccess' ) . mockReturnValue ( true ) ;
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( true ) ;
renderPage ( ) ;
@ -66,7 +65,6 @@ describe('Tabs rendering', () => {
expect ( screen . queryByTestId ( tabsSelector . publicDashboardsUsers ) ) . not . toBeInTheDocument ( ) ;
} ) ;
it ( 'should render All, Org and Public dashboard tabs when user has permissions to read org users, is admin and has email sharing enabled' , async ( ) = > {
jest . spyOn ( contextSrv , 'hasAccess' ) . mockReturnValue ( true ) ;
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( true ) ;
enableEmailSharing ( ) ;
@ -77,61 +75,34 @@ describe('Tabs rendering', () => {
expect ( screen . getByTestId ( tabsSelector . publicDashboardsUsers ) ) . toBeInTheDocument ( ) ;
} ) ;
describe ( 'No permissions to read org users or not admin' , ( ) = > {
[
{
hasOrgReadPermissions : false ,
isAdmin : true ,
} ,
{
hasOrgReadPermissions : true ,
isAdmin : false ,
} ,
] . forEach ( ( scenario ) = > {
it ( 'should render no tabs when user has no permissions to read org users or is not admin' , async ( ) = > {
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( scenario . hasOrgReadPermissions ) ;
jest . spyOn ( contextSrv , 'hasAccess' ) . mockReturnValue ( scenario . isAdmin ) ;
renderPage ( ) ;
expect ( screen . queryByTestId ( tabsSelector . allUsers ) ) . not . toBeInTheDocument ( ) ;
expect ( screen . queryByTestId ( tabsSelector . orgUsers ) ) . not . toBeInTheDocument ( ) ;
expect ( screen . queryByTestId ( tabsSelector . publicDashboardsUsers ) ) . not . toBeInTheDocument ( ) ;
} ) ;
it ( 'should render no tabs when user has no permissions to read org users' , async ( ) = > {
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( false ) ;
renderPage ( ) ;
expect ( screen . queryByTestId ( tabsSelector . allUsers ) ) . not . toBeInTheDocument ( ) ;
expect ( screen . queryByTestId ( tabsSelector . orgUsers ) ) . not . toBeInTheDocument ( ) ;
expect ( screen . queryByTestId ( tabsSelector . publicDashboardsUsers ) ) . not . toBeInTheDocument ( ) ;
} ) ;
} ) ;
describe ( 'No permissions to read org users or not admin but email sharing enabled' , ( ) = > {
[
{
title : 'user has no permissions to read org users' ,
hasOrgReadPermissions : false ,
isAdmin : true ,
} ,
{
title : 'user is not admin' ,
hasOrgReadPermissions : true ,
isAdmin : false ,
} ,
] . forEach ( ( scenario ) = > {
it ( ` should render User and Public dashboard tabs when ${ scenario . title } but has email sharing enabled ` , async ( ) = > {
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( scenario . hasOrgReadPermissions ) ;
jest . spyOn ( contextSrv , 'hasAccess' ) . mockReturnValue ( scenario . isAdmin ) ;
enableEmailSharing ( ) ;
renderPage ( ) ;
expect ( screen . queryByTestId ( tabsSelector . allUsers ) ) . not . toBeInTheDocument ( ) ;
expect ( screen . queryByTestId ( tabsSelector . orgUsers ) ) . not . toBeInTheDocument ( ) ;
expect ( screen . getByTestId ( tabsSelector . users ) ) . toBeInTheDocument ( ) ;
expect ( screen . getByTestId ( tabsSelector . publicDashboardsUsers ) ) . toBeInTheDocument ( ) ;
} ) ;
describe ( 'No permissions to read org users but email sharing enabled' , ( ) = > {
it ( ` should render User and Public dashboard tabs when no permissions to read org users but has email sharing enabled ` , async ( ) = > {
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( false ) ;
enableEmailSharing ( ) ;
renderPage ( ) ;
expect ( screen . queryByTestId ( tabsSelector . allUsers ) ) . not . toBeInTheDocument ( ) ;
expect ( screen . queryByTestId ( tabsSelector . orgUsers ) ) . not . toBeInTheDocument ( ) ;
expect ( screen . getByTestId ( tabsSelector . users ) ) . toBeInTheDocument ( ) ;
expect ( screen . getByTestId ( tabsSelector . publicDashboardsUsers ) ) . toBeInTheDocument ( ) ;
} ) ;
} ) ;
} ) ;
describe ( 'Tables rendering' , ( ) = > {
it ( 'should render UserListAdminPage when user is admin' , ( ) = > {
jest . spyOn ( contextSrv , 'hasAccess' ) . mockReturnValue ( true ) ;
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( true ) ;
renderPage ( ) ;
@ -142,7 +113,6 @@ describe('Tables rendering', () => {
expect ( screen . getByTestId ( selectors . UserListAdminPage . container ) ) . toBeInTheDocument ( ) ;
} ) ;
it ( 'should render UsersListPage when user is admin and has org read permissions' , async ( ) = > {
jest . spyOn ( contextSrv , 'hasAccess' ) . mockReturnValue ( true ) ;
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( true ) ;
renderPage ( ) ;
@ -156,8 +126,7 @@ describe('Tables rendering', () => {
expect ( screen . getByTestId ( selectors . UsersListPage . container ) ) . toBeInTheDocument ( ) ;
} ) ;
it ( 'should render UsersListPage when user has org read permissions and is not admin' , async ( ) = > {
jest . spyOn ( contextSrv , 'hasAccess' ) . mockReturnValue ( false ) ;
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( true ) ;
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( false ) ;
renderPage ( ) ;
@ -169,8 +138,7 @@ describe('Tables rendering', () => {
expect ( screen . getByTestId ( selectors . UsersListPage . container ) ) . toBeInTheDocument ( ) ;
} ) ;
it ( 'should render UserListPublicDashboardPage when user has email sharing enabled and is not admin' , async ( ) = > {
jest . spyOn ( contextSrv , 'hasAccess' ) . mockReturnValue ( false ) ;
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( true ) ;
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( false ) ;
enableEmailSharing ( ) ;
renderPage ( ) ;
@ -186,7 +154,6 @@ describe('Tables rendering', () => {
expect ( screen . getByTestId ( selectors . UsersListPublicDashboardsPage . container ) ) . toBeInTheDocument ( ) ;
} ) ;
it ( 'should render UsersListPage when user is not admin and does not have nor org read perms neither email sharing enabled' , async ( ) = > {
jest . spyOn ( contextSrv , 'hasAccess' ) . mockReturnValue ( false ) ;
jest . spyOn ( contextSrv , 'hasPermission' ) . mockReturnValue ( false ) ;
renderPage ( ) ;