import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/app.css',
                'resources/css/nova-grid.css',
                'resources/js/app.js',
                'resources/scss/nova.scss',
                'resources/js/nova.js',
                'resources/js/entry-topbar.jsx',
                'resources/js/entry-search.jsx',
                'resources/js/entry-masonry-gallery.jsx',
                'resources/js/entry-pill-carousel.jsx',
                'resources/js/upload.jsx',
                'resources/js/studio.jsx',
                'resources/js/dashboard/index.jsx',
                'resources/js/Pages/ArtworkPage.jsx',
                'resources/js/Pages/CategoriesPage.jsx',
                'resources/js/Pages/Home/HomePage.jsx',
                'resources/js/Pages/Community/LatestCommentsPage.jsx',
                'resources/js/Pages/Community/CommunityActivityPage.jsx',
                'resources/js/Pages/Messages/Index.jsx',
                'resources/js/profile.jsx',
                'resources/js/feed.jsx',
                'resources/js/leaderboard.jsx',
                'resources/js/settings.jsx',
                'resources/js/entry-forum.jsx',
            ],
            refresh: [
                'resources/views/**',
                'routes/**',
            ],
        }),
    ],

    server: {
        watch: {
            ignored: [
                '**/node_modules/**',
                '**/vendor/**',
                '**/storage/**',
                '**/public/build/**',
                '**/.git/**',
            ],
        },
    },

    optimizeDeps: {
        include: [
            'react',
            'react-dom',
            'react/jsx-runtime',
            'react/jsx-dev-runtime',
            '@inertiajs/react',
            'framer-motion',
        ],
    },

    test: {
        environment: 'jsdom',
        globals: true,
        setupFiles: ['resources/js/test/setupTests.js'],
        include: ['resources/js/**/*.test.{js,jsx}'],
    },
});
