Add centralized API client with axios interceptors, remove vue-axios
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,20 +5,21 @@ vi.mock('@/module/apiError.js', () => ({
|
||||
default: vi.fn(),
|
||||
}));
|
||||
|
||||
const { mockGet, mockPost, mockPut } = vi.hoisted(() => ({
|
||||
mockGet: vi.fn(), mockPost: vi.fn(), mockPut: vi.fn(),
|
||||
}));
|
||||
vi.mock('@/api/client.js', () => ({
|
||||
default: { get: mockGet, post: mockPost, put: mockPut },
|
||||
}));
|
||||
|
||||
import useAllMapDataStore from '@/stores/allMapData.js';
|
||||
|
||||
describe('allMapDataStore', () => {
|
||||
let store;
|
||||
const mockAxios = {
|
||||
get: vi.fn(),
|
||||
post: vi.fn(),
|
||||
put: vi.fn(),
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
setActivePinia(createPinia());
|
||||
store = useAllMapDataStore();
|
||||
store.$axios = mockAxios;
|
||||
vi.clearAllMocks();
|
||||
});
|
||||
|
||||
@@ -37,11 +38,11 @@ describe('allMapDataStore', () => {
|
||||
stats: { cases: 10 },
|
||||
insights: {},
|
||||
};
|
||||
mockAxios.get.mockResolvedValue({ data: mockData });
|
||||
mockGet.mockResolvedValue({ data: mockData });
|
||||
|
||||
await store.getAllMapData();
|
||||
|
||||
expect(mockAxios.get).toHaveBeenCalledWith(
|
||||
expect(mockGet).toHaveBeenCalledWith(
|
||||
'/api/logs/1/discover',
|
||||
);
|
||||
expect(store.allProcessMap).toEqual({ nodes: [] });
|
||||
@@ -51,7 +52,7 @@ describe('allMapDataStore', () => {
|
||||
it('fetches temp filter discover data when set', async () => {
|
||||
store.logId = 1;
|
||||
store.tempFilterId = 5;
|
||||
mockAxios.get.mockResolvedValue({
|
||||
mockGet.mockResolvedValue({
|
||||
data: {
|
||||
process_map: {},
|
||||
bpmn: {},
|
||||
@@ -62,7 +63,7 @@ describe('allMapDataStore', () => {
|
||||
|
||||
await store.getAllMapData();
|
||||
|
||||
expect(mockAxios.get).toHaveBeenCalledWith(
|
||||
expect(mockGet).toHaveBeenCalledWith(
|
||||
'/api/temp-filters/5/discover',
|
||||
);
|
||||
});
|
||||
@@ -70,7 +71,7 @@ describe('allMapDataStore', () => {
|
||||
it('fetches created filter discover data', async () => {
|
||||
store.logId = 1;
|
||||
store.createFilterId = 3;
|
||||
mockAxios.get.mockResolvedValue({
|
||||
mockGet.mockResolvedValue({
|
||||
data: {
|
||||
process_map: {},
|
||||
bpmn: {},
|
||||
@@ -81,14 +82,14 @@ describe('allMapDataStore', () => {
|
||||
|
||||
await store.getAllMapData();
|
||||
|
||||
expect(mockAxios.get).toHaveBeenCalledWith(
|
||||
expect(mockGet).toHaveBeenCalledWith(
|
||||
'/api/filters/3/discover',
|
||||
);
|
||||
});
|
||||
|
||||
it('does not throw on API failure', async () => {
|
||||
store.logId = 1;
|
||||
mockAxios.get.mockRejectedValue(new Error('fail'));
|
||||
mockGet.mockRejectedValue(new Error('fail'));
|
||||
|
||||
await expect(store.getAllMapData())
|
||||
.resolves.not.toThrow();
|
||||
@@ -111,11 +112,11 @@ describe('allMapDataStore', () => {
|
||||
trace: [],
|
||||
attrs: [],
|
||||
};
|
||||
mockAxios.get.mockResolvedValue({ data: mockData });
|
||||
mockGet.mockResolvedValue({ data: mockData });
|
||||
|
||||
await store.getFilterParams();
|
||||
|
||||
expect(mockAxios.get).toHaveBeenCalledWith(
|
||||
expect(mockGet).toHaveBeenCalledWith(
|
||||
'/api/filters/params?log_id=1',
|
||||
);
|
||||
expect(store.allFilterTask).toEqual(['A', 'B']);
|
||||
@@ -129,13 +130,13 @@ describe('allMapDataStore', () => {
|
||||
it('posts rule data and stores result', async () => {
|
||||
store.logId = 1;
|
||||
store.postRuleData = [{ type: 'task' }];
|
||||
mockAxios.post.mockResolvedValue({
|
||||
mockPost.mockResolvedValue({
|
||||
data: { result: true },
|
||||
});
|
||||
|
||||
await store.checkHasResult();
|
||||
|
||||
expect(mockAxios.post).toHaveBeenCalledWith(
|
||||
expect(mockPost).toHaveBeenCalledWith(
|
||||
'/api/filters/has-result?log_id=1',
|
||||
[{ type: 'task' }],
|
||||
);
|
||||
@@ -147,7 +148,7 @@ describe('allMapDataStore', () => {
|
||||
it('creates temp filter and stores id', async () => {
|
||||
store.logId = 1;
|
||||
store.postRuleData = [];
|
||||
mockAxios.post.mockResolvedValue({ data: { id: 77 } });
|
||||
mockPost.mockResolvedValue({ data: { id: 77 } });
|
||||
|
||||
await store.addTempFilterId();
|
||||
|
||||
@@ -160,11 +161,11 @@ describe('allMapDataStore', () => {
|
||||
store.logId = 1;
|
||||
store.tempFilterId = 77;
|
||||
store.postRuleData = [{ type: 'rule' }];
|
||||
mockAxios.post.mockResolvedValue({ data: { id: 88 } });
|
||||
mockPost.mockResolvedValue({ data: { id: 88 } });
|
||||
|
||||
await store.addFilterId('myFilter');
|
||||
|
||||
expect(mockAxios.post).toHaveBeenCalledWith(
|
||||
expect(mockPost).toHaveBeenCalledWith(
|
||||
'/api/filters?log_id=1',
|
||||
{ name: 'myFilter', rules: [{ type: 'rule' }] },
|
||||
);
|
||||
@@ -178,11 +179,11 @@ describe('allMapDataStore', () => {
|
||||
store.createFilterId = 88;
|
||||
store.tempFilterId = 77;
|
||||
store.postRuleData = [{ type: 'updated' }];
|
||||
mockAxios.put.mockResolvedValue({ status: 200 });
|
||||
mockPut.mockResolvedValue({ status: 200 });
|
||||
|
||||
await store.updateFilter();
|
||||
|
||||
expect(mockAxios.put).toHaveBeenCalledWith(
|
||||
expect(mockPut).toHaveBeenCalledWith(
|
||||
'/api/filters/88',
|
||||
[{ type: 'updated' }],
|
||||
);
|
||||
@@ -195,7 +196,7 @@ describe('allMapDataStore', () => {
|
||||
it('does not crash when baseLogId is falsy', async () => {
|
||||
store.logId = 1;
|
||||
store.baseLogId = null;
|
||||
mockAxios.get.mockResolvedValue({ data: [{ id: 1 }] });
|
||||
mockGet.mockResolvedValue({ data: [{ id: 1 }] });
|
||||
|
||||
await store.getAllTrace();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user