managed-user-status.spec.tsx 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import ManagedUserStatus from '../../../../../../frontend/js/features/group-management/components/managed-users/managed-user-status'
  2. import { User } from '../../../../../../types/group-management/user'
  3. describe('ManagedUserStatus', function () {
  4. describe('with a pending invite', function () {
  5. const user: User = {
  6. _id: 'some-user',
  7. email: 'some.user@example.com',
  8. first_name: 'Some',
  9. last_name: 'User',
  10. invite: true,
  11. last_active_at: new Date(),
  12. enrollment: undefined,
  13. isEntityAdmin: undefined,
  14. }
  15. beforeEach(function () {
  16. cy.mount(<ManagedUserStatus user={user} />)
  17. })
  18. it('should render a pending state', function () {
  19. cy.get('.security-state-invite-pending').contains('Managed')
  20. })
  21. })
  22. describe('with a managed user', function () {
  23. const user: User = {
  24. _id: 'some-user',
  25. email: 'some.user@example.com',
  26. first_name: 'Some',
  27. last_name: 'User',
  28. invite: false,
  29. last_active_at: new Date(),
  30. enrollment: { managedBy: 'some-group', enrolledAt: new Date() },
  31. isEntityAdmin: undefined,
  32. }
  33. beforeEach(function () {
  34. cy.mount(<ManagedUserStatus user={user} />)
  35. })
  36. it('should render a pending state', function () {
  37. cy.get('.security-state-managed').contains('Managed')
  38. })
  39. })
  40. describe('with an un-managed user', function () {
  41. const user: User = {
  42. _id: 'some-user',
  43. email: 'some.user@example.com',
  44. first_name: 'Some',
  45. last_name: 'User',
  46. invite: false,
  47. last_active_at: new Date(),
  48. enrollment: undefined,
  49. isEntityAdmin: undefined,
  50. }
  51. beforeEach(function () {
  52. cy.mount(<ManagedUserStatus user={user} />)
  53. })
  54. it('should render an un-managed state', function () {
  55. cy.get('.security-state-not-managed').contains('Managed')
  56. })
  57. })
  58. describe('with the group admin', function () {
  59. const user: User = {
  60. _id: 'some-user',
  61. email: 'some.user@example.com',
  62. first_name: 'Some',
  63. last_name: 'User',
  64. invite: false,
  65. last_active_at: new Date(),
  66. enrollment: undefined,
  67. isEntityAdmin: true,
  68. }
  69. beforeEach(function () {
  70. cy.mount(<ManagedUserStatus user={user} />)
  71. })
  72. it('should render no state indicator', function () {
  73. cy.get('.security-state-group-admin')
  74. .contains('Managed')
  75. .should('not.exist')
  76. })
  77. })
  78. })