84 lines
2.5 KiB
JavaScript
84 lines
2.5 KiB
JavaScript
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(),
|
|
}),
|
|
}));
|
|
|
|
vi.mock('src/stores/useStateQueryStore', () => ({
|
|
useStateQueryStore: () => ({
|
|
add: () => vi.fn(),
|
|
remove: () => 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',
|
|
})
|
|
);
|
|
});
|
|
});
|
|
});
|