mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Add an informational message when a user tries to open an already opened project (#13853)
This commit is contained in:
@@ -50,6 +50,7 @@ export const Workspace = localize('dataworkspace.workspace', "Workspace");
|
|||||||
export const LocationSelectorTitle = localize('dataworkspace.locationSelectorTitle', "Location");
|
export const LocationSelectorTitle = localize('dataworkspace.locationSelectorTitle', "Location");
|
||||||
export const ProjectFilePlaceholder = localize('dataworkspace.projectFilePlaceholder', "Select project (.sqlproj) file");
|
export const ProjectFilePlaceholder = localize('dataworkspace.projectFilePlaceholder', "Select project (.sqlproj) file");
|
||||||
export const WorkspacePlaceholder = localize('dataworkspace.workspacePlaceholder', "Select workspace ({0}) file", WorkspaceFileExtension);
|
export const WorkspacePlaceholder = localize('dataworkspace.workspacePlaceholder', "Select workspace ({0}) file", WorkspaceFileExtension);
|
||||||
|
export const ProjectAlreadyOpened = (path: string): string => { return localize('dataworkspace.projectAlreadyOpened', "Project '{0}' is already opened.", path); };
|
||||||
|
|
||||||
// Workspace settings for saving new projects
|
// Workspace settings for saving new projects
|
||||||
export const ProjectConfigurationKey = 'projects';
|
export const ProjectConfigurationKey = 'projects';
|
||||||
|
|||||||
@@ -121,6 +121,8 @@ export class WorkspaceService implements IWorkspaceService {
|
|||||||
if (vscode.Uri.file(relativePath).fsPath === projectFile.fsPath) {
|
if (vscode.Uri.file(relativePath).fsPath === projectFile.fsPath) {
|
||||||
newWorkspaceFolders.push(path.dirname(projectFile.path));
|
newWorkspaceFolders.push(path.dirname(projectFile.path));
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
vscode.window.showInformationMessage(constants.ProjectAlreadyOpened(projectFile.fsPath));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import * as TypeMoq from 'typemoq';
|
|||||||
import { WorkspaceService } from '../services/workspaceService';
|
import { WorkspaceService } from '../services/workspaceService';
|
||||||
import { ProjectProviderRegistry } from '../common/projectProviderRegistry';
|
import { ProjectProviderRegistry } from '../common/projectProviderRegistry';
|
||||||
import { createProjectProvider } from './projectProviderRegistry.test';
|
import { createProjectProvider } from './projectProviderRegistry.test';
|
||||||
|
import { ProjectAlreadyOpened } from '../common/constants';
|
||||||
|
|
||||||
const DefaultWorkspaceFilePath = '/test/folder/ws.code-workspace';
|
const DefaultWorkspaceFilePath = '/test/folder/ws.code-workspace';
|
||||||
|
|
||||||
@@ -204,6 +205,7 @@ suite('WorkspaceService Tests', function (): void {
|
|||||||
const updateConfigurationStub = sinon.stub();
|
const updateConfigurationStub = sinon.stub();
|
||||||
const getConfigurationStub = sinon.stub().returns([processPath('folder1/proj2.sqlproj')]);
|
const getConfigurationStub = sinon.stub().returns([processPath('folder1/proj2.sqlproj')]);
|
||||||
const onWorkspaceProjectsChangedStub = sinon.stub();
|
const onWorkspaceProjectsChangedStub = sinon.stub();
|
||||||
|
const showInformationMessageStub = sinon.stub(vscode.window, 'showInformationMessage');
|
||||||
const onWorkspaceProjectsChangedDisposable = service.onDidWorkspaceProjectsChange(() => {
|
const onWorkspaceProjectsChangedDisposable = service.onDidWorkspaceProjectsChange(() => {
|
||||||
onWorkspaceProjectsChangedStub();
|
onWorkspaceProjectsChangedStub();
|
||||||
});
|
});
|
||||||
@@ -220,6 +222,8 @@ suite('WorkspaceService Tests', function (): void {
|
|||||||
]);
|
]);
|
||||||
should.strictEqual(updateConfigurationStub.calledOnce, true, 'update configuration should have been called once');
|
should.strictEqual(updateConfigurationStub.calledOnce, true, 'update configuration should have been called once');
|
||||||
should.strictEqual(updateWorkspaceFoldersStub.calledOnce, true, 'updateWorkspaceFolders should have been called once');
|
should.strictEqual(updateWorkspaceFoldersStub.calledOnce, true, 'updateWorkspaceFolders should have been called once');
|
||||||
|
should.strictEqual(showInformationMessageStub.calledOnce, true, 'showInformationMessage should be called once');
|
||||||
|
should(showInformationMessageStub.calledWith(ProjectAlreadyOpened(processPath('/test/folder/folder1/proj2.sqlproj')))).be.true(`showInformationMessage not called with expected message '${ProjectAlreadyOpened(processPath('/test/folder/folder1/proj2.sqlproj'))}' Actual '${showInformationMessageStub.getCall(0).args[0]}'`);
|
||||||
should.strictEqual(updateConfigurationStub.calledWith('projects', sinon.match.array.deepEquals([
|
should.strictEqual(updateConfigurationStub.calledWith('projects', sinon.match.array.deepEquals([
|
||||||
processPath('folder1/proj2.sqlproj'),
|
processPath('folder1/proj2.sqlproj'),
|
||||||
processPath('proj1.sqlproj'),
|
processPath('proj1.sqlproj'),
|
||||||
|
|||||||
Reference in New Issue
Block a user