import useDataFetcherList from './useDataFetcherList'; import { rolesListResponse } from '../api/ApiMock' import { describe, expect, it } from 'vitest' import { withSetup } from '@/utils/utils'; import apiClient from '../api/ApiMock'; import type { RolesListResponse, RolesListRequest } from '@/api/ApiTypes' describe('useDataFetcherList', () => { it('fetches data and updates reactive variables', async () => { const [results, app] = withSetup(() => useDataFetcherList(apiClient.rolesList, {} as RolesListRequest)); expect(results.loading.value).toBe(true); expect(results.responseData.value).toBeNull(); expect(results.error.value).toBeNull(); await new Promise((resolve) => setTimeout(resolve, 1000)); expect(results.loading.value).toBe(false); expect(results.responseData.value).toStrictEqual(rolesListResponse); expect(results.error.value).toBeNull(); app.unmount(); }); it('handles API failure and updates error variable', async () => { const [results, app] = withSetup(() => useDataFetcherList(apiClient.rolesListWithErr, {} as RolesListRequest)); expect(results.loading.value).toBe(true); expect(results.responseData.value).toBeNull(); await new Promise((resolve) => setTimeout(resolve, 1000)); expect(results.loading.value).toBe(false); expect(results.error.value).toStrictEqual('Failed to fetch roles list'); app.unmount(); }); });