Return

All tests / src/components/Dock/Icon index.tsx

100% Statements 5/5
100% Branches 0/0
100% Functions 1/1
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 354x 4x                                 4x                             21x  
import React from 'react';
import Image from 'next/image';
 
type Props = {
    src: string;
    alt: string;
    testId?: string;
};
 
/**
 * @description: Icon component
 * @param {string} src - Image source
 * @param {string} alt - Image alt text
 * @param {string} testId - Test id for testing
 * @returns {JSX.Element}
 * @example
 * <Icon src="/images/nextjs.svg" alt="NextJS" testId="nextjs-icon" />
 */
const Icon = ({ src, alt, testId }: Props) => {
    return (
        <>
            {/*
             * SDD-L03: `priority` removed. It emits a high-priority `<link rel="preload">`, and with
             * five Dock icons that meant five preloads competing against the LCP image — which had
             * none. The Dock is `position: fixed; bottom: 1px`, so it is always inside the initial
             * viewport and these load immediately regardless; at ~2-4 KB delivered per 60px icon there
             * is nothing to gain from outranking the background.
             */}
            <Image data-testid={testId} src={src} alt={alt} width={60} height={60} />
        </>
    );
};
 
export default Icon;