Skip to content

Commit feac242

Browse files
committed
Fix NG0203 error in legacy bitstream guard tests by wrapping resolver calls with TestBed.runInInjectionContext()
1 parent 99db892 commit feac242

File tree

1 file changed

+51
-27
lines changed

1 file changed

+51
-27
lines changed

src/app/bitstream-page/legacy-bitstream-url-redirect.guard.spec.ts

Lines changed: 51 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { TestBed } from '@angular/core/testing';
2+
import { Router } from '@angular/router';
13
import { cold } from 'jasmine-marbles';
24
import { EMPTY } from 'rxjs';
35

6+
import { APP_CONFIG } from '../../config/app-config.interface';
47
import { PAGE_NOT_FOUND_PATH } from '../app-routing-paths';
58
import { BitstreamDataService } from '../core/data/bitstream-data.service';
69
import { RemoteData } from '../core/data/remote-data';
@@ -44,6 +47,15 @@ describe('legacyBitstreamURLRedirectGuard', () => {
4447
findByItemHandle: () => undefined
4548
} as any;
4649
resolver = legacyBitstreamURLRedirectGuard;
50+
51+
TestBed.configureTestingModule({
52+
providers: [
53+
{ provide: BitstreamDataService, useValue: bitstreamDataService },
54+
{ provide: HardRedirectService, useValue: hardRedirectService },
55+
{ provide: Router, useValue: router },
56+
{ provide: APP_CONFIG, useValue: { ui: { nameSpace: '/' } } }
57+
]
58+
});
4759
});
4860

4961
describe(`resolve`, () => {
@@ -60,12 +72,14 @@ describe('legacyBitstreamURLRedirectGuard', () => {
6072
});
6173
});
6274
it(`should call findByItemHandle with the handle, sequence id, and filename from the route`, () => {
63-
resolver(route, state, bitstreamDataService, hardRedirectService, router);
64-
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalledWith(
65-
`${route.params.prefix}/${route.params.suffix}`,
66-
route.params.sequence_id,
67-
route.params.filename
68-
);
75+
TestBed.runInInjectionContext(() => {
76+
resolver(route, state);
77+
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalledWith(
78+
`${route.params.prefix}/${route.params.suffix}`,
79+
route.params.sequence_id,
80+
route.params.filename
81+
);
82+
});
6983
});
7084
});
7185

@@ -85,12 +99,14 @@ describe('legacyBitstreamURLRedirectGuard', () => {
8599
});
86100
});
87101
it(`should call findByItemHandle with the handle and filename from the route, and the sequence ID from the queryParams`, () => {
88-
resolver(route, state, bitstreamDataService, hardRedirectService, router);
89-
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalledWith(
90-
`${route.params.prefix}/${route.params.suffix}`,
91-
route.queryParams.sequenceId,
92-
route.params.filename
93-
);
102+
TestBed.runInInjectionContext(() => {
103+
resolver(route, state);
104+
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalledWith(
105+
`${route.params.prefix}/${route.params.suffix}`,
106+
route.queryParams.sequenceId,
107+
route.params.filename
108+
);
109+
});
94110
});
95111
});
96112
describe(`when there's no sequenceId query parameter`, () => {
@@ -105,12 +121,14 @@ describe('legacyBitstreamURLRedirectGuard', () => {
105121
});
106122
});
107123
it(`should call findByItemHandle with the handle, and filename from the route`, () => {
108-
resolver(route, state, bitstreamDataService, hardRedirectService, router);
109-
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalledWith(
110-
`${route.params.prefix}/${route.params.suffix}`,
111-
undefined,
112-
route.params.filename
113-
);
124+
TestBed.runInInjectionContext(() => {
125+
resolver(route, state);
126+
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalledWith(
127+
`${route.params.prefix}/${route.params.suffix}`,
128+
undefined,
129+
route.params.filename
130+
);
131+
});
114132
});
115133
});
116134
});
@@ -122,9 +140,11 @@ describe('legacyBitstreamURLRedirectGuard', () => {
122140
b: remoteDataMocks.ResponsePending,
123141
c: remoteDataMocks.Error,
124142
}));
125-
resolver(route, state, bitstreamDataService, hardRedirectService, router).subscribe(() => {
126-
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalled();
127-
expect(router.createUrlTree).toHaveBeenCalledWith([PAGE_NOT_FOUND_PATH]);
143+
TestBed.runInInjectionContext(() => {
144+
resolver(route, state).subscribe(() => {
145+
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalled();
146+
expect(router.createUrlTree).toHaveBeenCalledWith([PAGE_NOT_FOUND_PATH]);
147+
});
128148
});
129149
});
130150

@@ -135,9 +155,11 @@ describe('legacyBitstreamURLRedirectGuard', () => {
135155
b: remoteDataMocks.ResponsePending,
136156
c: remoteDataMocks.NoContent,
137157
}));
138-
resolver(route, state, bitstreamDataService, hardRedirectService, router).subscribe(() => {
139-
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalled();
140-
expect(router.createUrlTree).toHaveBeenCalledWith([PAGE_NOT_FOUND_PATH]);
158+
TestBed.runInInjectionContext(() => {
159+
resolver(route, state).subscribe(() => {
160+
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalled();
161+
expect(router.createUrlTree).toHaveBeenCalledWith([PAGE_NOT_FOUND_PATH]);
162+
});
141163
});
142164
});
143165

@@ -148,9 +170,11 @@ describe('legacyBitstreamURLRedirectGuard', () => {
148170
b: remoteDataMocks.ResponsePending,
149171
c: remoteDataMocks.Success,
150172
}));
151-
resolver(route, state, bitstreamDataService, hardRedirectService, router).subscribe(() => {
152-
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalled();
153-
expect(hardRedirectService.redirect).toHaveBeenCalledWith(new URL(`/bitstreams/${bitstream.uuid}/download`, window.location.origin).href, 301);
173+
TestBed.runInInjectionContext(() => {
174+
resolver(route, state).subscribe(() => {
175+
expect(bitstreamDataService.findByItemHandle).toHaveBeenCalled();
176+
expect(hardRedirectService.redirect).toHaveBeenCalledWith(new URL(`/bitstreams/${bitstream.uuid}/download`, window.location.origin).href, 301);
177+
});
154178
});
155179
});
156180
});

0 commit comments

Comments
 (0)