From 5a5fa1ac685fcde39fbb2c753d648f493dc2a77c Mon Sep 17 00:00:00 2001
From: Jonny Ngo Luong <jonnynl@stud.ntnu.no>
Date: Tue, 23 Feb 2021 22:18:53 +0100
Subject: [PATCH] feat: add /logout route in frontend for user logout (#25)

---
 client/src/app/app.component.html             |  1 +
 client/src/app/authentication/auth.service.ts |  1 +
 .../user-logout/user-logout.component.html    |  1 +
 .../user-logout/user-logout.component.scss    |  0
 .../user-logout/user-logout.component.spec.ts | 27 +++++++++++++++++++
 .../user-logout/user-logout.component.ts      | 17 ++++++++++++
 client/src/app/users/user.module.ts           |  4 ++-
 7 files changed, 50 insertions(+), 1 deletion(-)
 create mode 100644 client/src/app/users/user-logout/user-logout.component.html
 create mode 100644 client/src/app/users/user-logout/user-logout.component.scss
 create mode 100644 client/src/app/users/user-logout/user-logout.component.spec.ts
 create mode 100644 client/src/app/users/user-logout/user-logout.component.ts

diff --git a/client/src/app/app.component.html b/client/src/app/app.component.html
index 6ad5852..7f7773c 100644
--- a/client/src/app/app.component.html
+++ b/client/src/app/app.component.html
@@ -7,6 +7,7 @@
 		<a href="/register">/register</a>
 		<a href="/login">/login</a>
 		<a href="/profile">/profile</a>
+		<a href="/logout">/logout</a>
 	</nav>
 </div>
 
diff --git a/client/src/app/authentication/auth.service.ts b/client/src/app/authentication/auth.service.ts
index ce40111..838b8f6 100644
--- a/client/src/app/authentication/auth.service.ts
+++ b/client/src/app/authentication/auth.service.ts
@@ -66,6 +66,7 @@ export class AuthService {
   }
   logout() {
     localStorage.removeItem("token");
+    this.router.navigateByUrl("/")
   }
 
     /**
diff --git a/client/src/app/users/user-logout/user-logout.component.html b/client/src/app/users/user-logout/user-logout.component.html
new file mode 100644
index 0000000..c19d097
--- /dev/null
+++ b/client/src/app/users/user-logout/user-logout.component.html
@@ -0,0 +1 @@
+<p>user-logout works!</p>
diff --git a/client/src/app/users/user-logout/user-logout.component.scss b/client/src/app/users/user-logout/user-logout.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/client/src/app/users/user-logout/user-logout.component.spec.ts b/client/src/app/users/user-logout/user-logout.component.spec.ts
new file mode 100644
index 0000000..393de0a
--- /dev/null
+++ b/client/src/app/users/user-logout/user-logout.component.spec.ts
@@ -0,0 +1,27 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { HttpClientTestingModule } from '@angular/common/http/testing';
+import { RouterTestingModule } from '@angular/router/testing';
+import { UserLogoutComponent } from './user-logout.component';
+
+describe('UserLogoutComponent', () => {
+  let component: UserLogoutComponent;
+  let fixture: ComponentFixture<UserLogoutComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [ UserLogoutComponent ],
+      imports: [ HttpClientTestingModule, RouterTestingModule ]
+    })
+    .compileComponents();
+  });
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(UserLogoutComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/client/src/app/users/user-logout/user-logout.component.ts b/client/src/app/users/user-logout/user-logout.component.ts
new file mode 100644
index 0000000..e0e21b8
--- /dev/null
+++ b/client/src/app/users/user-logout/user-logout.component.ts
@@ -0,0 +1,17 @@
+import { Component, OnInit } from '@angular/core';
+import { AuthService } from 'src/app/authentication/auth.service';
+
+@Component({
+  selector: 'app-user-logout',
+  templateUrl: './user-logout.component.html',
+  styleUrls: ['./user-logout.component.scss']
+})
+export class UserLogoutComponent implements OnInit {
+
+  constructor(private authService: AuthService) { }
+
+  ngOnInit(): void {
+    this.authService.logout();
+  }
+
+}
diff --git a/client/src/app/users/user.module.ts b/client/src/app/users/user.module.ts
index 3356ea2..8d80789 100644
--- a/client/src/app/users/user.module.ts
+++ b/client/src/app/users/user.module.ts
@@ -5,6 +5,7 @@ import { FormsModule } from '@angular/forms';
 import { UserRegistrationFormComponent } from './user-registration-form/user-registration-form.component';
 import { UserProfileComponent } from './user-profile/user-profile.component';
 import { UserLoginFormComponent } from './user-login-form/user-login-form.component';
+import { UserLogoutComponent } from './user-logout/user-logout.component';
 
 
 
@@ -12,7 +13,8 @@ import { UserLoginFormComponent } from './user-login-form/user-login-form.compon
   declarations: [
     UserRegistrationFormComponent,
     UserProfileComponent,
-    UserLoginFormComponent
+    UserLoginFormComponent,
+    UserLogoutComponent
   ],
   imports: [
     CommonModule,
-- 
GitLab