Aktualisiere Versionsnummer auf 3.1.0 in README.md, package.json, package-lock.json und package-solution.json. Füge CurrentNavigationSettingsProvider hinzu und integriere zugehörige Tests.

This commit is contained in:
Torsten Brendgen
2026-08-18 17:13:33 +02:00
parent beaa3ce21d
commit c0e7c316e3
9 changed files with 173 additions and 9 deletions
+18 -1
View File
@@ -9,8 +9,9 @@ function assert(condition: boolean, message: string): void {
}
const providers: Array<ISettingsProvider<any>> = getSettingsProviders(); // tslint:disable-line:no-any
assert(providers.length === 3, 'Genau drei Provider werden erwartet.');
assert(providers.length === 4, 'Genau vier Provider werden erwartet.');
assert(!!getSettingsProvider('megamenu'), 'MegaMenu-Provider fehlt.');
assert(!!getSettingsProvider('currentnavigation'), 'CurrentNavigation-Provider fehlt.');
assert(!!getSettingsProvider('custombranding'), 'CustomBranding-Provider fehlt.');
assert(!!getSettingsProvider('expiryindicator'), 'ExpiryIndicator-Provider fehlt.');
@@ -31,6 +32,22 @@ assert(normalizedMega.menuMode === 'megaMenu', 'MegaMenu Modus-Fallback fehlt.')
assert(normalizedMega.portalSettings.providerKey === 'megamenu', 'MegaMenu-Vertragsmarker fehlt.');
assert(normalizedMega.unknownFuture === 'keep', 'Unbekannte MegaMenu-Properties gehen verloren.');
const current: ISettingsProvider<any> = getSettingsProvider('currentnavigation'); // tslint:disable-line:no-any
assert(!!current.storage.action, 'CurrentNavigation-Aktivierungsdefinition fehlt.');
assert(current.storage.action.name === 'CurrentNavigation', 'CurrentNavigation Action-Name ist nicht stabil.');
assert(current.storage.action.sequence === 110, 'CurrentNavigation Action-Sequenz ist nicht stabil.');
const normalizedCurrent: any = current.normalize({ // tslint:disable-line:no-any
cacheMinutes: 5000, cacheVersion: '', maxDepth: 99, showRoot: true, future: 'keep'
});
assert(normalizedCurrent.cacheMinutes === 1440, 'CurrentNavigation Cache-Maximum greift nicht.');
assert(normalizedCurrent.cacheVersion === '1', 'CurrentNavigation Cache-Fallback fehlt.');
assert(normalizedCurrent.maxDepth === 8, 'CurrentNavigation Tiefenlimit greift nicht.');
assert(normalizedCurrent.showRoot === true, 'CurrentNavigation Root-Anzeige geht verloren.');
assert(normalizedCurrent.future === 'keep', 'Unbekannte CurrentNavigation-Properties gehen verloren.');
const invalidCurrent: any = current.createDefault(); // tslint:disable-line:no-any
invalidCurrent.termSetName = 'Nur ein Name';
assert(current.validate(invalidCurrent).length > 0, 'CurrentNavigation muss eine Termset-ID verlangen.');
const branding: ISettingsProvider<any> = getSettingsProvider('custombranding'); // tslint:disable-line:no-any
assert(!!branding.storage.action, 'CustomBranding-Aktivierungsdefinition fehlt.');
assert(branding.storage.action.name === 'CustomBranding', 'CustomBranding Action-Name ist nicht stabil.');
+2 -2
View File
@@ -21,8 +21,8 @@ var sourceFiles = [
'src/ui/PortalSettingsApp.ts'
].map(read).join('\n');
assert(packageJson.version === '3.0.4', 'Package-Version ist nicht 3.0.4.');
assert(solution.version === '3.0.4.0', 'Solution-Version ist nicht 3.0.4.0.');
assert(packageJson.version === '3.1.0', 'Package-Version ist nicht 3.1.0.');
assert(solution.version === '3.1.0.0', 'Solution-Version ist nicht 3.1.0.0.');
assert(!solution.features, 'Alte ASPX-Feature-Assets sind noch registriert.');
assert(!!config.bundles['portal-settings-web-part'], 'WebPart-Bundle fehlt.');
assert(copyAssets.deployCdnPath === 'temp/deploy', 'Ship-Assets werden nicht nach temp/deploy geschrieben.');