Files
my-protfolio/tests/footer-scene.test.mjs
Amirhossein Khalili f34bea05cd
Some checks failed
Test and deploy / Verify production build (push) Has been cancelled
Test and deploy / Deploy production (push) Has been cancelled
perf: optimize portfolio runtime delivery
Replace the blocking asset loader with progressive rendering, defer expensive media and Three.js work, and reduce hydration and animation costs. Move deployment from a static Nginx export to the standalone Next.js runtime with optimized dynamic images.
2026-09-09 12:43:37 +03:30

35 lines
1.5 KiB
JavaScript

import assert from 'node:assert/strict';
import { readFile } from 'node:fs/promises';
import test from 'node:test';
test('the isometric footer preserves the real contact destinations and email', async () => {
const footer = await readFile('src/components/IsometricFooter/IsometricFooter.tsx', 'utf8');
assert.match(footer, /tel:09388263077/);
assert.match(footer, /linkedin\.com\/in\/amiirkhl/);
assert.match(footer, /https:\/\/git\.amiirkhl\.ir/);
assert.match(footer, /https:\/\/t\.me\/amiirkhl/);
assert.match(footer, /mailto:amirhosseinkhalili901@gmail\.com/);
});
test('the footer renders the IsometricFooter scene instead of preloading PNG artwork', async () => {
const footerSection = await readFile('src/components/FooterSection.tsx', 'utf8');
assert.match(footerSection, /<IsometricFooter locale=\{locale\}\s*\/>/);
assert.doesNotMatch(footerSection, /next\/image/);
assert.doesNotMatch(footerSection, /footer-background.*\.png/);
});
test('the footer and large SVG stay server-rendered with delegated interaction', async () => {
const [footer, scene, interaction] = await Promise.all([
readFile('src/components/IsometricFooter/IsometricFooter.tsx', 'utf8'),
readFile('src/components/IsometricFooter/IsometricScene.tsx', 'utf8'),
readFile('src/components/IsometricFooter/FooterInteraction.tsx', 'utf8'),
]);
assert.doesNotMatch(footer, /^['"]use client['"]/);
assert.doesNotMatch(scene, /^['"]use client['"]/);
assert.match(interaction, /^['"]use client['"]/);
assert.match(footer, /data-contact-id=/);
});