Commits

Tim Donohue authored and GitHub committed 157eedade48 Merge
Merge pull request #2288 from atmire/add-referrer-to-pageview-event-7.6.0-next

Add referrer to pageview event
No tags
gidlmaster

src/app/core/services/browser.referrer.service.spec.ts

Added
1 +import { of as observableOf } from 'rxjs';
2 +import { RouteService } from './route.service';
3 +import { BrowserReferrerService } from './browser.referrer.service';
4 +
5 +describe(`BrowserReferrerService`, () => {
6 + let service: BrowserReferrerService;
7 + const documentReferrer = 'https://www.referrer.com';
8 + const origin = 'https://www.dspace.org';
9 + let routeService: RouteService;
10 +
11 + beforeEach(() => {
12 + routeService = {
13 + getHistory: () => observableOf([])
14 + } as any;
15 + service = new BrowserReferrerService(
16 + { referrer: documentReferrer },
17 + routeService,
18 + { getCurrentOrigin: () => origin } as any
19 + );
20 + });
21 +
22 + describe(`getReferrer`, () => {
23 + describe(`when the history is an empty`, () => {
24 + beforeEach(() => {
25 + spyOn(routeService, 'getHistory').and.returnValue(observableOf([]));
26 + });
27 +
28 + it(`should return document.referrer`, (done: DoneFn) => {
29 + service.getReferrer().subscribe((emittedReferrer: string) => {
30 + expect(emittedReferrer).toBe(documentReferrer);
31 + done();
32 + });
33 + });
34 + });
35 +
36 + describe(`when the history only contains the current route`, () => {
37 + beforeEach(() => {
38 + spyOn(routeService, 'getHistory').and.returnValue(observableOf(['/current/route']));
39 + });
40 +
41 + it(`should return document.referrer`, (done: DoneFn) => {
42 + service.getReferrer().subscribe((emittedReferrer: string) => {
43 + expect(emittedReferrer).toBe(documentReferrer);
44 + done();
45 + });
46 + });
47 + });
48 +
49 + describe(`when the history contains multiple routes`, () => {
50 + const prevUrl = '/the/route/we/need';
51 + beforeEach(() => {
52 + spyOn(routeService, 'getHistory').and.returnValue(observableOf([
53 + '/first/route',
54 + '/second/route',
55 + prevUrl,
56 + '/current/route'
57 + ]));
58 + });
59 +
60 + it(`should return the last route before the current one combined with the origin from HardRedirectService`, (done: DoneFn) => {
61 + service.getReferrer().subscribe((emittedReferrer: string) => {
62 + expect(emittedReferrer).toBe(origin + prevUrl);
63 + done();
64 + });
65 + });
66 + });
67 + });
68 +});

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut