Guard baseResponse.data access when baseLogId is falsy in getAllTrace

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-06 08:14:07 +08:00
parent 833427b224
commit c7aa32ef6d
2 changed files with 18 additions and 2 deletions

View File

@@ -165,8 +165,10 @@ export default defineStore('allMapDataStore', {
let baseResponse;
const response = await this.$axios.get(api);
this.allTrace = response.data;
if(baseLogId) baseResponse = await this.$axios.get(baseApi);
this.allBaseTrace = baseResponse.data;
if(baseLogId) {
baseResponse = await this.$axios.get(baseApi);
this.allBaseTrace = baseResponse.data;
}
} catch(error) {
apiError(error, 'Failed to load the Trace.');
}

View File

@@ -191,6 +191,20 @@ describe('allMapDataStore', () => {
});
});
describe('getAllTrace', () => {
it('does not crash when baseLogId is falsy', async () => {
store.logId = 1;
store.baseLogId = null;
mockAxios.get.mockResolvedValue({ data: [{ id: 1 }] });
await store.getAllTrace();
expect(store.allTrace).toEqual([{ id: 1 }]);
// allBaseTrace should not be set when baseLogId is falsy
expect(store.allBaseTrace).toEqual([]);
});
});
describe('getters', () => {
it('traces getter sorts by id', () => {
store.allTrace = [