From 33ed85e553c05f7dd6f7c5bc7824848df8864223 Mon Sep 17 00:00:00 2001
From: Alberto Defendi <1369-ahl-berto@users.noreply.gitlab.inf.unibz.it>
Date: Sun, 16 May 2021 17:37:36 +0200
Subject: [PATCH] Chose role prototype.

---
 .../AuthUser/ChoseRole/ChoseRole.test.tsx     | 10 +++++
 .../AuthUser/ChoseRole/ChoseRole.tsx          | 39 +++++++++++++++++++
 2 files changed, 49 insertions(+)
 create mode 100644 src/components/AuthUser/ChoseRole/ChoseRole.test.tsx
 create mode 100644 src/components/AuthUser/ChoseRole/ChoseRole.tsx

diff --git a/src/components/AuthUser/ChoseRole/ChoseRole.test.tsx b/src/components/AuthUser/ChoseRole/ChoseRole.test.tsx
new file mode 100644
index 0000000..0f885e7
--- /dev/null
+++ b/src/components/AuthUser/ChoseRole/ChoseRole.test.tsx
@@ -0,0 +1,10 @@
+import React from 'react';
+import { render } from '@testing-library/react';
+import { ChoseRole } from './ChoseRole';
+
+describe('<ChoseRole />', () => {
+  it('renders without crashing', () => {
+    const wrapper = render(<ChoseRole />);
+    expect(wrapper.queryByTestId('ChoseRole')).toBeTruthy();
+  });
+});
diff --git a/src/components/AuthUser/ChoseRole/ChoseRole.tsx b/src/components/AuthUser/ChoseRole/ChoseRole.tsx
new file mode 100644
index 0000000..a100cbf
--- /dev/null
+++ b/src/components/AuthUser/ChoseRole/ChoseRole.tsx
@@ -0,0 +1,39 @@
+import React, { FC, useContext, useEffect, useState } from 'react';
+import axios from 'axios';
+import Button from '@material-ui/core/Button';
+import { AuthContext } from '../AuthContext';
+
+const choseAndForward = (e: unknown): void => {
+  // Do nothing.
+};
+
+/**
+ * Screen that let's users decide role between available roles.
+ * This is intended to use when a user has more than one role.
+ * @returns ChoseRole component.
+ */
+export const ChoseRole: FC = () => {
+  const [userRoles, setUserRoles] = useState<Array<string>>(['']);
+
+  useEffect(() => {
+    const getUserRoles = async (): Promise<unknown> => {
+      const response = await axios('/api/web/get_role');
+      setUserRoles(response.data.token);
+      return null;
+    };
+    getUserRoles();
+  }, [userRoles]);
+
+  const { role } = useContext(AuthContext);
+  return (
+    <div data-testid="ChoseRole">
+      <Button
+        variant="outlined"
+        color="default"
+        onClick={(e) => choseAndForward(e)}
+      >
+        {role}
+      </Button>
+    </div>
+  );
+};
-- 
GitLab