adjusted minheight logic and fixed tests

This commit is contained in:
trueheads
2025-12-21 23:13:59 -06:00
parent 042fc61542
commit fd39f96b4c
3 changed files with 35 additions and 26 deletions

View File

@@ -1,20 +1,25 @@
import { defineConfig } from "vitest/config"; import { defineConfig } from 'vitest/config';
import path from "path"; import path from 'path';
export default defineConfig({ export default defineConfig({
test: { test: {
reporters: ['verbose'], reporters: ['verbose'],
globals: true, globals: true,
environment: "node", environment: 'node',
setupFiles: ["./tests/setup.ts"], setupFiles: ['./tests/setup.ts'],
coverage: { coverage: {
provider: "v8", provider: 'v8',
reporter: ["text", "json", "html", "lcov"], reporter: ['text', 'json', 'html', 'lcov'],
include: ["src/**/*.ts"], include: ['src/**/*.ts'],
exclude: [ exclude: [
"src/**/*.d.ts", 'src/**/*.d.ts',
"src/index.ts", 'src/index.ts',
"src/routes/**", // Routes are better tested with integration tests 'src/routes/**', // Routes are better tested with integration tests
'src/types/**', // Type re-exports don't need coverage
'src/middleware/**', // Middleware needs integration tests
'src/lib/enhancement-prompts.ts', // Prompt templates don't need unit tests
'src/services/claude-usage-service.ts', // TODO: Add tests for usage tracking
'**/libs/**', // Exclude aliased shared packages from server coverage
], ],
thresholds: { thresholds: {
// Increased thresholds to ensure better code quality // Increased thresholds to ensure better code quality
@@ -25,22 +30,28 @@ export default defineConfig({
statements: 60, statements: 60,
}, },
}, },
include: ["tests/**/*.test.ts", "tests/**/*.spec.ts"], include: ['tests/**/*.test.ts', 'tests/**/*.spec.ts'],
exclude: ["**/node_modules/**", "**/dist/**"], exclude: ['**/node_modules/**', '**/dist/**'],
mockReset: true, mockReset: true,
restoreMocks: true, restoreMocks: true,
clearMocks: true, clearMocks: true,
}, },
resolve: { resolve: {
alias: { alias: {
"@": path.resolve(__dirname, "./src"), '@': path.resolve(__dirname, './src'),
// Resolve shared packages to source files for proper mocking in tests // Resolve shared packages to source files for proper mocking in tests
"@automaker/utils": path.resolve(__dirname, "../../libs/utils/src/index.ts"), '@automaker/utils': path.resolve(__dirname, '../../libs/utils/src/index.ts'),
"@automaker/platform": path.resolve(__dirname, "../../libs/platform/src/index.ts"), '@automaker/platform': path.resolve(__dirname, '../../libs/platform/src/index.ts'),
"@automaker/types": path.resolve(__dirname, "../../libs/types/src/index.ts"), '@automaker/types': path.resolve(__dirname, '../../libs/types/src/index.ts'),
"@automaker/model-resolver": path.resolve(__dirname, "../../libs/model-resolver/src/index.ts"), '@automaker/model-resolver': path.resolve(
"@automaker/dependency-resolver": path.resolve(__dirname, "../../libs/dependency-resolver/src/index.ts"), __dirname,
"@automaker/git-utils": path.resolve(__dirname, "../../libs/git-utils/src/index.ts"), '../../libs/model-resolver/src/index.ts'
),
'@automaker/dependency-resolver': path.resolve(
__dirname,
'../../libs/dependency-resolver/src/index.ts'
),
'@automaker/git-utils': path.resolve(__dirname, '../../libs/git-utils/src/index.ts'),
}, },
}, },
}); });

View File

@@ -48,7 +48,7 @@ const BOARD_CONTENT_MIN =
COLUMN_MIN_WIDTH * COLUMN_COUNT + GAP_SIZE * (COLUMN_COUNT - 1) + BOARD_PADDING; COLUMN_MIN_WIDTH * COLUMN_COUNT + GAP_SIZE * (COLUMN_COUNT - 1) + BOARD_PADDING;
const MIN_WIDTH_EXPANDED = BOARD_CONTENT_MIN + SIDEBAR_EXPANDED; // 1500px const MIN_WIDTH_EXPANDED = BOARD_CONTENT_MIN + SIDEBAR_EXPANDED; // 1500px
const MIN_WIDTH_COLLAPSED = BOARD_CONTENT_MIN + SIDEBAR_COLLAPSED; // 1276px const MIN_WIDTH_COLLAPSED = BOARD_CONTENT_MIN + SIDEBAR_COLLAPSED; // 1276px
const MIN_HEIGHT = 850; // Ensures sidebar content fits without scrolling const MIN_HEIGHT = 650; // Ensures sidebar content fits without scrolling
const DEFAULT_WIDTH = 1600; const DEFAULT_WIDTH = 1600;
const DEFAULT_HEIGHT = 950; const DEFAULT_HEIGHT = 950;

View File

@@ -110,9 +110,9 @@ test.describe('Kanban Responsive Scaling Tests', () => {
expect(Math.abs(columnWidth - baseWidth)).toBeLessThan(2); expect(Math.abs(columnWidth - baseWidth)).toBeLessThan(2);
} }
// Column width should be within expected bounds (280px min, 360px max) // Column width should be at least minimum (280px)
// No max-width - columns scale evenly to fill available viewport
expect(baseWidth).toBeGreaterThanOrEqual(280); expect(baseWidth).toBeGreaterThanOrEqual(280);
expect(baseWidth).toBeLessThanOrEqual(360);
// Columns should not overlap (check x positions) // Columns should not overlap (check x positions)
expect(inProgressBox.x).toBeGreaterThan(backlogBox.x + backlogBox.width - 5); expect(inProgressBox.x).toBeGreaterThan(backlogBox.x + backlogBox.width - 5);
@@ -234,12 +234,11 @@ test.describe('Kanban Responsive Scaling Tests', () => {
// There should be no horizontal scroll at minimum width // There should be no horizontal scroll at minimum width
expect(hasHorizontalScroll).toBe(false); expect(hasHorizontalScroll).toBe(false);
// Verify columns are at minimum width (280px) // Verify columns are at least minimum width (280px)
const backlogBox = await backlogColumn.boundingBox(); const backlogBox = await backlogColumn.boundingBox();
expect(backlogBox).not.toBeNull(); expect(backlogBox).not.toBeNull();
if (backlogBox) { if (backlogBox) {
expect(backlogBox.width).toBeGreaterThanOrEqual(280); expect(backlogBox.width).toBeGreaterThanOrEqual(280);
expect(backlogBox.width).toBeLessThanOrEqual(360);
} }
}); });
@@ -276,9 +275,8 @@ test.describe('Kanban Responsive Scaling Tests', () => {
// Allow for small variations due to transitions // Allow for small variations due to transitions
expect(collapsedBox.width).toBeGreaterThanOrEqual(initialBox.width - 5); expect(collapsedBox.width).toBeGreaterThanOrEqual(initialBox.width - 5);
// Width should still be within bounds // Width should still be at least minimum
expect(collapsedBox.width).toBeGreaterThanOrEqual(280); expect(collapsedBox.width).toBeGreaterThanOrEqual(280);
expect(collapsedBox.width).toBeLessThanOrEqual(360);
} }
// Verify no horizontal scrollbar after collapse // Verify no horizontal scrollbar after collapse