Skip to content

Commit

Permalink
fix(sqllab): dedupe active_tab in tabHistory
Browse files Browse the repository at this point in the history
  • Loading branch information
justinpark committed Mar 2, 2023
1 parent d16eda6 commit ffa3e13
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
10 changes: 9 additions & 1 deletion superset-frontend/src/SqlLab/reducers/getInitialState.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@
import { t } from '@superset-ui/core';
import getToastsFromPyFlashMessages from 'src/components/MessageToasts/getToastsFromPyFlashMessages';

export function dedupeTabHistory(tabHistory) {
return tabHistory.reduce(
(result, tabId) =>
result.slice(-1)[0] === tabId ? result : result.concat(tabId),
[],
);
}

export default function getInitialState({
defaultDbId,
common,
Expand Down Expand Up @@ -193,7 +201,7 @@ export default function getInitialState({
offline: false,
queries,
queryEditors: Object.values(queryEditors),
tabHistory,
tabHistory: dedupeTabHistory(tabHistory),
tables,
queriesLastUpdate: Date.now(),
user,
Expand Down
19 changes: 18 additions & 1 deletion superset-frontend/src/SqlLab/reducers/getInitialState.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* under the License.
*/

import getInitialState from './getInitialState';
import getInitialState, { dedupeTabHistory } from './getInitialState';

const apiData = {
defaultDbId: 1,
Expand Down Expand Up @@ -51,4 +51,21 @@ describe('getInitialState', () => {
.templateParams,
).toBeUndefined();
});

describe('dedupeTabHistory', () => {
it('should dedupe the tab history', () => {
[
{ value: [], expected: [] },
{ value: [12, 3, 4, 5, 6], expected: [12, 3, 4, 5, 6] },
{ value: [1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], expected: [1, 2] },
{
value: [1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3],
expected: [1, 2, 3],
},
{ value: [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3], expected: [2, 3] },
].forEach(({ value, expected }) => {
expect(dedupeTabHistory(value)).toEqual(expected);
});
});
});
});

0 comments on commit ffa3e13

Please sign in to comment.