From ae8a1e8137433e951abd18f357f9325a6b5dd926 Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Sat, 29 Nov 2025 21:44:57 +0100 Subject: [PATCH] refactor: Tests to separate location --- tools/server/webui/.storybook/main.ts | 2 +- tools/server/webui/playwright.config.ts | 2 +- .../webui/src/lib/utils/model-names.test.ts | 15 +++++++++++---- .../webui/src/routes/page.svelte.test.ts | 11 ----------- .../tests/client/components/TestWrapper.svelte | 17 +++++++++++++++++ .../webui/tests/client/page.svelte.test.ts | 11 +++++++++++ .../server/webui/{ => tests}/e2e/demo.test.ts | 0 .../stories/ChatForm.stories.svelte | 0 .../stories/ChatMessage.stories.svelte | 0 .../stories/ChatSettings.stories.svelte | 0 .../stories/ChatSidebar.stories.svelte | 0 .../{src => tests}/stories/Introduction.mdx | 0 .../stories/MarkdownContent.stories.svelte | 0 .../stories/fixtures/ai-tutorial.ts | 0 .../stories/fixtures/api-docs.ts | 0 .../stories/fixtures/assets/1.jpg | Bin .../assets/beautiful-flowers-lotus.webp | Bin .../stories/fixtures/assets/example.pdf | Bin .../stories/fixtures/assets/hf-logo.svg | 0 .../stories/fixtures/blog-post.ts | 0 .../stories/fixtures/data-analysis.ts | 0 .../{src => tests}/stories/fixtures/empty.ts | 0 .../stories/fixtures/math-formulas.ts | 0 .../{src => tests}/stories/fixtures/readme.ts | 0 .../stories/fixtures/storybook-mocks.ts | 0 tools/server/webui/vite.config.ts | 8 +++----- 26 files changed, 44 insertions(+), 22 deletions(-) delete mode 100644 tools/server/webui/src/routes/page.svelte.test.ts create mode 100644 tools/server/webui/tests/client/components/TestWrapper.svelte create mode 100644 tools/server/webui/tests/client/page.svelte.test.ts rename tools/server/webui/{ => tests}/e2e/demo.test.ts (100%) rename tools/server/webui/{src => tests}/stories/ChatForm.stories.svelte (100%) rename tools/server/webui/{src => tests}/stories/ChatMessage.stories.svelte (100%) rename tools/server/webui/{src => tests}/stories/ChatSettings.stories.svelte (100%) rename tools/server/webui/{src => tests}/stories/ChatSidebar.stories.svelte (100%) rename tools/server/webui/{src => tests}/stories/Introduction.mdx (100%) rename tools/server/webui/{src => tests}/stories/MarkdownContent.stories.svelte (100%) rename tools/server/webui/{src => tests}/stories/fixtures/ai-tutorial.ts (100%) rename tools/server/webui/{src => tests}/stories/fixtures/api-docs.ts (100%) rename tools/server/webui/{src => tests}/stories/fixtures/assets/1.jpg (100%) rename tools/server/webui/{src => tests}/stories/fixtures/assets/beautiful-flowers-lotus.webp (100%) rename tools/server/webui/{src => tests}/stories/fixtures/assets/example.pdf (100%) rename tools/server/webui/{src => tests}/stories/fixtures/assets/hf-logo.svg (100%) rename tools/server/webui/{src => tests}/stories/fixtures/blog-post.ts (100%) rename tools/server/webui/{src => tests}/stories/fixtures/data-analysis.ts (100%) rename tools/server/webui/{src => tests}/stories/fixtures/empty.ts (100%) rename tools/server/webui/{src => tests}/stories/fixtures/math-formulas.ts (100%) rename tools/server/webui/{src => tests}/stories/fixtures/readme.ts (100%) rename tools/server/webui/{src => tests}/stories/fixtures/storybook-mocks.ts (100%) diff --git a/tools/server/webui/.storybook/main.ts b/tools/server/webui/.storybook/main.ts index 7145bcb7eb..bfd16fa224 100644 --- a/tools/server/webui/.storybook/main.ts +++ b/tools/server/webui/.storybook/main.ts @@ -1,7 +1,7 @@ import type { StorybookConfig } from '@storybook/sveltekit'; const config: StorybookConfig = { - stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|ts|svelte)'], + stories: ['../tests/stories/**/*.mdx', '../tests/stories/**/*.stories.@(js|ts|svelte)'], addons: [ '@storybook/addon-svelte-csf', '@chromatic-com/storybook', diff --git a/tools/server/webui/playwright.config.ts b/tools/server/webui/playwright.config.ts index 51688b3941..26d3be535d 100644 --- a/tools/server/webui/playwright.config.ts +++ b/tools/server/webui/playwright.config.ts @@ -7,5 +7,5 @@ export default defineConfig({ timeout: 120000, reuseExistingServer: false }, - testDir: 'e2e' + testDir: 'tests/e2e' }); diff --git a/tools/server/webui/src/lib/utils/model-names.test.ts b/tools/server/webui/src/lib/utils/model-names.test.ts index e19e92f777..ca85df3d30 100644 --- a/tools/server/webui/src/lib/utils/model-names.test.ts +++ b/tools/server/webui/src/lib/utils/model-names.test.ts @@ -2,12 +2,19 @@ import { describe, expect, it } from 'vitest'; import { isValidModelName, normalizeModelName } from './model-names'; describe('normalizeModelName', () => { - it('extracts filename from forward slash path', () => { - expect(normalizeModelName('models/model-name-1')).toBe('model-name-1'); - expect(normalizeModelName('path/to/model/model-name-2')).toBe('model-name-2'); + it('preserves Hugging Face org/model format (single slash)', () => { + // Single slash is treated as Hugging Face format and preserved + expect(normalizeModelName('meta-llama/Llama-3.1-8B')).toBe('meta-llama/Llama-3.1-8B'); + expect(normalizeModelName('models/model-name-1')).toBe('models/model-name-1'); }); - it('extracts filename from backslash path', () => { + it('extracts filename from multi-segment paths', () => { + // Multiple slashes -> extract just the filename + expect(normalizeModelName('path/to/model/model-name-2')).toBe('model-name-2'); + expect(normalizeModelName('/absolute/path/to/model')).toBe('model'); + }); + + it('extracts filename from backslash paths', () => { expect(normalizeModelName('C\\Models\\model-name-1')).toBe('model-name-1'); expect(normalizeModelName('path\\to\\model\\model-name-2')).toBe('model-name-2'); }); diff --git a/tools/server/webui/src/routes/page.svelte.test.ts b/tools/server/webui/src/routes/page.svelte.test.ts deleted file mode 100644 index d8db7cda1e..0000000000 --- a/tools/server/webui/src/routes/page.svelte.test.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { describe, it } from 'vitest'; -import { render } from 'vitest-browser-svelte'; -import Page from './+page.svelte'; - -describe('/+page.svelte', () => { - it('should render page', async () => { - render(Page); - - // todo - add tests - }); -}); diff --git a/tools/server/webui/tests/client/components/TestWrapper.svelte b/tools/server/webui/tests/client/components/TestWrapper.svelte new file mode 100644 index 0000000000..4bbb8e8603 --- /dev/null +++ b/tools/server/webui/tests/client/components/TestWrapper.svelte @@ -0,0 +1,17 @@ + + + + + + + + diff --git a/tools/server/webui/tests/client/page.svelte.test.ts b/tools/server/webui/tests/client/page.svelte.test.ts new file mode 100644 index 0000000000..6849beb27b --- /dev/null +++ b/tools/server/webui/tests/client/page.svelte.test.ts @@ -0,0 +1,11 @@ +import { describe, it, expect } from 'vitest'; +import { render } from 'vitest-browser-svelte'; +import TestWrapper from './components/TestWrapper.svelte'; + +describe('/+page.svelte', () => { + it('should render page without throwing', async () => { + // Basic smoke test - page should render without throwing errors + // API calls will fail in test environment but component should still mount + expect(() => render(TestWrapper)).not.toThrow(); + }); +}); diff --git a/tools/server/webui/e2e/demo.test.ts b/tools/server/webui/tests/e2e/demo.test.ts similarity index 100% rename from tools/server/webui/e2e/demo.test.ts rename to tools/server/webui/tests/e2e/demo.test.ts diff --git a/tools/server/webui/src/stories/ChatForm.stories.svelte b/tools/server/webui/tests/stories/ChatForm.stories.svelte similarity index 100% rename from tools/server/webui/src/stories/ChatForm.stories.svelte rename to tools/server/webui/tests/stories/ChatForm.stories.svelte diff --git a/tools/server/webui/src/stories/ChatMessage.stories.svelte b/tools/server/webui/tests/stories/ChatMessage.stories.svelte similarity index 100% rename from tools/server/webui/src/stories/ChatMessage.stories.svelte rename to tools/server/webui/tests/stories/ChatMessage.stories.svelte diff --git a/tools/server/webui/src/stories/ChatSettings.stories.svelte b/tools/server/webui/tests/stories/ChatSettings.stories.svelte similarity index 100% rename from tools/server/webui/src/stories/ChatSettings.stories.svelte rename to tools/server/webui/tests/stories/ChatSettings.stories.svelte diff --git a/tools/server/webui/src/stories/ChatSidebar.stories.svelte b/tools/server/webui/tests/stories/ChatSidebar.stories.svelte similarity index 100% rename from tools/server/webui/src/stories/ChatSidebar.stories.svelte rename to tools/server/webui/tests/stories/ChatSidebar.stories.svelte diff --git a/tools/server/webui/src/stories/Introduction.mdx b/tools/server/webui/tests/stories/Introduction.mdx similarity index 100% rename from tools/server/webui/src/stories/Introduction.mdx rename to tools/server/webui/tests/stories/Introduction.mdx diff --git a/tools/server/webui/src/stories/MarkdownContent.stories.svelte b/tools/server/webui/tests/stories/MarkdownContent.stories.svelte similarity index 100% rename from tools/server/webui/src/stories/MarkdownContent.stories.svelte rename to tools/server/webui/tests/stories/MarkdownContent.stories.svelte diff --git a/tools/server/webui/src/stories/fixtures/ai-tutorial.ts b/tools/server/webui/tests/stories/fixtures/ai-tutorial.ts similarity index 100% rename from tools/server/webui/src/stories/fixtures/ai-tutorial.ts rename to tools/server/webui/tests/stories/fixtures/ai-tutorial.ts diff --git a/tools/server/webui/src/stories/fixtures/api-docs.ts b/tools/server/webui/tests/stories/fixtures/api-docs.ts similarity index 100% rename from tools/server/webui/src/stories/fixtures/api-docs.ts rename to tools/server/webui/tests/stories/fixtures/api-docs.ts diff --git a/tools/server/webui/src/stories/fixtures/assets/1.jpg b/tools/server/webui/tests/stories/fixtures/assets/1.jpg similarity index 100% rename from tools/server/webui/src/stories/fixtures/assets/1.jpg rename to tools/server/webui/tests/stories/fixtures/assets/1.jpg diff --git a/tools/server/webui/src/stories/fixtures/assets/beautiful-flowers-lotus.webp b/tools/server/webui/tests/stories/fixtures/assets/beautiful-flowers-lotus.webp similarity index 100% rename from tools/server/webui/src/stories/fixtures/assets/beautiful-flowers-lotus.webp rename to tools/server/webui/tests/stories/fixtures/assets/beautiful-flowers-lotus.webp diff --git a/tools/server/webui/src/stories/fixtures/assets/example.pdf b/tools/server/webui/tests/stories/fixtures/assets/example.pdf similarity index 100% rename from tools/server/webui/src/stories/fixtures/assets/example.pdf rename to tools/server/webui/tests/stories/fixtures/assets/example.pdf diff --git a/tools/server/webui/src/stories/fixtures/assets/hf-logo.svg b/tools/server/webui/tests/stories/fixtures/assets/hf-logo.svg similarity index 100% rename from tools/server/webui/src/stories/fixtures/assets/hf-logo.svg rename to tools/server/webui/tests/stories/fixtures/assets/hf-logo.svg diff --git a/tools/server/webui/src/stories/fixtures/blog-post.ts b/tools/server/webui/tests/stories/fixtures/blog-post.ts similarity index 100% rename from tools/server/webui/src/stories/fixtures/blog-post.ts rename to tools/server/webui/tests/stories/fixtures/blog-post.ts diff --git a/tools/server/webui/src/stories/fixtures/data-analysis.ts b/tools/server/webui/tests/stories/fixtures/data-analysis.ts similarity index 100% rename from tools/server/webui/src/stories/fixtures/data-analysis.ts rename to tools/server/webui/tests/stories/fixtures/data-analysis.ts diff --git a/tools/server/webui/src/stories/fixtures/empty.ts b/tools/server/webui/tests/stories/fixtures/empty.ts similarity index 100% rename from tools/server/webui/src/stories/fixtures/empty.ts rename to tools/server/webui/tests/stories/fixtures/empty.ts diff --git a/tools/server/webui/src/stories/fixtures/math-formulas.ts b/tools/server/webui/tests/stories/fixtures/math-formulas.ts similarity index 100% rename from tools/server/webui/src/stories/fixtures/math-formulas.ts rename to tools/server/webui/tests/stories/fixtures/math-formulas.ts diff --git a/tools/server/webui/src/stories/fixtures/readme.ts b/tools/server/webui/tests/stories/fixtures/readme.ts similarity index 100% rename from tools/server/webui/src/stories/fixtures/readme.ts rename to tools/server/webui/tests/stories/fixtures/readme.ts diff --git a/tools/server/webui/src/stories/fixtures/storybook-mocks.ts b/tools/server/webui/tests/stories/fixtures/storybook-mocks.ts similarity index 100% rename from tools/server/webui/src/stories/fixtures/storybook-mocks.ts rename to tools/server/webui/tests/stories/fixtures/storybook-mocks.ts diff --git a/tools/server/webui/vite.config.ts b/tools/server/webui/vite.config.ts index f2df5dc287..efb33965e7 100644 --- a/tools/server/webui/vite.config.ts +++ b/tools/server/webui/vite.config.ts @@ -118,8 +118,7 @@ export default defineConfig({ provider: 'playwright', instances: [{ browser: 'chromium' }] }, - include: ['src/**/*.svelte.{test,spec}.{js,ts}'], - exclude: ['src/lib/server/**'], + include: ['tests/client/**/*.svelte.{test,spec}.{js,ts}'], setupFiles: ['./vitest-setup-client.ts'] } }, @@ -128,8 +127,7 @@ export default defineConfig({ test: { name: 'server', environment: 'node', - include: ['src/**/*.{test,spec}.{js,ts}'], - exclude: ['src/**/*.svelte.{test,spec}.{js,ts}'] + include: ['tests/server/**/*.{test,spec}.{js,ts}'] } }, { @@ -142,7 +140,7 @@ export default defineConfig({ provider: 'playwright', instances: [{ browser: 'chromium', headless: true }] }, - include: ['src/**/*.stories.{js,ts,svelte}'], + include: ['tests/stories/**/*.stories.{js,ts,svelte}'], setupFiles: ['./.storybook/vitest.setup.ts'] }, plugins: [