Files
Filamenteka/__tests__/ui-features.test.ts
DaX 12e91d4c3e Remove refresh icon and fix Safari/WebKit runtime errors
- Removed manual refresh button from frontend (kept auto-refresh functionality)
- Fixed WebKit 'object cannot be found' error by replacing absolute positioning with flexbox
- Added lazy loading to images to prevent preload warnings
- Cleaned up unused imports and variables:
  - Removed unused useRef import
  - Removed unused colors state variable and colorService
  - Removed unused ColorSwatch import from FilamentTableV2
  - Removed unused getModifierIcon function from MaterialBadge
- Updated tests to match current implementation
- Improved layout stability for better cross-browser compatibility
- Removed temporary migration scripts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-30 22:37:30 +02:00

76 lines
3.2 KiB
TypeScript

import { readFileSync } from 'fs';
import { join } from 'path';
describe('UI Features Tests', () => {
it('should have color hex input in admin form', () => {
const adminDashboardPath = join(process.cwd(), 'app', 'upadaj', 'dashboard', 'page.tsx');
const adminContent = readFileSync(adminDashboardPath, 'utf-8');
// Check for color input
expect(adminContent).toContain('type="color"');
expect(adminContent).toContain('boja_hex');
expect(adminContent).toContain('Hex kod boje');
});
it('should display color hex in frontend table', () => {
const filamentTablePath = join(process.cwd(), 'src', 'components', 'FilamentTableV2.tsx');
const tableContent = readFileSync(filamentTablePath, 'utf-8');
// Check for color display
expect(tableContent).toContain('backgroundColor: filament.boja_hex');
expect(tableContent).toContain('boja_hex');
});
it('should have number inputs for quantity fields', () => {
const adminDashboardPath = join(process.cwd(), 'app', 'upadaj', 'dashboard', 'page.tsx');
const adminContent = readFileSync(adminDashboardPath, 'utf-8');
// Check for number inputs for quantities
expect(adminContent).toMatch(/type="number"[\s\S]*?name="refill"/);
expect(adminContent).toMatch(/type="number"[\s\S]*?name="spulna"/);
expect(adminContent).toContain('Refill');
expect(adminContent).toContain('Spulna');
expect(adminContent).toContain('Ukupna količina');
});
it('should have number input for quantity', () => {
const adminDashboardPath = join(process.cwd(), 'app', 'upadaj', 'dashboard', 'page.tsx');
const adminContent = readFileSync(adminDashboardPath, 'utf-8');
// Check for number input
expect(adminContent).toMatch(/type="number"[\s\S]*?name="kolicina"/);
expect(adminContent).toContain('min="0"');
expect(adminContent).toContain('step="1"');
});
it('should have predefined material options', () => {
const adminDashboardPath = join(process.cwd(), 'app', 'upadaj', 'dashboard', 'page.tsx');
const adminContent = readFileSync(adminDashboardPath, 'utf-8');
// Check for material select dropdown
expect(adminContent).toContain('<option value="PLA">PLA</option>');
expect(adminContent).toContain('<option value="PETG">PETG</option>');
expect(adminContent).toContain('<option value="ABS">ABS</option>');
});
it('should have admin header with navigation', () => {
const adminDashboardPath = join(process.cwd(), 'app', 'upadaj', 'dashboard', 'page.tsx');
const dashboardContent = readFileSync(adminDashboardPath, 'utf-8');
// Check for admin header
expect(dashboardContent).toContain('Admin');
expect(dashboardContent).toContain('Nazad na sajt');
expect(dashboardContent).toContain('Odjava');
});
it('should have Safari-specific select styling', () => {
const selectCssPath = join(process.cwd(), 'src', 'styles', 'select.css');
const selectContent = readFileSync(selectCssPath, 'utf-8');
// Check for Safari fixes
expect(selectContent).toContain('-webkit-appearance: none !important');
expect(selectContent).toContain('@supports (-webkit-appearance: none)');
expect(selectContent).toContain('-webkit-min-device-pixel-ratio');
});
});