mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-10-13 07:47:05 +08:00
* CB-4619 feat: update gql schema * CB-4808 bulk update user parameters * CB-4808 param type fix * CB-4619 feat: updateUserPreferences API * CB-4619 refactor: settings api * CB-4619 refactor: move file * CB-4619 refactor: settings api * CB-4619 fix: pr review * CB-4619 refactor: remove web-based product settings * CB-4619 fix: after pr review * CB-4619 refactor: move product conf to cloudbeaver conf * CB-4619 fix: hide settings bar and log exception with changing session language * CB-4619 fix: revert after merge * CB-4808 new settings api * CB-4808 update product.conf format * CB-4808 update product.conf format * CB-4619 feat: support server provided settings * CB-4619 feat: prettify settings * CB-4619 chore: map sql editor settings group * CB-4808 add use short/long object name settings to CloudBeaver * CB-4808 update default product.conf * CB-4808 mode short/long settings to SQLModelPreferences * CB-4808 review fix * CB-4619 refactor: unit tests * CB-4619 fix: prevent websocket opening spam * CB-4619 fix: dependencies * CB-4619 fix: remove extra theme loading * CB-4619 fix: rename settings alias resolver file * CB-4619 fix: after review * CB-4619 fix conflicts * CB-4619 rename server property * CB-4619 remove shortname property * CB-4619 fix legacy product conf reading * CB-4619 merge root and runtime configurations * CB-4619 chore: remove log viewer setting * CB-4619 integer fields with env variables fix * CB-4619 fix: property naming * CB-4619 fix: parseJSONFlat null values * CB-4619 fix: settings loading * CB-4619 fix: save only actual settings --------- Co-authored-by: Aleksandr Skoblikov <aleksandr.skoblikov@dbeaver.com> Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com> Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
112 lines
4.5 KiB
TypeScript
112 lines
4.5 KiB
TypeScript
/*
|
|
* CloudBeaver - Cloud Database Manager
|
|
* Copyright (C) 2020-2024 DBeaver Corp and others
|
|
*
|
|
* Licensed under the Apache License, Version 2.0.
|
|
* you may not use this file except in compliance with the License.
|
|
*/
|
|
import '@testing-library/jest-dom';
|
|
|
|
import { coreAdministrationManifest } from '@cloudbeaver/core-administration';
|
|
import { coreAppManifest } from '@cloudbeaver/core-app';
|
|
import { coreAuthenticationManifest } from '@cloudbeaver/core-authentication';
|
|
import { mockAuthentication } from '@cloudbeaver/core-authentication/dist/__custom_mocks__/mockAuthentication';
|
|
import { coreBrowserManifest } from '@cloudbeaver/core-browser';
|
|
import { coreClientActivityManifest } from '@cloudbeaver/core-client-activity';
|
|
import { coreConnectionsManifest } from '@cloudbeaver/core-connections';
|
|
import { coreDialogsManifest } from '@cloudbeaver/core-dialogs';
|
|
import { coreEventsManifest } from '@cloudbeaver/core-events';
|
|
import { coreLocalizationManifest } from '@cloudbeaver/core-localization';
|
|
import { coreNavigationTree } from '@cloudbeaver/core-navigation-tree';
|
|
import { coreProjectsManifest } from '@cloudbeaver/core-projects';
|
|
import { coreRootManifest, ServerConfigResource } from '@cloudbeaver/core-root';
|
|
import { createGQLEndpoint } from '@cloudbeaver/core-root/dist/__custom_mocks__/createGQLEndpoint';
|
|
import '@cloudbeaver/core-root/dist/__custom_mocks__/expectWebsocketClosedMessage';
|
|
import { mockAppInit } from '@cloudbeaver/core-root/dist/__custom_mocks__/mockAppInit';
|
|
import { mockGraphQL } from '@cloudbeaver/core-root/dist/__custom_mocks__/mockGraphQL';
|
|
import { mockServerConfig } from '@cloudbeaver/core-root/dist/__custom_mocks__/resolvers/mockServerConfig';
|
|
import { coreRoutingManifest } from '@cloudbeaver/core-routing';
|
|
import { coreSDKManifest } from '@cloudbeaver/core-sdk';
|
|
import { coreSettingsManifest } from '@cloudbeaver/core-settings';
|
|
import {
|
|
expectDeprecatedSettingMessage,
|
|
expectNoDeprecatedSettingMessage,
|
|
} from '@cloudbeaver/core-settings/dist/__custom_mocks__/expectDeprecatedSettingMessage';
|
|
import { coreStorageManifest } from '@cloudbeaver/core-storage';
|
|
import { coreUIManifest } from '@cloudbeaver/core-ui';
|
|
import { coreViewManifest } from '@cloudbeaver/core-view';
|
|
import { dataViewerManifest } from '@cloudbeaver/plugin-data-viewer';
|
|
import { datasourceContextSwitchPluginManifest } from '@cloudbeaver/plugin-datasource-context-switch';
|
|
import { navigationTabsPlugin } from '@cloudbeaver/plugin-navigation-tabs';
|
|
import { navigationTreePlugin } from '@cloudbeaver/plugin-navigation-tree';
|
|
import { objectViewerManifest } from '@cloudbeaver/plugin-object-viewer';
|
|
import { createApp } from '@cloudbeaver/tests-runner';
|
|
|
|
import { sqlEditorPluginManifest } from './manifest';
|
|
import { SqlEditorSettingsService } from './SqlEditorSettingsService';
|
|
|
|
const endpoint = createGQLEndpoint();
|
|
const server = mockGraphQL(...mockAppInit(endpoint), ...mockAuthentication(endpoint));
|
|
const app = createApp(
|
|
sqlEditorPluginManifest,
|
|
coreLocalizationManifest,
|
|
coreEventsManifest,
|
|
coreRootManifest,
|
|
coreSDKManifest,
|
|
coreBrowserManifest,
|
|
coreSettingsManifest,
|
|
coreViewManifest,
|
|
coreStorageManifest,
|
|
coreAuthenticationManifest,
|
|
coreProjectsManifest,
|
|
coreUIManifest,
|
|
coreRoutingManifest,
|
|
coreAdministrationManifest,
|
|
coreConnectionsManifest,
|
|
coreDialogsManifest,
|
|
coreNavigationTree,
|
|
coreAppManifest,
|
|
datasourceContextSwitchPluginManifest,
|
|
navigationTreePlugin,
|
|
navigationTabsPlugin,
|
|
objectViewerManifest,
|
|
dataViewerManifest,
|
|
coreClientActivityManifest,
|
|
);
|
|
|
|
const testValueNew = 1;
|
|
const testValueDeprecated = 2;
|
|
|
|
const deprecatedSettings = {
|
|
'core.app.sqlEditor.maxFileSize': testValueDeprecated,
|
|
};
|
|
|
|
const newSettings = {
|
|
...deprecatedSettings,
|
|
'plugin.sql-editor.maxFileSize': testValueNew,
|
|
};
|
|
|
|
test('New settings override deprecated settings', async () => {
|
|
const settings = app.injector.getServiceByClass(SqlEditorSettingsService);
|
|
const config = app.injector.getServiceByClass(ServerConfigResource);
|
|
|
|
server.use(endpoint.query('serverConfig', mockServerConfig(newSettings)));
|
|
|
|
await config.refresh();
|
|
|
|
expect(settings.maxFileSize).toBe(testValueNew);
|
|
expectNoDeprecatedSettingMessage();
|
|
});
|
|
|
|
test('Deprecated settings are used if new settings are not defined', async () => {
|
|
const settings = app.injector.getServiceByClass(SqlEditorSettingsService);
|
|
const config = app.injector.getServiceByClass(ServerConfigResource);
|
|
|
|
server.use(endpoint.query('serverConfig', mockServerConfig(deprecatedSettings)));
|
|
|
|
await config.refresh();
|
|
|
|
expect(settings.maxFileSize).toBe(testValueDeprecated);
|
|
expectDeprecatedSettingMessage();
|
|
});
|