Skip to content

Commit b9d5196

Browse files
committed
Refactor tests and configurations for improved structure and clarity
- Update ConsoleApp tests to use new routing structure - Modify DashboardGridLayout to include data-testid for better testing - Adjust test commands in package.json for consistency - Add vitest configuration files for various packages - Create vitest.workspace.yaml for workspace configuration
1 parent e703e37 commit b9d5196

File tree

13 files changed

+49
-10
lines changed

13 files changed

+49
-10
lines changed

apps/console/src/__tests__/ConsoleApp.test.tsx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { describe, it, expect, vi, beforeEach } from 'vitest';
22
import { render, screen, waitFor, fireEvent } from '@testing-library/react';
33
import '@testing-library/jest-dom';
44
import { AppContent } from '../App';
5-
import { MemoryRouter } from 'react-router-dom';
5+
import { MemoryRouter, Routes, Route } from 'react-router-dom';
66

77
// --- Mocks ---
88

@@ -12,11 +12,12 @@ vi.mock('../../objectstack.config', () => ({
1212
apps: [
1313
{
1414
name: 'sales',
15+
1516
label: 'Sales App',
1617
active: true,
1718
icon: 'briefcase',
1819
navigation: [
19-
{ id: 'nav_opp', label: 'Opportunities', type: 'object', object: 'opportunity' }
20+
{ id: 'nav_opp', label: 'Opportunities', type: 'object', objectName: 'opportunity' }
2021
]
2122
},
2223
{
@@ -89,6 +90,7 @@ vi.mock('lucide-react', async () => {
8990
Database: () => <span data-testid="icon-database" />,
9091
LayoutDashboard: () => <span data-testid="icon-dashboard" />,
9192
Briefcase: () => <span data-testid="icon-briefcase" />,
93+
briefcase: () => <span data-testid="icon-briefcase-lower" />,
9294
ChevronRight: () => <span />,
9395
ChevronsUpDown: () => <span />,
9496
Settings: () => <span />,
@@ -114,10 +116,12 @@ describe('Console App Integration', () => {
114116
vi.clearAllMocks();
115117
});
116118

117-
const renderApp = (initialRoute = '/') => {
119+
const renderApp = (initialRoute = '/apps/sales/') => {
118120
return render(
119121
<MemoryRouter initialEntries={[initialRoute]}>
120-
<AppContent />
122+
<Routes>
123+
<Route path="/apps/:appName/*" element={<AppContent />} />
124+
</Routes>
121125
</MemoryRouter>
122126
);
123127
};
@@ -142,7 +146,7 @@ describe('Console App Integration', () => {
142146
});
143147

144148
it('navigates to object view when sidebar item clicked', async () => {
145-
renderApp('/');
149+
renderApp();
146150

147151
await waitFor(() => {
148152
const appLabels = screen.getAllByText('Sales App');

apps/console/vitest.config.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { mergeConfig } from 'vitest/config';
2+
import rootConfig from '../../vitest.config.mts';
3+
import viteConfig from './vite.config';
4+
5+
export default mergeConfig(rootConfig, viteConfig);

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@
2020
"dev:console": "pnpm --filter @object-ui/console dev",
2121
"dev:crm": "pnpm --filter @object-ui/example-crm start",
2222
"build": "turbo run build",
23-
"pretest": "turbo run build --filter=@object-ui/types --filter=@object-ui/core --filter=@object-ui/react --filter=@object-ui/components --filter=@object-ui/fields --filter=@object-ui/layout --filter=@object-ui/plugin-kanban --filter=@object-ui/plugin-charts --filter=@object-ui/plugin-form --filter=@object-ui/plugin-grid --filter=@object-ui/plugin-dashboard",
24-
"test": "turbo run test",
25-
"test:root": "vitest run",
23+
"test": "vitest run",
24+
"test:turbo": "turbo run build && turbo run test",
2625
"site:dev": "pnpm --filter @objectui/site dev",
2726
"site:build": "pnpm --filter @objectui/site build",
2827
"site:start": "pnpm --filter @objectui/site start",
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { mergeConfig } from 'vitest/config';
2+
import rootConfig from '../../vitest.config.mts';
3+
import viteConfig from './vite.config';
4+
5+
export default mergeConfig(rootConfig, viteConfig);

packages/core/vitest.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import rootConfig from '../../vitest.config.mts';
2+
export default rootConfig;

packages/fields/vitest.config.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { mergeConfig } from 'vitest/config';
2+
import rootConfig from '../../vitest.config.mts';
3+
import viteConfig from './vite.config';
4+
5+
export default mergeConfig(rootConfig, viteConfig);

packages/plugin-dashboard/src/DashboardGridLayout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ export const DashboardGridLayout: React.FC<DashboardGridLayoutProps> = ({
122122
}, []);
123123

124124
return (
125-
<div className={cn("w-full", className)}>
125+
<div className={cn("w-full", className)} data-testid="grid-layout">
126126
<div className="mb-4 flex items-center justify-between">
127127
<h2 className="text-2xl font-bold">{schema.title || 'Dashboard'}</h2>
128128
<div className="flex gap-2">

packages/plugin-dashboard/src/__tests__/DashboardGridLayout.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ describe('DashboardGridLayout', () => {
6868
it('should render all widgets', () => {
6969
render(<DashboardGridLayout schema={mockSchema} />);
7070

71-
expect(screen.getByText('Total Sales')).toBeInTheDocument();
71+
expect(screen.getAllByText('Total Sales').length).toBeGreaterThan(0);
7272
expect(screen.getByText('Revenue by Month')).toBeInTheDocument();
7373
});
7474

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { mergeConfig } from 'vitest/config';
2+
import rootConfig from '../../vitest.config.mts';
3+
import viteConfig from './vite.config';
4+
5+
export default mergeConfig(rootConfig, mergeConfig(viteConfig, {
6+
test: {
7+
environment: 'jsdom',
8+
},
9+
}));

packages/react/vitest.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import rootConfig from '../../vitest.config.mts';
2+
export default rootConfig;

0 commit comments

Comments
 (0)