From 39bf0625c7952984eb951764cf875fb2d80ec2e9 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 9 Jul 2021 13:41:50 +0200
Subject: [PATCH] clean up; add some test's

---
 .../src/lib/services/navigation.service.ts    | 20 +++++------
 .../src/lib/snackbar/snackbar.service.spec.ts | 36 ++++++++++++++++++-
 .../ui/src/lib/snackbar/snackbar.service.ts   |  8 +++++
 .../src/lib/wiedervorlage.service.spec.ts     |  4 ---
 .../src/lib/wiedervorlage.service.ts          |  6 +---
 5 files changed, 54 insertions(+), 20 deletions(-)

diff --git a/goofy-client/libs/tech-shared/src/lib/services/navigation.service.ts b/goofy-client/libs/tech-shared/src/lib/services/navigation.service.ts
index 34942ef99f..eec5cf07f0 100644
--- a/goofy-client/libs/tech-shared/src/lib/services/navigation.service.ts
+++ b/goofy-client/libs/tech-shared/src/lib/services/navigation.service.ts
@@ -45,15 +45,10 @@ export class NavigationService {
 	}
 
 	public getDecodedParam(paramName: string): string {
-		if (isEmptyObject(this.routeParameter$.value) || isUndefined(this.routeParameter$.value[paramName])) return undefined;
+		if (this.isParamPresent(paramName)) return undefined;
 		return NavigationService.decodeParamUrl(this.routeParameter$.value[paramName]);
 	}
 
-	public getDecodedUriParam(paramName: string): string {
-		if (isEmptyObject(this.routeParameter$.value) || isUndefined(this.routeParameter$.value[paramName])) return undefined;
-		return decodeURI(this.routeParameter$.value[paramName]);
-	}
-
 	static decodeParamUrl(encodedUrl: string): string {
 		let decodeUrl: string;
 
@@ -65,6 +60,15 @@ export class NavigationService {
 		return decodeUrl;
 	}
 
+	public getDecodedUriParam(paramName: string): string {
+		if (this.isParamPresent(paramName)) return undefined;
+		return decodeURI(this.routeParameter$.value[paramName]);
+	}
+
+	private isParamPresent(paramName: string): boolean {
+		return isEmptyObject(this.routeParameter$.value) || isUndefined(this.routeParameter$.value[paramName]);
+	}
+
 	static isVorgangListPage(params: Params): boolean {
 		return isEmptyObject(params);
 	}
@@ -80,8 +84,4 @@ export class NavigationService {
 	public navigateRelativeTo(relativePath: string, relativeTo: ActivatedRoute): void {
 		this.router.navigate([relativePath], { relativeTo });
 	}
-
-	public isStartPage(): boolean {
-		return isEmptyObject(this.routeParameter$.value);
-	}
 }
\ No newline at end of file
diff --git a/goofy-client/libs/ui/src/lib/snackbar/snackbar.service.spec.ts b/goofy-client/libs/ui/src/lib/snackbar/snackbar.service.spec.ts
index 60e14b061a..b6fec74780 100644
--- a/goofy-client/libs/ui/src/lib/snackbar/snackbar.service.spec.ts
+++ b/goofy-client/libs/ui/src/lib/snackbar/snackbar.service.spec.ts
@@ -1,11 +1,17 @@
 import { MatSnackBar } from '@angular/material/snack-bar';
+import { CommandResource } from '@goofy-client/command-shared';
 import { Mock, mock, useFromMock } from '@goofy-client/test-utils';
+import { createCommandResource } from 'libs/command-shared/test/command';
+import { SnackbarComponent } from './snackbar.component';
 import { SnackBarService } from './snackbar.service';
 
 describe('SnackBarService', () => {
-	let service;
+	let service: SnackBarService;
 	let snackBar: Mock<MatSnackBar>;
 
+	const commandResource: CommandResource = createCommandResource();
+	const message: string = 'Snackbar Message';
+
 	beforeEach(() => {
 		snackBar = mock(MatSnackBar);
 
@@ -15,4 +21,32 @@ describe('SnackBarService', () => {
 	it('should create', () => {
 		expect(service).toBeDefined();
 	})
+
+	describe('show snackbar', () => {
+
+		beforeEach(() => {
+			service.listenOnAction = jest.fn();
+			service.listenOnAfterDismissed = jest.fn();
+		})
+
+		it('should open from component', () => {
+			service.showSnackbar(commandResource, message);
+
+			expect(snackBar.openFromComponent).toHaveBeenCalledWith(SnackbarComponent, {
+				data: { message, commandResource }, duration: 10000,
+			});
+		})
+
+		it('should listen to snackbar action', () => {
+			service.showSnackbar(commandResource, message, null);
+
+			expect(service.listenOnAction).toHaveBeenCalledWith(null);
+		})
+
+		it('should listen to snackbar after dismissed', () => {
+			service.showSnackbar(commandResource, message, null);
+
+			expect(service.listenOnAfterDismissed).toHaveBeenCalled();
+		})
+	})
 })
\ No newline at end of file
diff --git a/goofy-client/libs/ui/src/lib/snackbar/snackbar.service.ts b/goofy-client/libs/ui/src/lib/snackbar/snackbar.service.ts
index 3414073899..9ad51872b4 100644
--- a/goofy-client/libs/ui/src/lib/snackbar/snackbar.service.ts
+++ b/goofy-client/libs/ui/src/lib/snackbar/snackbar.service.ts
@@ -26,10 +26,18 @@ export class SnackBarService {
 	}
 
 	private listenToActions(revokeAction: () => void): void {
+		this.listenOnAction(revokeAction);
+		this.listenOnAfterDismissed();
+	}
+
+	listenOnAction(revokeAction: () => void): void {
 		this.subscription = this.snackBarRef.onAction().subscribe(() => {
 			revokeAction();
 			this.closeSnackBar();
 		});
+	}
+
+	listenOnAfterDismissed() {
 		this.subscription.add(this.snackBarRef.afterDismissed().subscribe(() => this.closeSnackBar()));
 	}
 
diff --git a/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.spec.ts b/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.spec.ts
index 26649747bb..aff422929f 100644
--- a/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.spec.ts
+++ b/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.spec.ts
@@ -330,10 +330,6 @@ describe('WiedervorlageService', () => {
 
 		describe('to vorgang list', () => {
 
-			beforeEach(() => {
-				navigationService.isStartPage.mockReturnValue(true);
-			})
-
 			it('should clear list', () => {
 				service.onNavigation({});
 
diff --git a/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.ts b/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.ts
index 8fea481150..650360d772 100644
--- a/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.ts
+++ b/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.ts
@@ -120,7 +120,7 @@ export class WiedervorlageService implements OnDestroy {
 			this.submitInProgress$.next(createEmptyStateResource());
 			this.clearAttachmentList();
 		}
-		if (this.navigateToStartPage()) {
+		if (NavigationService.isVorgangListPage(params)) {
 			this.clearWiedervorlagenList();
 			this.submitInProgress$.next(createEmptyStateResource());
 			this.clearAttachmentList();
@@ -143,10 +143,6 @@ export class WiedervorlageService implements OnDestroy {
 		return isUndefined(params[WiedervorlageService.encodedWiedervorlageUriParam] && !isUndefined(params[VorgangService.VORGANG_WITH_EINGANG_URL]));
 	}
 
-	private navigateToStartPage(): boolean {
-		return this.navigationService.isStartPage();
-	}
-
 	private getWiedervorlageUri(): ResourceUri {
 		return this.navigationService.getDecodedParam(WiedervorlageService.encodedWiedervorlageUriParam);
 	}
-- 
GitLab