Skip to content

Commit cbd1d4d

Browse files
Copilothotlong
andcommitted
Fix CI test failures: ObjectCalendar double-fetch, date-sensitive mock data, and ReportView live preview assertion
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent a839c39 commit cbd1d4d

3 files changed

Lines changed: 12 additions & 8 deletions

File tree

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ describe('Plugins Integration Test', () => {
7171
};
7272

7373
const mockData = [
74-
{ id: '1', name: 'Task 1', status: 'new', due_date: '2026-02-15T12:00:00' },
75-
{ id: '2', name: 'Task 2', status: 'working', due_date: '2026-02-16T12:00:00' },
76-
{ id: '3', name: 'Task 3', status: 'done', due_date: '2026-02-17T12:00:00' }
74+
{ id: '1', name: 'Task 1', status: 'new', due_date: new Date(Date.now() + 86400000).toISOString() },
75+
{ id: '2', name: 'Task 2', status: 'working', due_date: new Date(Date.now() + 172800000).toISOString() },
76+
{ id: '3', name: 'Task 3', status: 'done', due_date: new Date(Date.now() + 259200000).toISOString() }
7777
];
7878

7979
const mockDataSource = {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ describe('ReportView — Inline Config Panel', () => {
186186

187187
// Config panel should still be open (not reset)
188188
expect(screen.getByTestId('config-panel-close')).toBeInTheDocument();
189-
// The heading should still show the report title from the viewer
190-
expect(screen.getAllByText('Sales Report').length).toBeGreaterThanOrEqual(1);
189+
// The heading should reflect the live preview title update
190+
expect(screen.getAllByText('Live Preview Title').length).toBeGreaterThanOrEqual(1);
191191
});
192192
});

packages/plugin-calendar/src/ObjectCalendar.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* - Works with object/api/value data providers
2323
*/
2424

25-
import React, { useEffect, useState, useCallback, useMemo } from 'react';
25+
import React, { useEffect, useState, useCallback, useMemo, useRef } from 'react';
2626
import type { ObjectGridSchema, DataSource, ViewData, CalendarConfig } from '@object-ui/types';
2727
import { CalendarView, type CalendarEvent } from './CalendarView';
2828
import { usePullToRefresh } from '@object-ui/mobile';
@@ -183,6 +183,10 @@ export const ObjectCalendar: React.FC<ObjectCalendarProps> = ({
183183
]);
184184
const hasInlineData = dataConfig?.provider === 'value';
185185

186+
// Use ref for objectSchema to avoid double-fetch on mount
187+
const objectSchemaRef = useRef<any>(null);
188+
objectSchemaRef.current = objectSchema;
189+
186190
// Fetch data based on provider
187191
useEffect(() => {
188192
let isMounted = true;
@@ -216,7 +220,7 @@ export const ObjectCalendar: React.FC<ObjectCalendarProps> = ({
216220
if (dataConfig?.provider === 'object') {
217221
const objectName = dataConfig.object;
218222
// Auto-inject $expand for lookup/master_detail fields
219-
const expand = buildExpandFields(objectSchema?.fields);
223+
const expand = buildExpandFields(objectSchemaRef.current?.fields);
220224
const result = await dataSource.find(objectName, {
221225
$filter: schema.filter,
222226
$orderby: convertSortToQueryParams(schema.sort),
@@ -245,7 +249,7 @@ export const ObjectCalendar: React.FC<ObjectCalendarProps> = ({
245249

246250
fetchData();
247251
return () => { isMounted = false; };
248-
}, [dataConfig, dataSource, hasInlineData, schema.filter, schema.sort, refreshKey, objectSchema]);
252+
}, [dataConfig, dataSource, hasInlineData, schema.filter, schema.sort, refreshKey]);
249253

250254
// Fetch object schema for field metadata
251255
useEffect(() => {

0 commit comments

Comments
 (0)