blob: 36ebb9f7cb1a990719fc51c6da911c4457956456 [file] [log] [blame]
Dmitrii Filippov701a2522020-04-22 11:25:02 +02001/**
2 * @license
Ben Rohlfs94fcbbc2022-05-27 10:45:03 +02003 * Copyright 2020 Google LLC
4 * SPDX-License-Identifier: Apache-2.0
Dmitrii Filippov701a2522020-04-22 11:25:02 +02005 */
Chris Poucetf17f1b1b2021-11-24 14:02:46 +01006import {create, Registry, Finalizable} from '../services/registry';
Chris Poucetd3f52fd2021-11-29 23:16:39 +01007import {AppContext} from '../services/app-context';
Chris Poucetf17f1b1b2021-11-24 14:02:46 +01008import {AuthService} from '../services/gr-auth/gr-auth';
Milutin Kristofic55f42bf2020-08-07 15:27:54 +02009import {FlagsService} from '../services/flags/flags';
10import {grReportingMock} from '../services/gr-reporting/gr-reporting_mock';
Dmitrii Filippov701a2522020-04-22 11:25:02 +020011
Milutin Kristofic55f42bf2020-08-07 15:27:54 +020012class MockFlagsService implements FlagsService {
13 isEnabled() {
Dmitrii Filippov701a2522020-04-22 11:25:02 +020014 return false;
15 }
16
Chris Poucet55cbccb2021-11-16 03:17:06 +010017 finalize() {}
18
Dmitrii Filippov701a2522020-04-22 11:25:02 +020019 /**
Ben Rohlfsf00a6cc2022-03-02 12:03:41 +010020 * @return array of all enabled experiments.
Dmitrii Filippov701a2522020-04-22 11:25:02 +020021 */
22 get enabledExperiments() {
23 return [];
24 }
25}
26
Milutin Kristofic55f42bf2020-08-07 15:27:54 +020027class MockAuthService implements AuthService {
28 clearCache() {}
Milutin Kristofic0f1e0692020-07-21 12:21:58 +020029
30 get isAuthed() {
31 return false;
32 }
33
34 authCheck() {
35 return Promise.resolve(false);
36 }
Milutin Kristofic55f42bf2020-08-07 15:27:54 +020037
38 baseUrl = '';
39
40 setup() {}
41
Chris Poucet55cbccb2021-11-16 03:17:06 +010042 finalize() {}
43
Milutin Kristofic55f42bf2020-08-07 15:27:54 +020044 fetch() {
45 const blob = new Blob();
46 const init = {status: 200, statusText: 'Ack'};
47 const response = new Response(blob, init);
48 return Promise.resolve(response);
49 }
Milutin Kristofic0f1e0692020-07-21 12:21:58 +020050}
51
Dmitrii Filippov701a2522020-04-22 11:25:02 +020052// Setup mocks for appContext.
53// This is a temporary solution
54// TODO(dmfilippov): find a better solution for gr-diff
Chris Poucetd3f52fd2021-11-29 23:16:39 +010055export function createDiffAppContext(): AppContext & Finalizable {
Chris Poucetf17f1b1b2021-11-24 14:02:46 +010056 const appRegistry: Registry<AppContext> = {
57 flagsService: (_ctx: Partial<AppContext>) => new MockFlagsService(),
58 authService: (_ctx: Partial<AppContext>) => new MockAuthService(),
59 reportingService: (_ctx: Partial<AppContext>) => grReportingMock,
60 eventEmitter: (_ctx: Partial<AppContext>) => {
61 throw new Error('eventEmitter is not implemented');
62 },
63 restApiService: (_ctx: Partial<AppContext>) => {
64 throw new Error('restApiService is not implemented');
65 },
Chris Poucetf17f1b1b2021-11-24 14:02:46 +010066 };
Chris Poucetd3f52fd2021-11-29 23:16:39 +010067 return create<AppContext>(appRegistry);
Dmitrii Filippov701a2522020-04-22 11:25:02 +020068}