diff --git a/web/packages/teleport/src/Users/Users.story.tsx b/web/packages/teleport/src/Users/Users.story.tsx
index 555f0e1fb1006..9488c39ad3a85 100644
--- a/web/packages/teleport/src/Users/Users.story.tsx
+++ b/web/packages/teleport/src/Users/Users.story.tsx
@@ -101,11 +101,13 @@ const sample = {
user: null,
} as any,
inviteCollaboratorsOpen: false,
+ emailPasswordResetOpen: false,
onStartCreate: () => null,
onStartDelete: () => null,
onStartEdit: () => null,
onStartReset: () => null,
onStartInviteCollaborators: () => null,
+ onStartEmailResetPassword: () => null,
onClose: () => null,
onCreate: () => null,
onDelete: () => null,
@@ -113,4 +115,6 @@ const sample = {
onReset: () => null,
onInviteCollaboratorsClose: () => null,
InviteCollaborators: null,
+ onEmailPasswordResetClose: () => null,
+ EmailPasswordReset: null,
};
diff --git a/web/packages/teleport/src/Users/Users.test.tsx b/web/packages/teleport/src/Users/Users.test.tsx
index 8e88a81f3639d..c771766e2aad8 100644
--- a/web/packages/teleport/src/Users/Users.test.tsx
+++ b/web/packages/teleport/src/Users/Users.test.tsx
@@ -53,6 +53,8 @@ describe('invite collaborators integration', () => {
onInviteCollaboratorsClose: () => undefined,
InviteCollaborators: null,
inviteCollaboratorsOpen: false,
+ onEmailPasswordResetClose: () => undefined,
+ EmailPasswordReset: null,
};
});
@@ -100,3 +102,78 @@ describe('invite collaborators integration', () => {
expect(screen.getByTestId('invite-collaborators')).toBeInTheDocument();
});
});
+
+describe('email password reset integration', () => {
+ const ctx = createTeleportContext();
+
+ let props: State;
+ beforeEach(() => {
+ props = {
+ attempt: {
+ message: 'success',
+ isSuccess: true,
+ isProcessing: false,
+ isFailed: false,
+ },
+ users: [],
+ roles: [],
+ operation: {
+ type: 'reset',
+ user: { name: 'alice@example.com', roles: ['foo'] },
+ },
+
+ onStartCreate: () => undefined,
+ onStartDelete: () => undefined,
+ onStartEdit: () => undefined,
+ onStartReset: () => undefined,
+ onStartInviteCollaborators: () => undefined,
+ onClose: () => undefined,
+ onDelete: () => undefined,
+ onCreate: () => undefined,
+ onUpdate: () => undefined,
+ onReset: () => undefined,
+ onInviteCollaboratorsClose: () => undefined,
+ InviteCollaborators: null,
+ inviteCollaboratorsOpen: false,
+ onEmailPasswordResetClose: () => undefined,
+ EmailPasswordReset: null,
+ };
+ });
+
+ test('displays the traditional reset UI when not configured', async () => {
+ render(
+