From b2209e5f5a135b12fa7ecc132230119c13caf9b0 Mon Sep 17 00:00:00 2001 From: D048415 Date: Wed, 31 Jul 2024 12:20:24 +0200 Subject: [PATCH] refactoring of VersionInfo.load() usage --- packages/preview-middleware-client/src/adp/init.ts | 4 ++-- .../src/cpe/connector-service.ts | 4 ++-- .../preview-middleware-client/src/cpe/outline/nodes.ts | 4 ++-- .../src/flp/WorkspaceConnector.ts | 4 ++-- packages/preview-middleware-client/src/flp/init.ts | 4 ++-- .../src/flp/initConnectors.ts | 4 ++-- .../test/unit/adp/init.test.ts | 8 ++++---- .../test/unit/cpe/connector-service.test.ts | 4 ++-- .../test/unit/cpe/outline/nodes.test.ts | 2 +- .../test/unit/flp/WorkspaceConnector.test.ts | 8 ++++---- .../test/unit/flp/init.test.ts | 10 +++++----- .../test/unit/flp/initConnectors.test.ts | 4 ++-- packages/preview-middleware-client/types/global.d.ts | 2 +- 13 files changed, 31 insertions(+), 31 deletions(-) diff --git a/packages/preview-middleware-client/src/adp/init.ts b/packages/preview-middleware-client/src/adp/init.ts index 754f962098..b48d1f0161 100644 --- a/packages/preview-middleware-client/src/adp/init.ts +++ b/packages/preview-middleware-client/src/adp/init.ts @@ -14,10 +14,10 @@ import VersionInfo from 'sap/ui/VersionInfo'; import { getUI5VersionValidationMessage } from './ui5-version-utils'; import UI5Element from 'sap/ui/dt/Element'; import { getError } from '../cpe/error-utils'; -import type { VersionInformation } from '../../types/global'; +import type {SingleVersionInfo} from '../../types/global'; export default async function (rta: RuntimeAuthoring) { - const version = (await VersionInfo.load() as VersionInformation)?.libraries?.find((lib) => lib.name === 'sap.ui.core')?.version as string; + const version = (await VersionInfo.load({library:'sap.ui.core'}) as SingleVersionInfo)?.version; const versionParts = version.split('.'); const minor = parseInt(versionParts[1], 10); const flexSettings = rta.getFlexSettings(); diff --git a/packages/preview-middleware-client/src/cpe/connector-service.ts b/packages/preview-middleware-client/src/cpe/connector-service.ts index e85a23496b..7ea4824cd8 100644 --- a/packages/preview-middleware-client/src/cpe/connector-service.ts +++ b/packages/preview-middleware-client/src/cpe/connector-service.ts @@ -1,7 +1,7 @@ import { ExternalAction, storageFileChanged } from '@sap-ux-private/control-property-editor-common'; import { ActionSenderFunction } from './types'; import VersionInfo from 'sap/ui/VersionInfo'; -import type { VersionInformation } from '../../types/global'; +import type {SingleVersionInfo} from '../../types/global'; /** * A Class of WorkspaceConnectorService @@ -13,7 +13,7 @@ export class WorkspaceConnectorService { * @param sendAction action sender function */ public async init(sendAction: ActionSenderFunction): Promise { - const version = (await VersionInfo.load() as VersionInformation)?.libraries?.find((lib) => lib.name === 'sap.ui.core')?.version ?? ''; + const version = (await VersionInfo.load({library:'sap.ui.core'}) as SingleVersionInfo)?.version; const versionParts = version.split('.'); const minor = parseInt(versionParts[1], 10); if (minor > 72) { diff --git a/packages/preview-middleware-client/src/cpe/outline/nodes.ts b/packages/preview-middleware-client/src/cpe/outline/nodes.ts index 3ff617dcbc..c5b713de27 100644 --- a/packages/preview-middleware-client/src/cpe/outline/nodes.ts +++ b/packages/preview-middleware-client/src/cpe/outline/nodes.ts @@ -3,7 +3,7 @@ import type { OutlineViewNode } from 'sap/ui/rta/command/OutlineService'; import type { Scenario } from 'sap/ui/fl/Scenario'; import { isEditable, isReuseComponent } from './utils'; import VersionInfo from 'sap/ui/VersionInfo'; -import type { VersionInformation } from '../../../types/global'; +import type {SingleVersionInfo} from '../../../types/global'; interface AdditionalData { text?: string; @@ -88,7 +88,7 @@ export async function transformNodes( ): Promise { const stack = [...input]; const items: OutlineNode[] = []; - const version = (await VersionInfo.load() as VersionInformation)?.libraries?.find((lib) => lib.name === 'sap.ui.core')?.version as string; + const version = (await VersionInfo.load({library:'sap.ui.core'}) as SingleVersionInfo)?.version; const versionParts = version.split('.'); const minor = parseInt(versionParts[1], 10); while (stack.length) { diff --git a/packages/preview-middleware-client/src/flp/WorkspaceConnector.ts b/packages/preview-middleware-client/src/flp/WorkspaceConnector.ts index 45ef80e3de..eb417b8303 100644 --- a/packages/preview-middleware-client/src/flp/WorkspaceConnector.ts +++ b/packages/preview-middleware-client/src/flp/WorkspaceConnector.ts @@ -2,7 +2,7 @@ import merge from 'sap/base/util/merge'; import ObjectStorageConnector from 'sap/ui/fl/write/api/connectors/ObjectStorageConnector'; import Layer from 'sap/ui/fl/Layer'; import VersionInfo from 'sap/ui/VersionInfo'; -import type { VersionInformation } from '../../types/global'; +import type {SingleVersionInfo} from '../../types/global'; import { CHANGES_API_PATH, FlexChange, getFlexSettings } from './common'; const connector = merge({}, ObjectStorageConnector, { @@ -70,7 +70,7 @@ const connector = merge({}, ObjectStorageConnector, { loadFeatures: async function () { const features = await ObjectStorageConnector.loadFeatures(); - const version = (await VersionInfo.load() as VersionInformation)?.libraries?.find((lib) => lib.name === 'sap.ui.core')?.version as string; + const version = (await VersionInfo.load({library:'sap.ui.core'}) as SingleVersionInfo)?.version; const [majorVersion, minorVersion] = version.split('.').map((v: string) => parseInt(v, 10)); features.isVariantAdaptationEnabled = majorVersion >= 1 && minorVersion >= 90; const settings = getFlexSettings(); diff --git a/packages/preview-middleware-client/src/flp/init.ts b/packages/preview-middleware-client/src/flp/init.ts index ef3cfa6443..a1b7954bcf 100644 --- a/packages/preview-middleware-client/src/flp/init.ts +++ b/packages/preview-middleware-client/src/flp/init.ts @@ -10,7 +10,7 @@ import { getManifestAppdescr } from '../adp/api-handler'; import VersionInfo from 'sap/ui/VersionInfo'; import { getError } from '../cpe/error-utils'; import initConnectors from './initConnectors'; -import type { VersionInformation } from '../../types/global'; +import type {SingleVersionInfo} from '../../types/global'; /** * SAPUI5 delivered namespaces from https://ui5.sap.com/#/api/sap @@ -270,7 +270,7 @@ export async function init({ const urlParams = new URLSearchParams(window.location.search); const container = sap?.ushell?.Container ?? sap.ui.require('sap/ushell/Container'); let scenario: string = ''; - const version = (await VersionInfo.load() as VersionInformation)?.libraries?.find((lib) => lib.name === 'sap.ui.core')?.version as string; + const version = (await VersionInfo.load({library:'sap.ui.core'}) as SingleVersionInfo)?.version; // Register RTA if configured if (flex) { const flexSettings = JSON.parse(flex) as FlexSettings; diff --git a/packages/preview-middleware-client/src/flp/initConnectors.ts b/packages/preview-middleware-client/src/flp/initConnectors.ts index 29992e4ee3..5159787ece 100644 --- a/packages/preview-middleware-client/src/flp/initConnectors.ts +++ b/packages/preview-middleware-client/src/flp/initConnectors.ts @@ -1,5 +1,5 @@ import VersionInfo from 'sap/ui/VersionInfo'; -import type { VersionInformation } from '../../types/global'; +import type {SingleVersionInfo} from '../../types/global'; /** * Initializes UI5 connectors based on the current UI5 version. @@ -12,7 +12,7 @@ import type { VersionInformation } from '../../types/global'; * intiConnectors(); // Simply call the function without any arguments. */ export default async function initConnectors(): Promise { - const version = (await VersionInfo.load() as VersionInformation)?.libraries?.find((lib) => lib.name === 'sap.ui.core')?.version as string; + const version = (await VersionInfo.load({library:'sap.ui.core'}) as SingleVersionInfo)?.version; const versionArray = version ? version.split('.') : ['2', '99']; const minor = parseInt(versionArray[1], 10); const major = parseInt(versionArray[0], 10); diff --git a/packages/preview-middleware-client/test/unit/adp/init.test.ts b/packages/preview-middleware-client/test/unit/adp/init.test.ts index 19049822ff..7b9e2f4bb1 100644 --- a/packages/preview-middleware-client/test/unit/adp/init.test.ts +++ b/packages/preview-middleware-client/test/unit/adp/init.test.ts @@ -65,7 +65,7 @@ describe('adp', () => { return { dispose: jest.fn(), sendAction: jest.fn() }; }); const enableTelemetry = jest.spyOn(common, 'enableTelemetry'); - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.118.1'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.118.1' }); await init(rtaMock as unknown as RuntimeAuthoring); @@ -93,7 +93,7 @@ describe('adp', () => { return { dispose: jest.fn(), sendAction: sendActionMock }; }); - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.70.0'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.70.0' }); await init(rtaMock as unknown as RuntimeAuthoring); @@ -133,7 +133,7 @@ describe('adp', () => { 'application-app-preview-component---fin.ar.lineitems.display.appView': mockUI5Element }); - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.123.1'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.123.1' }); await init(rtaMock as unknown as RuntimeAuthoring); @@ -172,7 +172,7 @@ describe('adp', () => { Element.registry.filter.mockReturnValue([mockUI5Element]); - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.118.1'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.118.1' }); await init(rtaMock as unknown as RuntimeAuthoring); diff --git a/packages/preview-middleware-client/test/unit/cpe/connector-service.test.ts b/packages/preview-middleware-client/test/unit/cpe/connector-service.test.ts index 0200b1bec4..2e42479bfd 100644 --- a/packages/preview-middleware-client/test/unit/cpe/connector-service.test.ts +++ b/packages/preview-middleware-client/test/unit/cpe/connector-service.test.ts @@ -13,7 +13,7 @@ describe('connector-service', () => { fetchMock.mockRestore(); }); test('init - ui5 > v1.72', async () => { - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.120.4'}] }); + VersionInfo.load.mockResolvedValue({ name: 'sap.ui.core', version: '1.120.4' }); const wsConnector = new WorkspaceConnectorService(); await wsConnector.init(sendActionMock); @@ -25,7 +25,7 @@ describe('connector-service', () => { }); test('init - ui5 < v1.72', async () => { - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.71.67'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.71.67' }); const wsConnector = new WorkspaceConnectorService(); await wsConnector.init(sendActionMock); diff --git a/packages/preview-middleware-client/test/unit/cpe/outline/nodes.test.ts b/packages/preview-middleware-client/test/unit/cpe/outline/nodes.test.ts index 362ff20fcd..5f688a23e8 100644 --- a/packages/preview-middleware-client/test/unit/cpe/outline/nodes.test.ts +++ b/packages/preview-middleware-client/test/unit/cpe/outline/nodes.test.ts @@ -34,7 +34,7 @@ describe('outline nodes', () => { }); beforeAll(() => { - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.118.1'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.118.1' }); }) describe('transformNodes', () => { diff --git a/packages/preview-middleware-client/test/unit/flp/WorkspaceConnector.test.ts b/packages/preview-middleware-client/test/unit/flp/WorkspaceConnector.test.ts index 09d51851d4..39f8959898 100644 --- a/packages/preview-middleware-client/test/unit/flp/WorkspaceConnector.test.ts +++ b/packages/preview-middleware-client/test/unit/flp/WorkspaceConnector.test.ts @@ -97,19 +97,19 @@ describe('flp/WorkspaceConnector', () => { }); test('version >= 1.90, no developerMode', async () => { - VersionInfo.load.mockResolvedValueOnce({ libraries: [{name: 'sap.ui.core', version: '1.118.1'}] }); + VersionInfo.load.mockResolvedValueOnce({name: 'sap.ui.core', version: '1.118.1' }); const features = await connector.loadFeatures(); expect(features.isVariantAdaptationEnabled).toBe(true); }); test('version < 1.90', async () => { - VersionInfo.load.mockResolvedValueOnce({ libraries: [{name: 'sap.ui.core', version: '1.89.3'}] }); + VersionInfo.load.mockResolvedValueOnce({name: 'sap.ui.core', version: '1.89.3' }); const features = await connector.loadFeatures(); expect(features.isVariantAdaptationEnabled).toBe(false); }); test('version >= 1.90, developerMode=true', async () => { - VersionInfo.load.mockResolvedValueOnce({ libraries: [{name: 'sap.ui.core', version: '1.118.1'}] }); + VersionInfo.load.mockResolvedValueOnce({name: 'sap.ui.core', version: '1.118.1' }); documentMock.getElementById.mockReturnValueOnce({ getAttribute: () => JSON.stringify({ developerMode: true }) }); @@ -118,7 +118,7 @@ describe('flp/WorkspaceConnector', () => { }); test('scenario=ADAPTATION_PROJECT', async () => { - VersionInfo.load.mockResolvedValueOnce({ libraries: [{name: 'sap.ui.core', version: '1.118.1'}] }); + VersionInfo.load.mockResolvedValueOnce({name: 'sap.ui.core', version: '1.118.1' }); documentMock.getElementById.mockReturnValueOnce({ getAttribute: () => JSON.stringify({ scenario: 'ADAPTATION_PROJECT' }) }); diff --git a/packages/preview-middleware-client/test/unit/flp/init.test.ts b/packages/preview-middleware-client/test/unit/flp/init.test.ts index b0fb8caf6a..f277daddbd 100644 --- a/packages/preview-middleware-client/test/unit/flp/init.test.ts +++ b/packages/preview-middleware-client/test/unit/flp/init.test.ts @@ -197,7 +197,7 @@ describe('flp/init', () => { }); test('nothing configured', async () => { - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.118.1'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.118.1' }); await init({}); expect(sapMock.ushell.Container.attachRendererCreatedEvent).not.toBeCalled(); expect(sapMock.ushell.Container.createRenderer).toBeCalledWith(undefined, true); @@ -209,7 +209,7 @@ describe('flp/init', () => { layer: 'CUSTOMER_BASE', pluginScript: 'my/script' }; - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.84.50'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.84.50' }); await init({ flex: JSON.stringify(flexSettings) }); expect(sapMock.ushell.Container.attachRendererCreatedEvent).toBeCalled(); expect(sapMock.ushell.Container.createRenderer).toBeCalledWith(undefined, true); @@ -247,7 +247,7 @@ describe('flp/init', () => { layer: 'CUSTOMER_BASE', pluginScript: 'my/script' }; - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.71.60'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.71.60' }); await init({ flex: JSON.stringify(flexSettings) }); expect(sapMock.ushell.Container.attachRendererCreatedEvent).toBeCalled(); expect(sapMock.ushell.Container.createRenderer).toBeCalledWith(undefined, true); @@ -282,7 +282,7 @@ describe('flp/init', () => { test('custom init module configured & ui5 version is 1.120.9', async () => { const customInit = 'my/app/test/integration/opaTests.qunit'; - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.120.9'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.120.9' }); await init({ customInit: customInit }); @@ -292,7 +292,7 @@ describe('flp/init', () => { test('custom init module configured & ui5 version is 2.0.0', async () => { const customInit = 'my/app/test/integration/opaTests.qunit'; - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '2.0.0'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '2.0.0' }); await init({ customInit: customInit }); diff --git a/packages/preview-middleware-client/test/unit/flp/initConnectors.test.ts b/packages/preview-middleware-client/test/unit/flp/initConnectors.test.ts index d6d35319ea..14ad8d6fee 100644 --- a/packages/preview-middleware-client/test/unit/flp/initConnectors.test.ts +++ b/packages/preview-middleware-client/test/unit/flp/initConnectors.test.ts @@ -9,7 +9,7 @@ describe('flp/initConnectors', () => { test('enables fake lrep connector when ui5 version is 1.71', async () => { sapMock.ui.version = '1.71.60'; - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.71.60'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.71.60' }); await initConnectors(); expect(sapMock.ui.require).toBeCalledWith( @@ -26,7 +26,7 @@ describe('flp/initConnectors', () => { test('defines a local connector for writing and applying changes and returns it', async () => { sapMock.ui.version = '1.120.4'; - VersionInfo.load.mockResolvedValue({ libraries: [{name: 'sap.ui.core', version: '1.120.4'}] }); + VersionInfo.load.mockResolvedValue({name: 'sap.ui.core', version: '1.120.4' }); await initConnectors(); diff --git a/packages/preview-middleware-client/types/global.d.ts b/packages/preview-middleware-client/types/global.d.ts index 3fa208482a..9dba1bd495 100644 --- a/packages/preview-middleware-client/types/global.d.ts +++ b/packages/preview-middleware-client/types/global.d.ts @@ -4,7 +4,7 @@ interface Window { }; } -type SingleVersionInfo = { +export type SingleVersionInfo = { /** * The name of the library or application */