mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-10 02:02:35 -05:00
* Fix initial build breaks from 1.67 merge (#2514) * Update yarn lock files * Update build scripts * Fix tsconfig * Build breaks * WIP * Update yarn lock files * Misc breaks * Updates to package.json * Breaks * Update yarn * Fix breaks * Breaks * Build breaks * Breaks * Breaks * Breaks * Breaks * Breaks * Missing file * Breaks * Breaks * Breaks * Breaks * Breaks * Fix several runtime breaks (#2515) * Missing files * Runtime breaks * Fix proxy ordering issue * Remove commented code * Fix breaks with opening query editor * Fix post merge break * Updates related to setup build and other breaks (#2516) * Fix bundle build issues * Update distro * Fix distro merge and update build JS files * Disable pipeline steps * Remove stats call * Update license name * Make new RPM dependencies a warning * Fix extension manager version checks * Update JS file * Fix a few runtime breaks * Fixes * Fix runtime issues * Fix build breaks * Update notebook tests (part 1) * Fix broken tests * Linting errors * Fix hygiene * Disable lint rules * Bump distro * Turn off smoke tests * Disable integration tests * Remove failing "activate" test * Remove failed test assertion * Disable other broken test * Disable query history tests * Disable extension unit tests * Disable failing tasks
261 lines
9.8 KiB
TypeScript
261 lines
9.8 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { join } from 'vs/base/common/path';
|
|
import { basename, isEqual, isEqualOrParent } from 'vs/base/common/resources';
|
|
import { URI } from 'vs/base/common/uri';
|
|
import { Event, Emitter } from 'vs/base/common/event';
|
|
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
|
import { IWorkspaceContextService, IWorkspace, WorkbenchState, IWorkspaceFolder, IWorkspaceFoldersChangeEvent, Workspace, IWorkspaceFoldersWillChangeEvent, ISingleFolderWorkspaceIdentifier, IWorkspaceIdentifier } from 'vs/platform/workspace/common/workspace';
|
|
import { TestWorkspace } from 'vs/platform/workspace/test/common/testWorkspace';
|
|
import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfiguration';
|
|
import { isLinux, isMacintosh } from 'vs/base/common/platform';
|
|
import { InMemoryStorageService, WillSaveStateReason } from 'vs/platform/storage/common/storage';
|
|
import { IWorkingCopy, IWorkingCopyBackup, WorkingCopyCapabilities } from 'vs/workbench/services/workingCopy/common/workingCopy';
|
|
import { NullExtensionService } from 'vs/workbench/services/extensions/common/extensions';
|
|
import { IWorkingCopyFileService, IWorkingCopyFileOperationParticipant, WorkingCopyFileEvent, IDeleteOperation, ICopyOperation, IMoveOperation, IFileOperationUndoRedoInfo, ICreateFileOperation, ICreateOperation, IStoredFileWorkingCopySaveParticipant } from 'vs/workbench/services/workingCopy/common/workingCopyFileService';
|
|
import { IDisposable, Disposable } from 'vs/base/common/lifecycle';
|
|
import { IFileStatWithMetadata } from 'vs/platform/files/common/files';
|
|
import { ISaveOptions, IRevertOptions, SaveReason } from 'vs/workbench/common/editor';
|
|
import { CancellationToken } from 'vs/base/common/cancellation';
|
|
import product from 'vs/platform/product/common/product';
|
|
import { IActivity, IActivityService } from 'vs/workbench/services/activity/common/activity';
|
|
import { IStoredFileWorkingCopySaveEvent } from 'vs/workbench/services/workingCopy/common/storedFileWorkingCopy';
|
|
|
|
export class TestTextResourcePropertiesService implements ITextResourcePropertiesService {
|
|
|
|
declare readonly _serviceBrand: undefined;
|
|
|
|
constructor(
|
|
@IConfigurationService private readonly configurationService: IConfigurationService,
|
|
) {
|
|
}
|
|
|
|
getEOL(resource: URI, language?: string): string {
|
|
const eol = this.configurationService.getValue('files.eol', { overrideIdentifier: language, resource });
|
|
if (eol && typeof eol === 'string' && eol !== 'auto') {
|
|
return eol;
|
|
}
|
|
return (isLinux || isMacintosh) ? '\n' : '\r\n';
|
|
}
|
|
}
|
|
|
|
export class TestContextService implements IWorkspaceContextService {
|
|
|
|
declare readonly _serviceBrand: undefined;
|
|
|
|
private workspace: Workspace;
|
|
private options: object;
|
|
|
|
private readonly _onDidChangeWorkspaceName: Emitter<void>;
|
|
get onDidChangeWorkspaceName(): Event<void> { return this._onDidChangeWorkspaceName.event; }
|
|
|
|
private readonly _onWillChangeWorkspaceFolders: Emitter<IWorkspaceFoldersWillChangeEvent>;
|
|
get onWillChangeWorkspaceFolders(): Event<IWorkspaceFoldersWillChangeEvent> { return this._onWillChangeWorkspaceFolders.event; }
|
|
|
|
private readonly _onDidChangeWorkspaceFolders: Emitter<IWorkspaceFoldersChangeEvent>;
|
|
get onDidChangeWorkspaceFolders(): Event<IWorkspaceFoldersChangeEvent> { return this._onDidChangeWorkspaceFolders.event; }
|
|
|
|
private readonly _onDidChangeWorkbenchState: Emitter<WorkbenchState>;
|
|
get onDidChangeWorkbenchState(): Event<WorkbenchState> { return this._onDidChangeWorkbenchState.event; }
|
|
|
|
constructor(workspace = TestWorkspace, options = null) {
|
|
this.workspace = workspace;
|
|
this.options = options || Object.create(null);
|
|
this._onDidChangeWorkspaceName = new Emitter<void>();
|
|
this._onWillChangeWorkspaceFolders = new Emitter<IWorkspaceFoldersWillChangeEvent>();
|
|
this._onDidChangeWorkspaceFolders = new Emitter<IWorkspaceFoldersChangeEvent>();
|
|
this._onDidChangeWorkbenchState = new Emitter<WorkbenchState>();
|
|
}
|
|
|
|
getFolders(): IWorkspaceFolder[] {
|
|
return this.workspace ? this.workspace.folders : [];
|
|
}
|
|
|
|
getWorkbenchState(): WorkbenchState {
|
|
if (this.workspace.configuration) {
|
|
return WorkbenchState.WORKSPACE;
|
|
}
|
|
|
|
if (this.workspace.folders.length) {
|
|
return WorkbenchState.FOLDER;
|
|
}
|
|
|
|
return WorkbenchState.EMPTY;
|
|
}
|
|
|
|
getCompleteWorkspace(): Promise<IWorkspace> {
|
|
return Promise.resolve(this.getWorkspace());
|
|
}
|
|
|
|
getWorkspace(): IWorkspace {
|
|
return this.workspace;
|
|
}
|
|
|
|
getWorkspaceFolder(resource: URI): IWorkspaceFolder | null {
|
|
return this.workspace.getFolder(resource);
|
|
}
|
|
|
|
setWorkspace(workspace: any): void {
|
|
this.workspace = workspace;
|
|
}
|
|
|
|
getOptions() {
|
|
return this.options;
|
|
}
|
|
|
|
updateOptions() { }
|
|
|
|
isInsideWorkspace(resource: URI): boolean {
|
|
if (resource && this.workspace) {
|
|
return isEqualOrParent(resource, this.workspace.folders[0].uri);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
toResource(workspaceRelativePath: string): URI {
|
|
return URI.file(join('C:\\', workspaceRelativePath));
|
|
}
|
|
|
|
isCurrentWorkspace(workspaceIdOrFolder: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier | URI): boolean {
|
|
return URI.isUri(workspaceIdOrFolder) && isEqual(this.workspace.folders[0].uri, workspaceIdOrFolder);
|
|
}
|
|
}
|
|
|
|
export class TestStorageService extends InMemoryStorageService {
|
|
|
|
override emitWillSaveState(reason: WillSaveStateReason): void {
|
|
super.emitWillSaveState(reason);
|
|
}
|
|
}
|
|
|
|
export class TestWorkingCopy extends Disposable implements IWorkingCopy {
|
|
|
|
private readonly _onDidChangeDirty = this._register(new Emitter<void>());
|
|
readonly onDidChangeDirty = this._onDidChangeDirty.event;
|
|
|
|
private readonly _onDidChangeContent = this._register(new Emitter<void>());
|
|
readonly onDidChangeContent = this._onDidChangeContent.event;
|
|
|
|
private readonly _onDidSave = this._register(new Emitter<IStoredFileWorkingCopySaveEvent>());
|
|
readonly onDidSave = this._onDidSave.event;
|
|
|
|
readonly capabilities = WorkingCopyCapabilities.None;
|
|
|
|
readonly name = basename(this.resource);
|
|
|
|
private dirty = false;
|
|
|
|
constructor(readonly resource: URI, isDirty = false, readonly typeId = 'testWorkingCopyType') {
|
|
super();
|
|
|
|
this.dirty = isDirty;
|
|
}
|
|
|
|
setDirty(dirty: boolean): void {
|
|
if (this.dirty !== dirty) {
|
|
this.dirty = dirty;
|
|
this._onDidChangeDirty.fire();
|
|
}
|
|
}
|
|
|
|
setContent(content: string): void {
|
|
this._onDidChangeContent.fire();
|
|
}
|
|
|
|
isDirty(): boolean {
|
|
return this.dirty;
|
|
}
|
|
|
|
async save(options?: ISaveOptions, stat?: IFileStatWithMetadata): Promise<boolean> {
|
|
this._onDidSave.fire({ reason: options?.reason ?? SaveReason.EXPLICIT, stat: stat ?? createFileStat(this.resource), source: options?.source });
|
|
|
|
return true;
|
|
}
|
|
|
|
async revert(options?: IRevertOptions): Promise<void> {
|
|
this.setDirty(false);
|
|
}
|
|
|
|
async backup(token: CancellationToken): Promise<IWorkingCopyBackup> {
|
|
return {};
|
|
}
|
|
}
|
|
|
|
export function createFileStat(resource: URI, readonly = false): IFileStatWithMetadata {
|
|
return {
|
|
resource,
|
|
etag: Date.now().toString(),
|
|
mtime: Date.now(),
|
|
ctime: Date.now(),
|
|
size: 42,
|
|
isFile: true,
|
|
isDirectory: false,
|
|
isSymbolicLink: false,
|
|
readonly,
|
|
name: basename(resource),
|
|
children: undefined
|
|
};
|
|
}
|
|
|
|
export class TestWorkingCopyFileService implements IWorkingCopyFileService {
|
|
|
|
declare readonly _serviceBrand: undefined;
|
|
|
|
onWillRunWorkingCopyFileOperation: Event<WorkingCopyFileEvent> = Event.None;
|
|
onDidFailWorkingCopyFileOperation: Event<WorkingCopyFileEvent> = Event.None;
|
|
onDidRunWorkingCopyFileOperation: Event<WorkingCopyFileEvent> = Event.None;
|
|
|
|
addFileOperationParticipant(participant: IWorkingCopyFileOperationParticipant): IDisposable { return Disposable.None; }
|
|
|
|
readonly hasSaveParticipants = false;
|
|
addSaveParticipant(participant: IStoredFileWorkingCopySaveParticipant): IDisposable { return Disposable.None; }
|
|
async runSaveParticipants(workingCopy: IWorkingCopy, context: { reason: SaveReason }, token: CancellationToken): Promise<void> { }
|
|
|
|
async delete(operations: IDeleteOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<void> { }
|
|
|
|
registerWorkingCopyProvider(provider: (resourceOrFolder: URI) => IWorkingCopy[]): IDisposable { return Disposable.None; }
|
|
|
|
getDirty(resource: URI): IWorkingCopy[] { return []; }
|
|
|
|
create(operations: ICreateFileOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<IFileStatWithMetadata[]> { throw new Error('Method not implemented.'); }
|
|
createFolder(operations: ICreateOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<IFileStatWithMetadata[]> { throw new Error('Method not implemented.'); }
|
|
|
|
move(operations: IMoveOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<IFileStatWithMetadata[]> { throw new Error('Method not implemented.'); }
|
|
|
|
copy(operations: ICopyOperation[], token: CancellationToken, undoInfo?: IFileOperationUndoRedoInfo): Promise<IFileStatWithMetadata[]> { throw new Error('Method not implemented.'); }
|
|
}
|
|
|
|
export function mock<T>(): Ctor<T> {
|
|
return function () { } as any;
|
|
}
|
|
|
|
export interface Ctor<T> {
|
|
new(): T;
|
|
}
|
|
|
|
export class TestExtensionService extends NullExtensionService { }
|
|
|
|
export const TestProductService = { _serviceBrand: undefined, ...product };
|
|
|
|
export class TestActivityService implements IActivityService {
|
|
_serviceBrand: undefined;
|
|
showViewContainerActivity(viewContainerId: string, badge: IActivity): IDisposable {
|
|
return this;
|
|
}
|
|
showViewActivity(viewId: string, badge: IActivity): IDisposable {
|
|
return this;
|
|
}
|
|
showAccountsActivity(activity: IActivity): IDisposable {
|
|
return this;
|
|
}
|
|
showGlobalActivity(activity: IActivity): IDisposable {
|
|
return this;
|
|
}
|
|
|
|
dispose() { }
|
|
}
|