0
0
Fork 0
salix-front-mindshore-fork2/test/vitest/__tests__/boot/axios.spec.js

81 lines
2.5 KiB
JavaScript
Raw Normal View History

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
});