Skip to content

Commit 180bef2

Browse files
authored
fix(web): remove deleted projects from workspace tabs (#6886)
1 parent f9c0751 commit 180bef2

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

apps/web/src/App.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3854,6 +3854,7 @@ function AppInner() {
38543854
});
38553855
}
38563856
clearLocalProject(id, { deleted: true });
3857+
removeWorkspaceProjectTabs(id);
38573858
iframeKeepAlivePool.evictProject(id, { includeActive: true });
38583859
setProjects((curr) => curr.filter((p) => p.id !== id));
38593860
if (route.kind === 'project' && route.projectId === id) {

apps/web/tests/components/App.project-create-race.test.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1778,7 +1778,7 @@ describe('App project creation routing', () => {
17781778
expect(screen.queryByTestId('entry-project-project-existing')).toBeNull();
17791779
});
17801780

1781-
it('does not re-add a locally deleted project when an older project list resolves stale', async () => {
1781+
it('removes a locally deleted project from workspace tabs and ignores a stale list', async () => {
17821782
const initialProjects = deferred<Project[]>();
17831783
const staleRefreshProjects = deferred<Project[]>();
17841784
mockedListProjects
@@ -1802,6 +1802,8 @@ describe('App project creation routing', () => {
18021802
await waitFor(() => {
18031803
expect(screen.getByTestId('project-title').textContent).toBe('Fresh project');
18041804
});
1805+
workspaceTabsHarness.projectIds.add('project-new');
1806+
expect(workspaceTabsHarness.projectIds.has('project-new')).toBe(true);
18051807

18061808
fireEvent.click(screen.getByRole('button', { name: 'Refresh projects' }));
18071809
expect(mockedListProjects).toHaveBeenCalledTimes(2);
@@ -1812,6 +1814,7 @@ describe('App project creation routing', () => {
18121814
await waitFor(() => {
18131815
expect(mockedDeleteProject).toHaveBeenCalledWith('project-new', null);
18141816
expect(screen.queryByTestId('entry-project-project-new')).toBeNull();
1817+
expect(workspaceTabsHarness.projectIds.has('project-new')).toBe(false);
18151818
});
18161819

18171820
await act(async () => {

0 commit comments

Comments
 (0)