2024-11-14 07:19:41 +00:00
|
|
|
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
|
|
import { setupAxios, onRequest, onResponseError } from 'src/boot/axios';
|
|
|
|
import { useSession } from 'src/composables/useSession';
|
|
|
|
import useNotify from 'src/composables/useNotify';
|
|
|
|
import { useStateQueryStore } from 'src/stores/useStateQueryStore';
|
|
|
|
|
|
|
|
vi.mock('src/composables/useSession');
|
|
|
|
vi.mock('src/composables/useNotify');
|
|
|
|
vi.mock('src/stores/useStateQueryStore');
|
|
|
|
|
2024-10-18 09:03:43 +00:00
|
|
|
describe('Axios boot', () => {
|
2024-11-14 07:19:41 +00:00
|
|
|
let sessionMock, notifyMock, stateQueryMock;
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
sessionMock = {
|
|
|
|
getToken: vi.fn().mockReturnValue('DEFAULT_TOKEN'),
|
|
|
|
isLoggedIn: vi.fn().mockReturnValue(true),
|
|
|
|
destroy: vi.fn(),
|
|
|
|
};
|
|
|
|
|
|
|
|
notifyMock = {
|
|
|
|
notify: vi.fn(),
|
|
|
|
};
|
|
|
|
|
|
|
|
stateQueryMock = {
|
|
|
|
add: vi.fn(),
|
|
|
|
remove: vi.fn(),
|
|
|
|
};
|
|
|
|
|
|
|
|
useSession.mockReturnValue(sessionMock);
|
|
|
|
useNotify.mockReturnValue(notifyMock);
|
|
|
|
useStateQueryStore.mockReturnValue(stateQueryMock);
|
|
|
|
|
|
|
|
setupAxios();
|
|
|
|
});
|
2023-03-16 09:54:19 +00:00
|
|
|
describe('onRequest()', async () => {
|
|
|
|
it('should set the "Authorization" property on the headers', async () => {
|
|
|
|
const config = { headers: {} };
|
|
|
|
|
|
|
|
const resultConfig = onRequest(config);
|
|
|
|
|
2024-10-18 09:03:43 +00:00
|
|
|
expect(resultConfig).toEqual(
|
|
|
|
expect.objectContaining({
|
|
|
|
headers: {
|
|
|
|
Authorization: 'DEFAULT_TOKEN',
|
|
|
|
},
|
|
|
|
})
|
|
|
|
);
|
2023-03-16 09:54:19 +00:00
|
|
|
});
|
2024-10-18 09:03:43 +00:00
|
|
|
});
|
2023-03-16 09:54:19 +00:00
|
|
|
|
|
|
|
describe('onResponseError()', async () => {
|
|
|
|
it('should call to the Notify plugin with a message error for an status code "500"', async () => {
|
|
|
|
const error = {
|
|
|
|
response: {
|
2024-10-18 09:03:43 +00:00
|
|
|
status: 500,
|
|
|
|
},
|
2023-03-16 09:54:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
const result = onResponseError(error);
|
2024-10-18 09:03:43 +00:00
|
|
|
expect(result).rejects.toEqual(expect.objectContaining(error));
|
2023-03-16 09:54:19 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it('should call to the Notify plugin with a message from the response property', async () => {
|
|
|
|
const error = {
|
|
|
|
response: {
|
|
|
|
status: 401,
|
|
|
|
data: {
|
|
|
|
error: {
|
2024-10-18 09:03:43 +00:00
|
|
|
message: 'Invalid user or password',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2023-03-16 09:54:19 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
const result = onResponseError(error);
|
2024-10-18 09:03:43 +00:00
|
|
|
expect(result).rejects.toEqual(expect.objectContaining(error));
|
2023-03-16 09:54:19 +00:00
|
|
|
});
|
2024-10-18 09:03:43 +00:00
|
|
|
});
|
2023-03-16 09:54:19 +00:00
|
|
|
});
|