parent
ec73968949
commit
275e0cfc34
@ -1,17 +1,49 @@
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
import { CanActivateFn } from '@angular/router';
|
||||
|
||||
import { Router } from '@angular/router';
|
||||
import { AuthGuard } from './auth.guard';
|
||||
import { LocalStorageService } from './services/local-storage/local-storage.service';
|
||||
import { LoginModalService } from './services/login-modal/login-modal.service';
|
||||
|
||||
describe('authGuard', () => {
|
||||
const executeGuard: CanActivateFn = (...guardParameters) =>
|
||||
TestBed.runInInjectionContext(() => AuthGuard(...guardParameters));
|
||||
describe('AuthGuard', () => {
|
||||
let guard: AuthGuard;
|
||||
let localStorageServiceSpy: jasmine.SpyObj<LocalStorageService>;
|
||||
let routerSpy: jasmine.SpyObj<Router>;
|
||||
let loginModalServiceSpy: jasmine.SpyObj<LoginModalService>;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
localStorageServiceSpy = jasmine.createSpyObj('LocalStorageService', [
|
||||
'getToken',
|
||||
]);
|
||||
routerSpy = jasmine.createSpyObj('Router', ['navigate']);
|
||||
loginModalServiceSpy = jasmine.createSpyObj('LoginModalService', [
|
||||
'openModal',
|
||||
]);
|
||||
|
||||
TestBed.configureTestingModule({
|
||||
providers: [
|
||||
AuthGuard,
|
||||
{ provide: LocalStorageService, useValue: localStorageServiceSpy },
|
||||
{ provide: Router, useValue: routerSpy },
|
||||
{ provide: LoginModalService, useValue: loginModalServiceSpy },
|
||||
],
|
||||
});
|
||||
|
||||
guard = TestBed.inject(AuthGuard);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
||||
expect(executeGuard).toBeTruthy();
|
||||
it('should allow activation when token exists', () => {
|
||||
localStorageServiceSpy.getToken.and.returnValue('valid-token');
|
||||
const result = guard.canActivate();
|
||||
expect(result).toBeTrue();
|
||||
});
|
||||
|
||||
it('should deny activation and trigger redirect and modal when token is missing', async () => {
|
||||
localStorageServiceSpy.getToken.and.returnValue(null);
|
||||
routerSpy.navigate.and.returnValue(Promise.resolve(true));
|
||||
|
||||
const result = guard.canActivate();
|
||||
expect(result).toBeFalse();
|
||||
expect(routerSpy.navigate).toHaveBeenCalledWith(['/']);
|
||||
expect(loginModalServiceSpy.openModal).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
@ -1,13 +1,13 @@
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AutoCompleteService } from './auto-complete.service';
|
||||
import { AutocompleteService } from './auto-complete.service';
|
||||
|
||||
describe('AutoCompleteService', () => {
|
||||
let service: AutoCompleteService;
|
||||
describe('AutocompleteService', () => {
|
||||
let service: AutocompleteService;
|
||||
|
||||
beforeEach(() => {
|
||||
TestBed.configureTestingModule({});
|
||||
service = TestBed.inject(AutoCompleteService);
|
||||
service = TestBed.inject(AutocompleteService);
|
||||
});
|
||||
|
||||
it('should be created', () => {
|
@ -1,7 +1,7 @@
|
||||
import { HttpClient, HttpParams } from '@angular/common/http';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Observable } from 'rxjs';
|
||||
import { environment } from '../../environments/environment';
|
||||
import { environment } from '../../../environments/environment';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
@ -1,9 +1,9 @@
|
||||
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { switchMap } from 'rxjs';
|
||||
import { environment } from '../../environments/environment';
|
||||
import { AutocompleteService } from './auto-complete.service';
|
||||
import { Pin } from '../model/Pin';
|
||||
import { environment } from '../../../environments/environment';
|
||||
import { Pin } from '../../model/Pin';
|
||||
import { AutocompleteService } from '../auto-complete/auto-complete.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
@ -1,7 +1,7 @@
|
||||
import { HttpClient, HttpParams } from '@angular/common/http';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Observable } from 'rxjs';
|
||||
import { environment } from '../../environments/environment';
|
||||
import { environment } from '../../../environments/environment';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
Loading…
Reference in new issue