import { Notify } from 'quasar'; import { onRequest, onResponseError } from 'src/boot/axios'; import { describe, expect, it, vi } from 'vitest'; vi.mock('src/composables/useSession', () => ({ useSession: () => ({ getToken: () => 'DEFAULT_TOKEN', isLoggedIn: () => vi.fn(), destroy: () => vi.fn(), }) })); describe('Axios boot', () => { describe('onRequest()', async () => { it('should set the "Authorization" property on the headers', async () => { const config = { headers: {} }; const resultConfig = onRequest(config); expect(resultConfig).toEqual(expect.objectContaining({ headers: { Authorization: 'DEFAULT_TOKEN' } })); }); }) describe('onResponseError()', async () => { it('should call to the Notify plugin with a message error for an status code "500"', async () => { Notify.create = vi.fn() const error = { response: { status: 500 } }; const result = onResponseError(error); expect(result).rejects.toEqual( expect.objectContaining(error) ); expect(Notify.create).toHaveBeenCalledWith( expect.objectContaining({ message: 'An internal server error has ocurred', type: 'negative', }) ); }); it('should call to the Notify plugin with a message from the response property', async () => { Notify.create = vi.fn() const error = { response: { status: 401, data: { error: { message: 'Invalid user or password' } } } }; const result = onResponseError(error); expect(result).rejects.toEqual( expect.objectContaining(error) ); expect(Notify.create).toHaveBeenCalledWith( expect.objectContaining({ message: 'Invalid user or password', type: 'negative', }) ); }); }) });