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