Fix deleteFile undefined $toast and reversed delete/fetch order
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -256,7 +256,8 @@ export default defineStore('filesStore', {
|
|||||||
let api;
|
let api;
|
||||||
|
|
||||||
if(id == null || isNaN(id)) {
|
if(id == null || isNaN(id)) {
|
||||||
return $toast.default('Delete File API Error.', {position: 'bottom'});
|
console.error('Delete File API Error: invalid id');
|
||||||
|
return;
|
||||||
};
|
};
|
||||||
const loading = loadingStore();
|
const loading = loadingStore();
|
||||||
loading.isLoading = true;
|
loading.isLoading = true;
|
||||||
@@ -275,8 +276,8 @@ export default defineStore('filesStore', {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
await this.fetchAllFiles();
|
|
||||||
await axios.delete(api);
|
await axios.delete(api);
|
||||||
|
await this.fetchAllFiles();
|
||||||
await deleteSuccess();
|
await deleteSuccess();
|
||||||
} catch(error) {
|
} catch(error) {
|
||||||
apiError(error, 'Failed to delete.');
|
apiError(error, 'Failed to delete.');
|
||||||
|
|||||||
@@ -159,13 +159,31 @@ describe('filesStore', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('deleteFile', () => {
|
describe('deleteFile', () => {
|
||||||
it('deletes a log file via axios.delete', async () => {
|
it('calls axios.delete before fetchAllFiles', async () => {
|
||||||
axios.get.mockResolvedValue({ data: [] });
|
const callOrder = [];
|
||||||
axios.delete.mockResolvedValue({});
|
axios.delete.mockImplementation(async () => {
|
||||||
|
callOrder.push('delete');
|
||||||
|
return {};
|
||||||
|
});
|
||||||
|
axios.get.mockImplementation(async () => {
|
||||||
|
callOrder.push('get');
|
||||||
|
return { data: [] };
|
||||||
|
});
|
||||||
|
|
||||||
await store.deleteFile('log', 1);
|
await store.deleteFile('log', 1);
|
||||||
|
|
||||||
expect(axios.delete).toHaveBeenCalledWith('/api/logs/1');
|
expect(axios.delete).toHaveBeenCalledWith('/api/logs/1');
|
||||||
|
expect(callOrder.indexOf('delete')).toBeLessThan(
|
||||||
|
callOrder.indexOf('get'),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns early for invalid id without throwing', async () => {
|
||||||
|
await expect(
|
||||||
|
store.deleteFile('log', null),
|
||||||
|
).resolves.toBeUndefined();
|
||||||
|
|
||||||
|
expect(axios.delete).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user