Skip to content

Commit 66d8f37

Browse files
authored
fix: shimmer is applied to only those data that are loaded later (#916)
1 parent de2e4aa commit 66d8f37

File tree

2 files changed

+36
-187
lines changed

2 files changed

+36
-187
lines changed

__tests__/extension-requests/extension-requests.test.js

Lines changed: 0 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -667,79 +667,6 @@ describe('Tests the Extension Requests Screen', () => {
667667
expect(hasSkeletonClassAfter).toBe(false);
668668
});
669669

670-
it('checks whether the shimmer effect is working for deadlineValue element under feature flag', async () => {
671-
await page.goto(`${baseUrl}/?dev=true`);
672-
const deadlineValueSelector = await page.$$(
673-
'[data-testid="skeleton-span"]',
674-
);
675-
expect(deadlineValueSelector).toBeTruthy();
676-
await page.waitForTimeout(5000);
677-
const hasSkeletonClassAfter = await page.$eval('.tooltip-container', (el) =>
678-
el.classList.contains('skeleton-span'),
679-
);
680-
expect(hasSkeletonClassAfter).toBe(false);
681-
});
682-
683-
it('checks whether the shimmer effect is working for requestedValue element under feature flag', async () => {
684-
await page.goto(`${baseUrl}/?dev=true`);
685-
const requestedValueSelector = await page.$$(
686-
'[data-testid="skeleton-text"]',
687-
);
688-
expect(requestedValueSelector).toBeTruthy();
689-
await page.waitForTimeout(5000);
690-
const hasSkeletonClassAfter = await page.$eval('.requested-day', (el) =>
691-
el.classList.contains('skeleton-text'),
692-
);
693-
expect(hasSkeletonClassAfter).toBe(false);
694-
});
695-
it('checks whether the shimmer effect is working for newDeadlineValue element under feature flag', async () => {
696-
await page.goto(`${baseUrl}/?dev=true`);
697-
const newDeadlineValueSelector = await page.$$(
698-
'[data-testid="skeleton-span"]',
699-
);
700-
expect(newDeadlineValueSelector).toBeTruthy();
701-
await page.waitForTimeout(5000);
702-
const hasSkeletonClassAfter = await page.$eval('.requested-day', (el) =>
703-
el.classList.contains('skeleton-span'),
704-
);
705-
expect(hasSkeletonClassAfter).toBe(false);
706-
});
707-
708-
it('checks whether the shimmer effect is working for extensionRequestNumberValue element under feature flag', async () => {
709-
await page.goto(`${baseUrl}/?dev=true`);
710-
const extensionRequestNumberValueSelector = await page.$$(
711-
'[data-testid="skeleton-span"]',
712-
);
713-
expect(extensionRequestNumberValueSelector).toBeTruthy();
714-
await page.waitForTimeout(5000);
715-
const hasSkeletonClassAfter = await page.$eval(
716-
'.extension-request-number',
717-
(el) => el.classList.contains('skeleton-span'),
718-
);
719-
expect(hasSkeletonClassAfter).toBe(false);
720-
});
721-
722-
it('checks whether the shimmer effect is visible under dev flag only for the statusSiteLink element', async () => {
723-
await page.goto(`${baseUrl}/?dev=true`);
724-
const statusSiteLinkSelector = await page.$$(
725-
'[data-testid="external-link skeleton-link"]',
726-
);
727-
expect(statusSiteLinkSelector).toBeTruthy();
728-
await page.waitForTimeout(5000);
729-
const hasSkeletonClassAfter = await page.$eval('.external-link', (el) =>
730-
el.classList.contains('skeleton-link'),
731-
);
732-
expect(hasSkeletonClassAfter).toBe(false);
733-
});
734-
735-
it('checks whether the shimmer effect is visible under dev flag only for the taskStatusValue element', async () => {
736-
await page.goto(`${baseUrl}/?dev=true`);
737-
const taskStatusValueElement = await page.$$(
738-
'[data-testid="skeleton-span"]',
739-
);
740-
expect(taskStatusValueElement).toBeTruthy();
741-
});
742-
743670
it('Checks whether the card is not removed from display when api call is unsuccessful', async () => {
744671
const extensionCards = await page.$$('.extension-card');
745672

extension-requests/script.js

Lines changed: 36 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -623,26 +623,16 @@ async function createExtensionCard(data, dev) {
623623
});
624624
deadlineContainer.appendChild(deadlineText);
625625

626-
let deadlineValue;
627-
if (dev) {
628-
deadlineValue = createElement({
629-
type: 'span',
630-
attributes: {
631-
class: 'skeleton-span',
632-
'data-testid': 'skeleton-span',
633-
},
634-
});
635-
} else {
636-
deadlineValue = createElement({
637-
type: 'span',
638-
innerText: `${deadlineDays}`,
639-
attributes: {
640-
class: `tooltip-container ${
641-
isDeadLineCrossed && isStatusPending ? 'red-text' : ''
642-
}`,
643-
},
644-
});
645-
}
626+
const deadlineValue = createElement({
627+
type: 'span',
628+
innerText: `${deadlineDays}`,
629+
attributes: {
630+
class: `tooltip-container ${
631+
isDeadLineCrossed && isStatusPending ? 'red-text' : ''
632+
}`,
633+
},
634+
});
635+
646636
deadlineContainer.appendChild(deadlineValue);
647637
const deadlineTooltip = createElement({
648638
type: 'span',
@@ -662,24 +652,14 @@ async function createExtensionCard(data, dev) {
662652
});
663653
requestedContainer.appendChild(requestedText);
664654

665-
let requestedValue;
666-
if (dev) {
667-
requestedValue = createElement({
668-
type: 'span',
669-
attributes: {
670-
class: 'skeleton-text',
671-
'data-testid': 'skeleton-text',
672-
},
673-
});
674-
} else {
675-
requestedValue = createElement({
676-
type: 'span',
677-
attributes: {
678-
class: `requested-day tooltip-container ${requestedDaysTextColor}`,
679-
},
680-
innerText: `${requestedDaysAgo}`,
681-
});
682-
}
655+
const requestedValue = createElement({
656+
type: 'span',
657+
attributes: {
658+
class: `requested-day tooltip-container ${requestedDaysTextColor}`,
659+
},
660+
innerText: ` ${requestedDaysAgo}`,
661+
});
662+
683663
const requestedToolTip = createElement({
684664
type: 'span',
685665
attributes: { class: 'tooltip' },
@@ -744,19 +724,12 @@ async function createExtensionCard(data, dev) {
744724
});
745725
newDeadlineContainer.appendChild(newDeadlineText);
746726

747-
let newDeadlineValue;
748-
if (dev) {
749-
newDeadlineValue = createElement({
750-
type: 'span',
751-
attributes: { class: 'skeleton-span', 'data-testid': 'skeleton-span' },
752-
});
753-
} else {
754-
newDeadlineValue = createElement({
755-
type: 'span',
756-
attributes: { class: 'requested-day tooltip-container' },
757-
innerText: ` ${newDeadlineDays}`,
758-
});
759-
}
727+
const newDeadlineValue = createElement({
728+
type: 'span',
729+
attributes: { class: 'requested-day tooltip-container' },
730+
innerText: ` ${newDeadlineDays}`,
731+
});
732+
760733
const newDeadlineToolTip = createElement({
761734
type: 'span',
762735
attributes: { class: 'tooltip' },
@@ -776,19 +749,12 @@ async function createExtensionCard(data, dev) {
776749
});
777750
extensionForContainer.appendChild(extensionForText);
778751

779-
let extensionForValue;
780-
if (dev) {
781-
extensionForValue = createElement({
782-
type: 'span',
783-
attributes: { class: 'skeleton-span' },
784-
});
785-
} else {
786-
extensionForValue = createElement({
787-
type: 'span',
788-
attributes: { class: 'tooltip-container' },
789-
innerText: ` +${extensionDays}`,
790-
});
791-
}
752+
const extensionForValue = createElement({
753+
type: 'span',
754+
attributes: { class: 'tooltip-container' },
755+
innerText: ` +${extensionDays}`,
756+
});
757+
792758
const extensionToolTip = createElement({
793759
type: 'span',
794760
attributes: { class: 'tooltip' },
@@ -821,19 +787,12 @@ async function createExtensionCard(data, dev) {
821787

822788
const requestNumber = data.requestNumber || 1;
823789

824-
let extensionRequestNumberValue;
825-
if (dev) {
826-
extensionRequestNumberValue = createElement({
827-
type: 'span',
828-
attributes: { class: 'skeleton-span', 'data-testid': 'skeleton-span' },
829-
});
830-
} else {
831-
extensionRequestNumberValue = createElement({
832-
type: 'span',
833-
attributes: { class: 'extension-request-number' },
834-
innerText: `#${requestNumber}`,
835-
});
836-
}
790+
const extensionRequestNumberValue = createElement({
791+
type: 'span',
792+
attributes: { class: 'extension-request-number' },
793+
innerText: `#${requestNumber}`,
794+
});
795+
837796
extensionRequestNumberContainer.appendChild(extensionRequestNumberValue);
838797
const cardAssigneeButtonContainer = createElement({
839798
type: 'div',
@@ -1330,44 +1289,7 @@ async function createExtensionCard(data, dev) {
13301289
CommitedHoursContent.innerText = 'Missing';
13311290
CommitedHoursContent.classList.add('label-content-missing');
13321291
}
1333-
if (dev) {
1334-
deadlineValue.classList.remove('skeleton-span');
1335-
deadlineValue.innerText = `${deadlineDays}`;
1336-
1337-
deadlineValue.classList.add('tooltip-container');
1338-
if (isDeadLineCrossed && isStatusPending) {
1339-
deadlineValue.classList.add('red-text');
1340-
}
1341-
}
1342-
1343-
if (dev) {
1344-
requestedValue.classList.remove('skeleton-text');
1345-
requestedValue.innerText = `${requestedDaysAgo}`;
1346-
1347-
requestedValue.classList.add(
1348-
'requested-day',
1349-
'tooltip-container',
1350-
requestedDaysTextColor,
1351-
);
1352-
}
1353-
1354-
if (dev) {
1355-
newDeadlineValue.classList.remove('skeleton-span');
1356-
newDeadlineValue.innerText = ` ${newDeadlineDays}`;
1357-
newDeadlineValue.classList.add('requested-day', 'tooltip-container');
1358-
}
13591292

1360-
if (dev) {
1361-
extensionForValue.classList.remove('skeleton-span');
1362-
extensionForValue.innerText = ` +${extensionDays}`;
1363-
extensionForValue.classList.add('tooltip-container');
1364-
}
1365-
1366-
if (dev) {
1367-
extensionRequestNumberValue.classList.remove('skeleton-span');
1368-
extensionRequestNumberValue.innerText = `#${requestNumber}`;
1369-
extensionRequestNumberValue.classList.add('extension-request-number');
1370-
}
13711293
if (!dev) {
13721294
removeSpinner();
13731295
renderExtensionCreatedLog();

0 commit comments

Comments
 (0)