feat(footer): implement responsive 3D isometric SVG footer scene with theme tokens
This commit is contained in:
@@ -2,14 +2,22 @@ import assert from 'node:assert/strict';
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import test from 'node:test';
|
||||
|
||||
test('the Three.js footer scene preserves the real contact destinations', async () => {
|
||||
const contacts = await readFile('src/components/footerContacts.ts', 'utf8');
|
||||
const scene = await readFile('src/components/scenes/FooterScene.tsx', 'utf8');
|
||||
test('the isometric footer preserves the real contact destinations and email', async () => {
|
||||
const footer = await readFile('src/components/IsometricFooter/IsometricFooter.tsx', 'utf8');
|
||||
|
||||
assert.match(contacts, /tel:\+989388263077/);
|
||||
assert.match(contacts, /linkedin\.com\/in\/amiirkhl/);
|
||||
assert.match(contacts, /https:\/\/git\.amiirkhl\.ir/);
|
||||
assert.match(contacts, /https:\/\/t\.me\/amiirkhl/);
|
||||
assert.match(scene, /Raycaster/);
|
||||
assert.match(scene, /FooterContactId/);
|
||||
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');
|
||||
const loader = await readFile('src/components/SiteLoader.tsx', 'utf8');
|
||||
|
||||
assert.match(footerSection, /<IsometricFooter\s*\/>/);
|
||||
assert.doesNotMatch(footerSection, /next\/image/);
|
||||
assert.doesNotMatch(footerSection, /footer-background.*\.png/);
|
||||
assert.doesNotMatch(loader, /footer-background.*\.png/);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user