Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 37 additions & 14 deletions __tests__/task-requests/task-requestDetails.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,9 @@ describe('Task request details page', () => {
);
expect(descriptionTextValue).toBe(longDescription);
});
it('should show "Task Requests not found" When the task ID is invalid and dev mode is enabled', async function () {
it('should show "Task Requests not found" When the task ID is invalid', async function () {
await page.goto(
`${LOCAL_TEST_PAGE_URL}/task-requests/details/?id=dM5wwDdsfd9QsiTzi7eG7Oq5&dev=true`,
`${LOCAL_TEST_PAGE_URL}/task-requests/details/?id=dM5wwDdsfd9QsiTzi7eG7Oq5`,
);

await page.waitForNetworkIdle();
Expand All @@ -174,18 +174,6 @@ describe('Task request details page', () => {
expect(errorText).toBe('Task Requests not found');
});

it('should not show "Task Requests not found" message when dev mode is disabled', async function () {
await page.goto(
`${LOCAL_TEST_PAGE_URL}/task-requests/details/?id=dM5wwDdsfd9QsiTzi7eG7Oq5`,
);

await page.waitForNetworkIdle();

const errorElement = await page.$('[data-testid="error-message"]');

expect(errorElement).toBeNull();
});

it('Should render Approve and Reject buttons for super users', async function () {
await page.goto(
`${LOCAL_TEST_PAGE_URL}/task-requests/details/?id=dM5wwD9QsiTzi7eG7Oq5&dev=true`,
Expand Down Expand Up @@ -446,3 +434,38 @@ describe('Task request details page with status creation', () => {
);
});
});

describe('Task Request details page without login', () => {
let browser;
let page;
jest.setTimeout(60000);

beforeAll(async () => {
browser = await puppeteer.launch({
headless: 'new',
ignoreHTTPSErrors: true,
args: ['--incognito', '--disable-web-security'],
devtools: false,
});
page = await browser.newPage();
});

afterAll(async () => {
await browser.close();
});

it('should show an unauthenticated error message if the user is not logged in', async () => {
await page.goto(
`${LOCAL_TEST_PAGE_URL}/task-requests/details/?id=dM5wwD9QsiTzi7eG7Oq5`,
);
await page.waitForNetworkIdle();

const errorMessage = await page.$eval(
'[data-testid="error-message"]',
(el) => el.textContent,
);
expect(errorMessage).toBe(
'You are unauthenticated to view this section, please login!',
);
});
});
16 changes: 5 additions & 11 deletions task-requests/details/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,17 @@
/>
<link rel="stylesheet" href="/components/toast/style.css" />
<link rel="stylesheet" href="/task-requests/details/style.css" />
<link rel="stylesheet" href="/global.css" />

<title>Task Requests | Real Dev Squad</title>
<script src="/helpers/loadENV.js"></script>
<script src="/task-requests/util.js"></script>
<script src="/task-requests/constants.js"></script>
<script src="/utils.js"></script>
<script src="/components/toast/script.js" defer></script>
<script src="/utils/time/index.js"></script>
<script src="/navbar.global.js" defer></script>
<script src="/userLogin.js" defer></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/dompurify/3.0.11/purify.min.js"
integrity="sha512-ce0fmuEgWrpnIXWKQrSgJ5FsBsr/hnOsxdWvk5lu1GThckasLwc+TAFERLNIwWnWqBoWV4GPDJiz2PSPntinVA=="
Expand All @@ -35,17 +39,7 @@
<script type="module" src="/task-requests/details/script.js" defer></script>
</head>
<body>
<div class="header">
<div class="header__contents">
<img
src="/task-requests/assets/RDSLogo.png"
alt="RDS logo"
height="48"
width="48"
/>
<a href="/" class="header__contents__navlink">Home</a>
</div>
</div>
<nav id="tasksNav"></nav>
<div class="container">
<div id="task-request-details" class="taskRequest">
<div class="taskRequest__skeleton">
Expand Down
32 changes: 20 additions & 12 deletions task-requests/details/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -362,9 +362,7 @@ async function fetchTaskRequest() {
data.approvedTo = approvedTo;
return data;
} else {
if (isDev) {
showErrorMessage(res.status);
}
showErrorMessage(res.status);
}
} catch (e) {
console.log(e);
Expand Down Expand Up @@ -573,16 +571,26 @@ const renderTaskRequest = async () => {

const showErrorMessage = (error) => {
let errorMessageDiv;
const message =
error === 404 ? ErrorMessages.NOT_FOUND : ErrorMessages.SERVER_ERROR;
if (error === 404 || error === 500) {
errorMessageDiv = document.createElement('p');
errorMessageDiv.classList.add('error-message');
errorMessageDiv.setAttribute('data-testid', 'error-message');
errorMessageDiv.textContent = message;
const container = document.querySelector('.container') || document.body;
container.appendChild(errorMessageDiv);
let message = '';
errorMessageDiv = document.createElement('div');
errorMessageDiv.classList.add('error-message');
errorMessageDiv.setAttribute('data-testid', 'error-message');
switch (error) {
case 404:
message = ErrorMessages.NOT_FOUND;
break;
case 401:
message = ErrorMessages.UNAUTHENTICATED;
break;
default:
message = ErrorMessages.SERVER_ERROR;
break;
}
errorMessageDiv.textContent = message;
const container =
document.querySelector('#task-request-details') || document.body;
container.appendChild(errorMessageDiv);

taskRequestSkeleton?.classList.add('hidden');
taskContainer?.classList.add('hidden');
const requestors = document.querySelector('.requestors');
Expand Down
26 changes: 2 additions & 24 deletions task-requests/details/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -36,27 +36,6 @@ body {
margin: 0.5rem 0;
}

.header {
background: #1d1283;
padding: 1rem;
}
.header__contents {
max-width: 1440px;
padding: 0.5rem 1rem;
margin: 0 auto;
color: var(--color-white);
display: flex;
align-items: center;
gap: 0.5rem;
}
.header__contents__navlink {
color: var(--color-white);
text-decoration: none;
}
.header__contents__navlink:hover {
text-decoration: underline;
}

.container {
max-width: 1440px;
margin: 0 auto;
Expand Down Expand Up @@ -574,9 +553,8 @@ p:hover {
.error-message {
display: grid;
place-items: center;
height: 100vh;
width: 100vw;
position: fixed;
height: 100%;
width: 100%;
top: 0;
left: 0;
text-align: center;
Expand Down
Loading