0
0
Fork 0

test: refs #7308 #7308 axios.spec.js

This commit is contained in:
Javier Segarra 2024-11-14 08:19:41 +01:00
parent ef415d080a
commit 590d495dbd
2 changed files with 58 additions and 23 deletions

View File

@ -4,9 +4,8 @@ import { Router } from 'src/router';
import useNotify from 'src/composables/useNotify.js'; import useNotify from 'src/composables/useNotify.js';
import { useStateQueryStore } from 'src/stores/useStateQueryStore'; import { useStateQueryStore } from 'src/stores/useStateQueryStore';
const session = useSession(); let session, notify, stateQuery;
const { notify } = useNotify();
const stateQuery = useStateQueryStore();
const baseUrl = '/api/'; const baseUrl = '/api/';
axios.defaults.baseURL = baseUrl; axios.defaults.baseURL = baseUrl;
@ -51,9 +50,15 @@ const onResponseError = (error) => {
return Promise.reject(error); return Promise.reject(error);
}; };
axios.interceptors.request.use(onRequest, onRequestError); export function setupAxios() {
axios.interceptors.response.use(onResponse, onResponseError); session = useSession();
axiosNoError.interceptors.request.use(onRequest); notify = useNotify().notify;
axiosNoError.interceptors.response.use(onResponse); stateQuery = useStateQueryStore();
axios.interceptors.request.use(onRequest, onRequestError);
axios.interceptors.response.use(onResponse, onResponseError);
axiosNoError.interceptors.request.use(onRequest);
axiosNoError.interceptors.response.use(onResponse);
}
export { onRequest, onResponseError, axiosNoError }; export { onRequest, onResponseError, axiosNoError };

View File

@ -1,23 +1,53 @@
import { Notify } from 'quasar'; import { describe, it, expect, beforeEach, vi } from 'vitest';
import { onRequest, onResponseError } from 'src/boot/axios'; import { setupAxios, onRequest, onResponseError } from 'src/boot/axios';
import { describe, expect, it, vi } from 'vitest'; 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/useSession');
useSession: () => ({ vi.mock('src/composables/useNotify');
getToken: () => 'DEFAULT_TOKEN', vi.mock('src/stores/useStateQueryStore');
isLoggedIn: () => vi.fn(),
destroy: () => vi.fn(),
}),
}));
vi.mock('src/stores/useStateQueryStore', () => ({ // vi.mock('src/composables/useSession', () => ({
useStateQueryStore: () => ({ // useSession: () => ({
add: () => vi.fn(), // getToken: () => 'DEFAULT_TOKEN',
remove: () => vi.fn(), // isLoggedIn: () => vi.fn(),
}), // destroy: () => vi.fn(),
})); // }),
// }));
// vi.mock('src/stores/useStateQueryStore', () => ({
// useStateQueryStore: () => ({
// add: () => vi.fn(),
// remove: () => vi.fn(),
// }),
// }));
describe('Axios boot', () => { describe('Axios boot', () => {
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();
});
describe('onRequest()', async () => { describe('onRequest()', async () => {
it('should set the "Authorization" property on the headers', async () => { it('should set the "Authorization" property on the headers', async () => {
const config = { headers: {} }; const config = { headers: {} };