UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

38 lines (37 loc) 1.52 kB
/** * FieldsService mocking utilities for service tests * Provides simplified mocks for src/services/fields module used in service testing */ import { vi } from 'vitest'; import { mockItemsService } from './items-service.js'; /** * Creates a standard FieldsService mock for service tests * This matches the pattern used in CollectionsService tests * * @returns Mock module object for vi.mock() * * @example * ```typescript * // Standard usage * vi.mock('./fields.js', async () => { * const { mockFieldsService } = await import('../test-utils/services/fields-service.js'); * return mockFieldsService(); * }); * * // To dynamically change FieldsService behavior during tests: * import { FieldsService } from './fields.js'; * vi.spyOn(FieldsService.prototype, 'addColumnToTable').mockImplementation((table, collection, field) => { * // custom implementation * }); * ``` */ export function mockFieldsService() { const { ItemsService: FieldsService } = mockItemsService(); // Mock common methods used by other services (like CollectionsService) FieldsService.prototype.addColumnToTable = vi.fn().mockImplementation(() => { }); FieldsService.prototype.addColumnIndex = vi.fn().mockResolvedValue(undefined); FieldsService.prototype.deleteField = vi.fn().mockResolvedValue(undefined); FieldsService.prototype.createField = vi.fn().mockResolvedValue(undefined); FieldsService.prototype.updateField = vi.fn().mockResolvedValue('field'); return { FieldsService }; }