mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
72541: Fix tests, remove redundant injection and added JSDocs
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';
|
||||
import { Observable } from 'rxjs/internal/Observable';
|
||||
import { AuthService } from '../auth/auth.service';
|
||||
import { returnEndUserAgreementUrlTreeOnFalse } from '../shared/operators';
|
||||
|
||||
/**
|
||||
@@ -9,8 +8,7 @@ import { returnEndUserAgreementUrlTreeOnFalse } from '../shared/operators';
|
||||
*/
|
||||
export abstract class AbstractEndUserAgreementGuard implements CanActivate {
|
||||
|
||||
constructor(protected authService: AuthService,
|
||||
protected router: Router) {
|
||||
constructor(protected router: Router) {
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1,32 +1,30 @@
|
||||
import { EndUserAgreementService } from './end-user-agreement.service';
|
||||
import { Router, UrlTree } from '@angular/router';
|
||||
import { AuthService } from '../auth/auth.service';
|
||||
import { EndUserAgreementCookieGuard } from './end-user-agreement-cookie.guard';
|
||||
|
||||
describe('EndUserAgreementCookieGuard', () => {
|
||||
let guard: EndUserAgreementCookieGuard;
|
||||
|
||||
let endUserAgreementService: EndUserAgreementService;
|
||||
let authService: AuthService;
|
||||
let router: Router;
|
||||
|
||||
beforeEach(() => {
|
||||
endUserAgreementService = jasmine.createSpyObj('endUserAgreementService', {
|
||||
isCookieAccepted: true
|
||||
});
|
||||
authService = jasmine.createSpyObj('authService', ['setRedirectUrl']);
|
||||
router = jasmine.createSpyObj('router', {
|
||||
navigateByUrl: {},
|
||||
parseUrl: new UrlTree()
|
||||
parseUrl: new UrlTree(),
|
||||
createUrlTree: new UrlTree()
|
||||
});
|
||||
|
||||
guard = new EndUserAgreementCookieGuard(endUserAgreementService, authService, router);
|
||||
guard = new EndUserAgreementCookieGuard(endUserAgreementService, router);
|
||||
});
|
||||
|
||||
describe('canActivate', () => {
|
||||
describe('when the cookie has been accepted', () => {
|
||||
it('should return true', (done) => {
|
||||
guard.canActivate(undefined, undefined).subscribe((result) => {
|
||||
guard.canActivate(undefined, { url: Object.assign({ url: 'redirect' }) } as any).subscribe((result) => {
|
||||
expect(result).toEqual(true);
|
||||
done();
|
||||
});
|
||||
@@ -38,11 +36,9 @@ describe('EndUserAgreementCookieGuard', () => {
|
||||
(endUserAgreementService.isCookieAccepted as jasmine.Spy).and.returnValue(false);
|
||||
});
|
||||
|
||||
it('should navigate the user with a redirect url', (done) => {
|
||||
const redirect = 'redirect/url';
|
||||
guard.canActivate(undefined, Object.assign({ url: redirect })).subscribe(() => {
|
||||
expect(authService.setRedirectUrl).toHaveBeenCalledWith(redirect);
|
||||
expect(router.navigateByUrl).toHaveBeenCalled();
|
||||
it('should return a UrlTree', (done) => {
|
||||
guard.canActivate(undefined, Object.assign({ url: 'redirect' })).subscribe((result) => {
|
||||
expect(result).toEqual(jasmine.any(UrlTree));
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@@ -3,7 +3,6 @@ import { AbstractEndUserAgreementGuard } from './abstract-end-user-agreement.gua
|
||||
import { Observable } from 'rxjs/internal/Observable';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
import { EndUserAgreementService } from './end-user-agreement.service';
|
||||
import { AuthService } from '../auth/auth.service';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
/**
|
||||
@@ -13,9 +12,8 @@ import { Router } from '@angular/router';
|
||||
export class EndUserAgreementCookieGuard extends AbstractEndUserAgreementGuard {
|
||||
|
||||
constructor(protected endUserAgreementService: EndUserAgreementService,
|
||||
protected authService: AuthService,
|
||||
protected router: Router) {
|
||||
super(authService, router);
|
||||
super(router);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -8,26 +8,25 @@ describe('EndUserAgreementGuard', () => {
|
||||
let guard: EndUserAgreementCurrentUserGuard;
|
||||
|
||||
let endUserAgreementService: EndUserAgreementService;
|
||||
let authService: AuthService;
|
||||
let router: Router;
|
||||
|
||||
beforeEach(() => {
|
||||
endUserAgreementService = jasmine.createSpyObj('endUserAgreementService', {
|
||||
hasCurrentUserAcceptedAgreement: observableOf(true)
|
||||
});
|
||||
authService = jasmine.createSpyObj('authService', ['setRedirectUrl']);
|
||||
router = jasmine.createSpyObj('router', {
|
||||
navigateByUrl: {},
|
||||
parseUrl: new UrlTree()
|
||||
parseUrl: new UrlTree(),
|
||||
createUrlTree: new UrlTree()
|
||||
});
|
||||
|
||||
guard = new EndUserAgreementCurrentUserGuard(endUserAgreementService, authService, router);
|
||||
guard = new EndUserAgreementCurrentUserGuard(endUserAgreementService, router);
|
||||
});
|
||||
|
||||
describe('canActivate', () => {
|
||||
describe('when the user has accepted the agreement', () => {
|
||||
it('should return true', (done) => {
|
||||
guard.canActivate(undefined, undefined).subscribe((result) => {
|
||||
guard.canActivate(undefined, Object.assign({ url: 'redirect' })).subscribe((result) => {
|
||||
expect(result).toEqual(true);
|
||||
done();
|
||||
});
|
||||
@@ -39,11 +38,9 @@ describe('EndUserAgreementGuard', () => {
|
||||
(endUserAgreementService.hasCurrentUserAcceptedAgreement as jasmine.Spy).and.returnValue(observableOf(false));
|
||||
});
|
||||
|
||||
it('should navigate the user with a redirect url', (done) => {
|
||||
const redirect = 'redirect/url';
|
||||
guard.canActivate(undefined, Object.assign({ url: redirect })).subscribe(() => {
|
||||
expect(authService.setRedirectUrl).toHaveBeenCalledWith(redirect);
|
||||
expect(router.navigateByUrl).toHaveBeenCalled();
|
||||
it('should return a UrlTree', (done) => {
|
||||
guard.canActivate(undefined, Object.assign({ url: 'redirect' })).subscribe((result) => {
|
||||
expect(result).toEqual(jasmine.any(UrlTree));
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
@@ -2,7 +2,6 @@ import { Injectable } from '@angular/core';
|
||||
import { Observable } from 'rxjs/internal/Observable';
|
||||
import { AbstractEndUserAgreementGuard } from './abstract-end-user-agreement.guard';
|
||||
import { EndUserAgreementService } from './end-user-agreement.service';
|
||||
import { AuthService } from '../auth/auth.service';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
/**
|
||||
@@ -12,9 +11,8 @@ import { Router } from '@angular/router';
|
||||
export class EndUserAgreementCurrentUserGuard extends AbstractEndUserAgreementGuard {
|
||||
|
||||
constructor(protected endUserAgreementService: EndUserAgreementService,
|
||||
protected authService: AuthService,
|
||||
protected router: Router) {
|
||||
super(authService, router);
|
||||
super(router);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -195,7 +195,9 @@ export const returnUnauthorizedUrlTreeOnFalse = (router: Router) =>
|
||||
|
||||
/**
|
||||
* Operator that returns a UrlTree to the unauthorized page when the boolean received is false
|
||||
* @param router
|
||||
* @param router Router
|
||||
* @param redirect Redirect URL to add to the UrlTree. This is used to redirect back to the original route after the
|
||||
* user accepts the agreement.
|
||||
*/
|
||||
export const returnEndUserAgreementUrlTreeOnFalse = (router: Router, redirect: string) =>
|
||||
(source: Observable<boolean>): Observable<boolean | UrlTree> =>
|
||||
|
@@ -5,11 +5,12 @@ import { EndUserAgreementService } from '../../core/end-user-agreement/end-user-
|
||||
import { NotificationsService } from '../../shared/notifications/notifications.service';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { AuthService } from '../../core/auth/auth.service';
|
||||
import { Router } from '@angular/router';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { LogOutAction } from '../../core/auth/auth.actions';
|
||||
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
|
||||
|
||||
describe('EndUserAgreementComponent', () => {
|
||||
let component: EndUserAgreementComponent;
|
||||
@@ -20,6 +21,7 @@ describe('EndUserAgreementComponent', () => {
|
||||
let authService: AuthService;
|
||||
let store;
|
||||
let router: Router;
|
||||
let route: ActivatedRoute;
|
||||
|
||||
let redirectUrl;
|
||||
|
||||
@@ -32,11 +34,15 @@ describe('EndUserAgreementComponent', () => {
|
||||
});
|
||||
notificationsService = jasmine.createSpyObj('notificationsService', ['success', 'error']);
|
||||
authService = jasmine.createSpyObj('authService', {
|
||||
isAuthenticated: observableOf(true),
|
||||
getRedirectUrl: observableOf(redirectUrl)
|
||||
isAuthenticated: observableOf(true)
|
||||
});
|
||||
store = jasmine.createSpyObj('store', ['dispatch']);
|
||||
router = jasmine.createSpyObj('router', ['navigate', 'navigateByUrl']);
|
||||
route = Object.assign(new ActivatedRouteStub(), {
|
||||
queryParams: observableOf({
|
||||
redirect: redirectUrl
|
||||
})
|
||||
}) as any;
|
||||
}
|
||||
|
||||
beforeEach(async(() => {
|
||||
@@ -49,7 +55,8 @@ describe('EndUserAgreementComponent', () => {
|
||||
{ provide: NotificationsService, useValue: notificationsService },
|
||||
{ provide: AuthService, useValue: authService },
|
||||
{ provide: Store, useValue: store },
|
||||
{ provide: Router, useValue: router }
|
||||
{ provide: Router, useValue: router },
|
||||
{ provide: ActivatedRoute, useValue: route }
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
|
Reference in New Issue
Block a user