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 { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';
|
||||||
import { Observable } from 'rxjs/internal/Observable';
|
import { Observable } from 'rxjs/internal/Observable';
|
||||||
import { AuthService } from '../auth/auth.service';
|
|
||||||
import { returnEndUserAgreementUrlTreeOnFalse } from '../shared/operators';
|
import { returnEndUserAgreementUrlTreeOnFalse } from '../shared/operators';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -9,8 +8,7 @@ import { returnEndUserAgreementUrlTreeOnFalse } from '../shared/operators';
|
|||||||
*/
|
*/
|
||||||
export abstract class AbstractEndUserAgreementGuard implements CanActivate {
|
export abstract class AbstractEndUserAgreementGuard implements CanActivate {
|
||||||
|
|
||||||
constructor(protected authService: AuthService,
|
constructor(protected router: Router) {
|
||||||
protected router: Router) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1,32 +1,30 @@
|
|||||||
import { EndUserAgreementService } from './end-user-agreement.service';
|
import { EndUserAgreementService } from './end-user-agreement.service';
|
||||||
import { Router, UrlTree } from '@angular/router';
|
import { Router, UrlTree } from '@angular/router';
|
||||||
import { AuthService } from '../auth/auth.service';
|
|
||||||
import { EndUserAgreementCookieGuard } from './end-user-agreement-cookie.guard';
|
import { EndUserAgreementCookieGuard } from './end-user-agreement-cookie.guard';
|
||||||
|
|
||||||
describe('EndUserAgreementCookieGuard', () => {
|
describe('EndUserAgreementCookieGuard', () => {
|
||||||
let guard: EndUserAgreementCookieGuard;
|
let guard: EndUserAgreementCookieGuard;
|
||||||
|
|
||||||
let endUserAgreementService: EndUserAgreementService;
|
let endUserAgreementService: EndUserAgreementService;
|
||||||
let authService: AuthService;
|
|
||||||
let router: Router;
|
let router: Router;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
endUserAgreementService = jasmine.createSpyObj('endUserAgreementService', {
|
endUserAgreementService = jasmine.createSpyObj('endUserAgreementService', {
|
||||||
isCookieAccepted: true
|
isCookieAccepted: true
|
||||||
});
|
});
|
||||||
authService = jasmine.createSpyObj('authService', ['setRedirectUrl']);
|
|
||||||
router = jasmine.createSpyObj('router', {
|
router = jasmine.createSpyObj('router', {
|
||||||
navigateByUrl: {},
|
navigateByUrl: {},
|
||||||
parseUrl: new UrlTree()
|
parseUrl: new UrlTree(),
|
||||||
|
createUrlTree: new UrlTree()
|
||||||
});
|
});
|
||||||
|
|
||||||
guard = new EndUserAgreementCookieGuard(endUserAgreementService, authService, router);
|
guard = new EndUserAgreementCookieGuard(endUserAgreementService, router);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('canActivate', () => {
|
describe('canActivate', () => {
|
||||||
describe('when the cookie has been accepted', () => {
|
describe('when the cookie has been accepted', () => {
|
||||||
it('should return true', (done) => {
|
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);
|
expect(result).toEqual(true);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -38,11 +36,9 @@ describe('EndUserAgreementCookieGuard', () => {
|
|||||||
(endUserAgreementService.isCookieAccepted as jasmine.Spy).and.returnValue(false);
|
(endUserAgreementService.isCookieAccepted as jasmine.Spy).and.returnValue(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should navigate the user with a redirect url', (done) => {
|
it('should return a UrlTree', (done) => {
|
||||||
const redirect = 'redirect/url';
|
guard.canActivate(undefined, Object.assign({ url: 'redirect' })).subscribe((result) => {
|
||||||
guard.canActivate(undefined, Object.assign({ url: redirect })).subscribe(() => {
|
expect(result).toEqual(jasmine.any(UrlTree));
|
||||||
expect(authService.setRedirectUrl).toHaveBeenCalledWith(redirect);
|
|
||||||
expect(router.navigateByUrl).toHaveBeenCalled();
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -3,7 +3,6 @@ import { AbstractEndUserAgreementGuard } from './abstract-end-user-agreement.gua
|
|||||||
import { Observable } from 'rxjs/internal/Observable';
|
import { Observable } from 'rxjs/internal/Observable';
|
||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
import { EndUserAgreementService } from './end-user-agreement.service';
|
import { EndUserAgreementService } from './end-user-agreement.service';
|
||||||
import { AuthService } from '../auth/auth.service';
|
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13,9 +12,8 @@ import { Router } from '@angular/router';
|
|||||||
export class EndUserAgreementCookieGuard extends AbstractEndUserAgreementGuard {
|
export class EndUserAgreementCookieGuard extends AbstractEndUserAgreementGuard {
|
||||||
|
|
||||||
constructor(protected endUserAgreementService: EndUserAgreementService,
|
constructor(protected endUserAgreementService: EndUserAgreementService,
|
||||||
protected authService: AuthService,
|
|
||||||
protected router: Router) {
|
protected router: Router) {
|
||||||
super(authService, router);
|
super(router);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -8,26 +8,25 @@ describe('EndUserAgreementGuard', () => {
|
|||||||
let guard: EndUserAgreementCurrentUserGuard;
|
let guard: EndUserAgreementCurrentUserGuard;
|
||||||
|
|
||||||
let endUserAgreementService: EndUserAgreementService;
|
let endUserAgreementService: EndUserAgreementService;
|
||||||
let authService: AuthService;
|
|
||||||
let router: Router;
|
let router: Router;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
endUserAgreementService = jasmine.createSpyObj('endUserAgreementService', {
|
endUserAgreementService = jasmine.createSpyObj('endUserAgreementService', {
|
||||||
hasCurrentUserAcceptedAgreement: observableOf(true)
|
hasCurrentUserAcceptedAgreement: observableOf(true)
|
||||||
});
|
});
|
||||||
authService = jasmine.createSpyObj('authService', ['setRedirectUrl']);
|
|
||||||
router = jasmine.createSpyObj('router', {
|
router = jasmine.createSpyObj('router', {
|
||||||
navigateByUrl: {},
|
navigateByUrl: {},
|
||||||
parseUrl: new UrlTree()
|
parseUrl: new UrlTree(),
|
||||||
|
createUrlTree: new UrlTree()
|
||||||
});
|
});
|
||||||
|
|
||||||
guard = new EndUserAgreementCurrentUserGuard(endUserAgreementService, authService, router);
|
guard = new EndUserAgreementCurrentUserGuard(endUserAgreementService, router);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('canActivate', () => {
|
describe('canActivate', () => {
|
||||||
describe('when the user has accepted the agreement', () => {
|
describe('when the user has accepted the agreement', () => {
|
||||||
it('should return true', (done) => {
|
it('should return true', (done) => {
|
||||||
guard.canActivate(undefined, undefined).subscribe((result) => {
|
guard.canActivate(undefined, Object.assign({ url: 'redirect' })).subscribe((result) => {
|
||||||
expect(result).toEqual(true);
|
expect(result).toEqual(true);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
@@ -39,11 +38,9 @@ describe('EndUserAgreementGuard', () => {
|
|||||||
(endUserAgreementService.hasCurrentUserAcceptedAgreement as jasmine.Spy).and.returnValue(observableOf(false));
|
(endUserAgreementService.hasCurrentUserAcceptedAgreement as jasmine.Spy).and.returnValue(observableOf(false));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should navigate the user with a redirect url', (done) => {
|
it('should return a UrlTree', (done) => {
|
||||||
const redirect = 'redirect/url';
|
guard.canActivate(undefined, Object.assign({ url: 'redirect' })).subscribe((result) => {
|
||||||
guard.canActivate(undefined, Object.assign({ url: redirect })).subscribe(() => {
|
expect(result).toEqual(jasmine.any(UrlTree));
|
||||||
expect(authService.setRedirectUrl).toHaveBeenCalledWith(redirect);
|
|
||||||
expect(router.navigateByUrl).toHaveBeenCalled();
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -2,7 +2,6 @@ import { Injectable } from '@angular/core';
|
|||||||
import { Observable } from 'rxjs/internal/Observable';
|
import { Observable } from 'rxjs/internal/Observable';
|
||||||
import { AbstractEndUserAgreementGuard } from './abstract-end-user-agreement.guard';
|
import { AbstractEndUserAgreementGuard } from './abstract-end-user-agreement.guard';
|
||||||
import { EndUserAgreementService } from './end-user-agreement.service';
|
import { EndUserAgreementService } from './end-user-agreement.service';
|
||||||
import { AuthService } from '../auth/auth.service';
|
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -12,9 +11,8 @@ import { Router } from '@angular/router';
|
|||||||
export class EndUserAgreementCurrentUserGuard extends AbstractEndUserAgreementGuard {
|
export class EndUserAgreementCurrentUserGuard extends AbstractEndUserAgreementGuard {
|
||||||
|
|
||||||
constructor(protected endUserAgreementService: EndUserAgreementService,
|
constructor(protected endUserAgreementService: EndUserAgreementService,
|
||||||
protected authService: AuthService,
|
|
||||||
protected router: Router) {
|
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
|
* 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) =>
|
export const returnEndUserAgreementUrlTreeOnFalse = (router: Router, redirect: string) =>
|
||||||
(source: Observable<boolean>): Observable<boolean | UrlTree> =>
|
(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 { NotificationsService } from '../../shared/notifications/notifications.service';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { AuthService } from '../../core/auth/auth.service';
|
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 { of as observableOf } from 'rxjs';
|
||||||
import { Store } from '@ngrx/store';
|
import { Store } from '@ngrx/store';
|
||||||
import { By } from '@angular/platform-browser';
|
import { By } from '@angular/platform-browser';
|
||||||
import { LogOutAction } from '../../core/auth/auth.actions';
|
import { LogOutAction } from '../../core/auth/auth.actions';
|
||||||
|
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
|
||||||
|
|
||||||
describe('EndUserAgreementComponent', () => {
|
describe('EndUserAgreementComponent', () => {
|
||||||
let component: EndUserAgreementComponent;
|
let component: EndUserAgreementComponent;
|
||||||
@@ -20,6 +21,7 @@ describe('EndUserAgreementComponent', () => {
|
|||||||
let authService: AuthService;
|
let authService: AuthService;
|
||||||
let store;
|
let store;
|
||||||
let router: Router;
|
let router: Router;
|
||||||
|
let route: ActivatedRoute;
|
||||||
|
|
||||||
let redirectUrl;
|
let redirectUrl;
|
||||||
|
|
||||||
@@ -32,11 +34,15 @@ describe('EndUserAgreementComponent', () => {
|
|||||||
});
|
});
|
||||||
notificationsService = jasmine.createSpyObj('notificationsService', ['success', 'error']);
|
notificationsService = jasmine.createSpyObj('notificationsService', ['success', 'error']);
|
||||||
authService = jasmine.createSpyObj('authService', {
|
authService = jasmine.createSpyObj('authService', {
|
||||||
isAuthenticated: observableOf(true),
|
isAuthenticated: observableOf(true)
|
||||||
getRedirectUrl: observableOf(redirectUrl)
|
|
||||||
});
|
});
|
||||||
store = jasmine.createSpyObj('store', ['dispatch']);
|
store = jasmine.createSpyObj('store', ['dispatch']);
|
||||||
router = jasmine.createSpyObj('router', ['navigate', 'navigateByUrl']);
|
router = jasmine.createSpyObj('router', ['navigate', 'navigateByUrl']);
|
||||||
|
route = Object.assign(new ActivatedRouteStub(), {
|
||||||
|
queryParams: observableOf({
|
||||||
|
redirect: redirectUrl
|
||||||
|
})
|
||||||
|
}) as any;
|
||||||
}
|
}
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
@@ -49,7 +55,8 @@ describe('EndUserAgreementComponent', () => {
|
|||||||
{ provide: NotificationsService, useValue: notificationsService },
|
{ provide: NotificationsService, useValue: notificationsService },
|
||||||
{ provide: AuthService, useValue: authService },
|
{ provide: AuthService, useValue: authService },
|
||||||
{ provide: Store, useValue: store },
|
{ provide: Store, useValue: store },
|
||||||
{ provide: Router, useValue: router }
|
{ provide: Router, useValue: router },
|
||||||
|
{ provide: ActivatedRoute, useValue: route }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
|
Reference in New Issue
Block a user