mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-02 17:23:40 -05:00
fix issue with setting false (#9611)
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
import { dispose, Disposable } from 'vs/base/common/lifecycle';
|
||||
import { Event, Emitter } from 'vs/base/common/event';
|
||||
import { isUndefined } from 'vs/base/common/types';
|
||||
|
||||
export class GridPanelState {
|
||||
public tableStates: GridTableState[] = [];
|
||||
@@ -30,7 +31,7 @@ export class GridTableState extends Disposable {
|
||||
/* The top row of the current scroll */
|
||||
public scrollPositionY = 0;
|
||||
public scrollPositionX = 0;
|
||||
public columnSizes?: number[] = undefined;
|
||||
public columnSizes?: number[];
|
||||
public selection?: Slick.Range[];
|
||||
public activeCell?: Slick.Cell;
|
||||
|
||||
@@ -43,7 +44,7 @@ export class GridTableState extends Disposable {
|
||||
}
|
||||
|
||||
public set canBeMaximized(val: boolean | undefined) {
|
||||
if (!val || val === this._canBeMaximized) {
|
||||
if (isUndefined(val) || val === this._canBeMaximized) {
|
||||
return;
|
||||
}
|
||||
this._canBeMaximized = val;
|
||||
@@ -55,7 +56,7 @@ export class GridTableState extends Disposable {
|
||||
}
|
||||
|
||||
public set maximized(val: boolean | undefined) {
|
||||
if (!val || val === this._maximized) {
|
||||
if (isUndefined(val) || val === this._maximized) {
|
||||
return;
|
||||
}
|
||||
this._maximized = val;
|
||||
@@ -10,7 +10,7 @@ import { TopOperationsState } from 'sql/workbench/common/editor/query/topOperati
|
||||
import { ChartState } from 'sql/workbench/common/editor/query/chartState';
|
||||
import { QueryPlanState } from 'sql/workbench/common/editor/query/queryPlanState';
|
||||
import { MessagePanelState } from 'sql/workbench/common/editor/query/messagePanelState';
|
||||
import { GridPanelState } from 'sql/workbench/common/editor/query/gridPanelState';
|
||||
import { GridPanelState } from 'sql/workbench/common/editor/query/gridTableState';
|
||||
import { QueryModelViewState } from 'sql/workbench/common/editor/query/modelViewState';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import { AngularDisposable } from 'sql/base/browser/lifecycle';
|
||||
import { IMimeComponent } from 'sql/workbench/contrib/notebook/browser/outputs/mimeRegistry';
|
||||
import { ICellModel } from 'sql/workbench/services/notebook/browser/models/modelInterfaces';
|
||||
import { MimeModel } from 'sql/workbench/services/notebook/browser/outputs/mimemodel';
|
||||
import { GridTableState } from 'sql/workbench/common/editor/query/gridPanelState';
|
||||
import { GridTableState } from 'sql/workbench/common/editor/query/gridTableState';
|
||||
import { GridTableBase } from 'sql/workbench/contrib/query/browser/gridPanel';
|
||||
import { getErrorMessage } from 'vs/base/common/errors';
|
||||
import { ISerializationService, SerializeDataParams } from 'sql/platform/serialization/common/serializationService';
|
||||
|
||||
@@ -17,7 +17,7 @@ import { removeAnsiEscapeCodes } from 'vs/base/common/strings';
|
||||
import { IGridDataProvider } from 'sql/workbench/services/query/common/gridDataProvider';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
import QueryRunner from 'sql/workbench/services/query/common/queryRunner';
|
||||
import { GridTableState } from 'sql/workbench/common/editor/query/gridPanelState';
|
||||
import { GridTableState } from 'sql/workbench/common/editor/query/gridTableState';
|
||||
import * as Constants from 'sql/workbench/contrib/extensions/common/constants';
|
||||
import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry';
|
||||
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
||||
|
||||
@@ -44,7 +44,7 @@ import { localize } from 'vs/nls';
|
||||
import { IGridDataProvider } from 'sql/workbench/services/query/common/gridDataProvider';
|
||||
import { formatDocumentWithSelectedProvider, FormattingMode } from 'vs/editor/contrib/format/format';
|
||||
import { CancellationToken } from 'vs/base/common/cancellation';
|
||||
import { GridPanelState, GridTableState } from 'sql/workbench/common/editor/query/gridPanelState';
|
||||
import { GridPanelState, GridTableState } from 'sql/workbench/common/editor/query/gridTableState';
|
||||
import { IUntitledTextEditorService } from 'vs/workbench/services/untitled/common/untitledTextEditorService';
|
||||
import { SaveFormat } from 'sql/workbench/services/query/common/resultSerializer';
|
||||
import { Progress } from 'vs/platform/progress/common/progress';
|
||||
|
||||
@@ -14,7 +14,7 @@ import { QueryPlanTab } from 'sql/workbench/contrib/queryPlan/browser/queryPlan'
|
||||
import { TopOperationsTab } from 'sql/workbench/contrib/queryPlan/browser/topOperations';
|
||||
import { QueryModelViewTab } from 'sql/workbench/contrib/query/browser/modelViewTab/queryModelViewTab';
|
||||
import { MessagePanelState } from 'sql/workbench/common/editor/query/messagePanelState';
|
||||
import { GridPanelState } from 'sql/workbench/common/editor/query/gridPanelState';
|
||||
import { GridPanelState } from 'sql/workbench/common/editor/query/gridTableState';
|
||||
|
||||
import * as nls from 'vs/nls';
|
||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { GridTableState } from 'sql/workbench/common/editor/query/gridTableState';
|
||||
import * as assert from 'assert';
|
||||
import { isUndefined } from 'vs/base/common/types';
|
||||
import { Event } from 'vs/base/common/event';
|
||||
|
||||
suite('Grid Table State', () => {
|
||||
test('inital state is correct', () => {
|
||||
const resultId = 0;
|
||||
const batchId = 0;
|
||||
const state = new GridTableState(resultId, batchId);
|
||||
|
||||
assert.equal(state.resultId, resultId);
|
||||
assert.equal(state.batchId, batchId);
|
||||
assert(isUndefined(state.canBeMaximized));
|
||||
assert(isUndefined(state.maximized));
|
||||
assert.equal(state.scrollPositionX, 0);
|
||||
assert.equal(state.scrollPositionY, 0);
|
||||
assert(isUndefined(state.columnSizes));
|
||||
assert(isUndefined(state.selection));
|
||||
assert(isUndefined(state.activeCell));
|
||||
});
|
||||
|
||||
test('does set properties correctly', async () => {
|
||||
const state = new GridTableState(0, 0);
|
||||
let event = await new Promise<boolean>(resolve => {
|
||||
Event.once(state.onCanBeMaximizedChange)(e => resolve(e));
|
||||
state.canBeMaximized = true;
|
||||
});
|
||||
|
||||
assert.equal(event, true);
|
||||
assert.equal(state.canBeMaximized, true);
|
||||
|
||||
event = await new Promise<boolean>(resolve => {
|
||||
Event.once(state.onCanBeMaximizedChange)(e => resolve(e));
|
||||
state.canBeMaximized = false;
|
||||
});
|
||||
|
||||
assert.equal(event, false);
|
||||
assert.equal(state.canBeMaximized, false);
|
||||
|
||||
event = await new Promise<boolean>(resolve => {
|
||||
Event.once(state.onMaximizedChange)(e => resolve(e));
|
||||
state.maximized = true;
|
||||
});
|
||||
|
||||
assert.equal(event, true);
|
||||
assert.equal(state.maximized, true);
|
||||
|
||||
event = await new Promise<boolean>(resolve => {
|
||||
Event.once(state.onMaximizedChange)(e => resolve(e));
|
||||
state.maximized = false;
|
||||
});
|
||||
|
||||
assert.equal(event, false);
|
||||
assert.equal(state.maximized, false);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user