blob: 570b50abb9138ef4d58d0dd2059f80d646df9f8a [file] [log] [blame]
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +01001/* eslint-disable @typescript-eslint/no-unused-vars */
2/**
3 * @license
Ben Rohlfs94fcbbc2022-05-27 10:45:03 +02004 * Copyright 2020 Google LLC
5 * SPDX-License-Identifier: Apache-2.0
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +01006 */
Ben Rohlfsa9d2cff2021-01-22 21:33:58 +01007import {RestApiService} from '../../services/gr-rest-api/gr-rest-api';
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +01008import {
9 AccountDetailInfo,
10 AccountExternalIdInfo,
11 AccountInfo,
12 ServerInfo,
13 ProjectInfo,
14 AccountCapabilityInfo,
15 SuggestedReviewerInfo,
16 GroupNameToGroupInfoMap,
17 ParsedJSON,
18 EditPreferencesInfo,
19 SshKeyInfo,
20 RepoName,
21 GpgKeyInfo,
22 PreferencesInfo,
23 EmailInfo,
24 ProjectAccessInfo,
25 CapabilityInfoMap,
26 ChangeInfo,
27 ProjectInfoWithName,
28 GroupInfo,
29 BranchInfo,
30 ConfigInfo,
31 EditInfo,
32 DashboardInfo,
Ben Rohlfsbfc688b2022-10-21 12:38:37 +020033 RepoAccessInfoMap,
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +010034 IncludedInInfo,
35 CommentInfo,
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +010036 PluginInfo,
37 DocResult,
38 ContributorAgreementInfo,
39 Password,
40 ProjectWatchInfo,
41 NameToProjectInfoMap,
42 GroupAuditEventInfo,
43 Base64FileContent,
44 TagInfo,
45 RelatedChangesInfo,
46 SubmittedTogetherInfo,
47 FilePathToDiffInfoMap,
48 BlameInfo,
49 ImagesForDiff,
50 ActionNameToActionInfoMap,
51 Hashtag,
52 FileNameToFileInfoMap,
53 TopMenuEntryInfo,
54 MergeableInfo,
55 CommitInfo,
56 GroupId,
57 GroupName,
58 UrlEncodedRepoName,
Dhruv Srivastavab0cebc12022-03-08 15:16:57 +010059 NumericChangeId,
Ben Rohlfs75b390c2022-04-04 14:56:06 +020060 PreferencesInput,
Ben Rohlfsba440822023-04-11 18:08:03 +020061 DraftInfo,
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +010062} from '../../types/common';
63import {DiffInfo, DiffPreferencesInfo} from '../../types/diff';
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +010064import {
65 createAccountDetailWithId,
66 createChange,
67 createCommit,
68 createConfig,
Ben Rohlfs8a875462023-02-27 10:33:21 +010069 createMergeable,
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +010070 createServerInfo,
Milutin Kristoficf4c04fb42021-03-10 16:41:19 +010071 createSubmittedTogetherInfo,
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +010072} from '../test-data-generators';
73import {
74 createDefaultDiffPrefs,
75 createDefaultEditPrefs,
Chris Poucetde94555a2023-08-14 11:42:06 +020076 createDefaultPreferences,
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +010077} from '../../constants/constants';
Ben Rohlfsa00ef282021-01-22 21:45:53 +010078import {ParsedChangeInfo} from '../../types/types';
Kamil Musinc8365a52024-02-08 13:43:32 +010079import {readJSONResponsePayload} from '../../elements/shared/gr-rest-api-interface/gr-rest-apis/gr-rest-api-helper';
Kamil Musin9bc65ff2024-02-20 17:15:11 +010080import {ErrorCallback} from '../../api/rest';
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +010081
82export const grRestApiMock: RestApiService = {
83 addAccountEmail(): Promise<Response> {
84 return Promise.resolve(new Response());
85 },
86 addAccountGPGKey(): Promise<Record<string, GpgKeyInfo>> {
87 return Promise.resolve({});
88 },
89 addAccountSSHKey(): Promise<SshKeyInfo> {
90 throw new Error('addAccountSSHKey() not implemented by RestApiMock.');
91 },
92 addToAttentionSet(): Promise<Response> {
93 return Promise.resolve(new Response());
94 },
95 applyFixSuggestion(): Promise<Response> {
96 return Promise.resolve(new Response());
97 },
Milutin Kristoficc4504932022-08-02 14:55:35 +020098 applyRobotFixSuggestion(): Promise<Response> {
99 return Promise.resolve(new Response());
100 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100101 awaitPendingDiffDrafts(): Promise<void> {
102 return Promise.resolve();
103 },
104 confirmEmail(): Promise<string | null> {
105 return Promise.resolve('');
106 },
107 createChange(): Promise<ChangeInfo | undefined> {
108 throw new Error('createChange() not implemented by RestApiMock.');
109 },
110 createGroup(): Promise<Response> {
111 return Promise.resolve(new Response());
112 },
113 createRepo(): Promise<Response> {
114 return Promise.resolve(new Response());
115 },
116 createRepoBranch(): Promise<Response> {
117 return Promise.resolve(new Response());
118 },
119 createRepoTag(): Promise<Response> {
120 return Promise.resolve(new Response());
121 },
Chris Poucet29f8ba82023-06-26 17:11:12 +0200122 deleteAccount(): Promise<Response> {
123 return Promise.resolve(new Response());
124 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100125 deleteAccountEmail(): Promise<Response> {
126 return Promise.resolve(new Response());
127 },
128 deleteAccountGPGKey(): Promise<Response> {
129 return Promise.resolve(new Response());
130 },
Kamil Musin1d8a1a32024-02-29 14:49:41 +0100131 deleteAccountIdentity(): Promise<Response> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100132 return Promise.resolve(new Response());
133 },
134 deleteAccountSSHKey(): void {},
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100135 deleteChangeCommitMessage(): Promise<Response> {
136 return Promise.resolve(new Response());
137 },
Kamil Musin3e239512024-02-16 14:29:05 +0100138 deleteComment(): Promise<CommentInfo | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100139 throw new Error('deleteComment() not implemented by RestApiMock.');
140 },
141 deleteDiffDraft(): Promise<Response> {
142 return Promise.resolve(new Response());
143 },
144 deleteDraftComments(): Promise<Response> {
145 return Promise.resolve(new Response());
146 },
147 deleteFileInChangeEdit(): Promise<Response | undefined> {
148 return Promise.resolve(new Response());
149 },
150 deleteGroupMember(): Promise<Response> {
151 return Promise.resolve(new Response());
152 },
153 deleteIncludedGroup(): Promise<Response> {
154 return Promise.resolve(new Response());
155 },
156 deleteRepoBranches(): Promise<Response> {
157 return Promise.resolve(new Response());
158 },
159 deleteRepoTags(): Promise<Response> {
160 return Promise.resolve(new Response());
161 },
162 deleteVote(): Promise<Response> {
163 return Promise.resolve(new Response());
164 },
165 deleteWatchedProjects(): Promise<Response> {
166 return Promise.resolve(new Response());
167 },
Kamil Musin1d8a1a32024-02-29 14:49:41 +0100168 executeChangeAction(): Promise<Response> {
169 return Promise.resolve(new Response());
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100170 },
Chris Poucet55cbccb2021-11-16 03:17:06 +0100171 finalize(): void {},
Kamil Musin10c31de2024-02-08 16:49:38 +0100172 generateAccountHttpPassword(): Promise<Password | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100173 return Promise.resolve('asdf');
174 },
175 getAccount(): Promise<AccountDetailInfo | undefined> {
176 return Promise.resolve(createAccountDetailWithId(1));
177 },
178 getAccountAgreements(): Promise<ContributorAgreementInfo[] | undefined> {
179 return Promise.resolve([]);
180 },
181 getAccountCapabilities(): Promise<AccountCapabilityInfo | undefined> {
182 return Promise.resolve({});
183 },
184 getAccountDetails(): Promise<AccountDetailInfo | undefined> {
185 return Promise.resolve(createAccountDetailWithId(1));
186 },
187 getAccountEmails(): Promise<EmailInfo[] | undefined> {
188 return Promise.resolve([]);
189 },
Kaushik Lingarkar2c68bf72023-06-06 15:20:01 -0700190 getAccountEmailsFor(): Promise<EmailInfo[] | undefined> {
191 return Promise.resolve([]);
192 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100193 getAccountGPGKeys(): Promise<Record<string, GpgKeyInfo>> {
194 return Promise.resolve({});
195 },
196 getAccountGroups(): Promise<GroupInfo[] | undefined> {
197 return Promise.resolve([]);
198 },
199 getAccountSSHKeys(): Promise<SshKeyInfo[] | undefined> {
200 return Promise.resolve([]);
201 },
202 getAccountStatus(): Promise<string | undefined> {
203 return Promise.resolve('');
204 },
205 getAvatarChangeUrl(): Promise<string | undefined> {
206 return Promise.resolve('');
207 },
208 getBlame(): Promise<BlameInfo[] | undefined> {
209 return Promise.resolve([]);
210 },
211 getCapabilities(): Promise<CapabilityInfoMap | undefined> {
212 return Promise.resolve({});
213 },
Kamil Musin3fb732f2023-08-25 15:48:09 +0200214 getChange(): Promise<ChangeInfo | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100215 throw new Error('getChange() not implemented by RestApiMock.');
216 },
217 getChangeActionURL(): Promise<string> {
218 return Promise.resolve('');
219 },
220 getChangeCherryPicks(): Promise<ChangeInfo[] | undefined> {
221 return Promise.resolve([]);
222 },
223 getChangeCommitInfo(): Promise<CommitInfo | undefined> {
224 return Promise.resolve(createCommit());
225 },
226 getChangeConflicts(): Promise<ChangeInfo[] | undefined> {
227 return Promise.resolve([]);
228 },
Ben Rohlfsa16c51a2021-11-22 12:50:55 +0100229 getChangeDetail(
230 changeNum?: number | string
Ben Rohlfs1fe7f4d2021-12-06 11:21:49 +0100231 ): Promise<ParsedChangeInfo | undefined> {
Ben Rohlfsa16c51a2021-11-22 12:50:55 +0100232 if (changeNum === undefined) return Promise.resolve(undefined);
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100233 return Promise.resolve(createChange() as ParsedChangeInfo);
234 },
Ben Rohlfscb1e2562021-12-06 10:50:47 +0100235 getChangeEdit(): Promise<EditInfo | undefined> {
236 return Promise.resolve(undefined);
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100237 },
238 getChangeFiles(): Promise<FileNameToFileInfoMap | undefined> {
239 return Promise.resolve({});
240 },
241 getChangeIncludedIn(): Promise<IncludedInInfo | undefined> {
242 throw new Error('getChangeIncludedIn() not implemented by RestApiMock.');
243 },
244 getChangeOrEditFiles(): Promise<FileNameToFileInfoMap | undefined> {
245 return Promise.resolve({});
246 },
247 getChangeRevisionActions(): Promise<ActionNameToActionInfoMap | undefined> {
248 return Promise.resolve({});
249 },
250 getChangeSuggestedCCs(): Promise<SuggestedReviewerInfo[] | undefined> {
251 return Promise.resolve([]);
252 },
253 getChangeSuggestedReviewers(): Promise<SuggestedReviewerInfo[] | undefined> {
254 return Promise.resolve([]);
255 },
256 getChanges() {
257 return Promise.resolve([]);
258 },
Dhruv Srivastava41e486f2022-03-08 13:44:26 +0100259 getChangesForMultipleQueries() {
260 return Promise.resolve([]);
261 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100262 getChangesSubmittedTogether(): Promise<SubmittedTogetherInfo | undefined> {
Milutin Kristoficf4c04fb42021-03-10 16:41:19 +0100263 return Promise.resolve(createSubmittedTogetherInfo());
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100264 },
Dhruv Srivastavab0cebc12022-03-08 15:16:57 +0100265 getDetailedChangesWithActions(changeNums: NumericChangeId[]) {
266 return Promise.resolve(
267 changeNums.map(changeNum => {
268 return {
269 ...createChange(),
270 actions: {},
271 _number: changeNum,
272 subject: `Subject ${changeNum}`,
273 };
274 })
275 );
276 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100277 getChangesWithSameTopic(): Promise<ChangeInfo[] | undefined> {
278 return Promise.resolve([]);
279 },
Milutin Kristoficfc0f0112021-03-08 14:25:06 +0100280 getChangesWithSimilarTopic(): Promise<ChangeInfo[] | undefined> {
281 return Promise.resolve([]);
282 },
Frank Bordenfbe57cb2022-05-10 15:59:49 +0200283 getChangesWithSimilarHashtag(): Promise<ChangeInfo[] | undefined> {
284 return Promise.resolve([]);
285 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100286 getConfig(): Promise<ServerInfo | undefined> {
287 return Promise.resolve(createServerInfo());
288 },
289 getDashboard(): Promise<DashboardInfo | undefined> {
Dhruv Srivastavab642c242021-06-11 16:33:35 +0200290 return Promise.resolve(undefined);
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100291 },
292 getDefaultPreferences(): Promise<PreferencesInfo | undefined> {
293 throw new Error('getDefaultPreferences() not implemented by RestApiMock.');
294 },
295 getDiff(): Promise<DiffInfo | undefined> {
296 throw new Error('getDiff() not implemented by RestApiMock.');
297 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100298 getDiffComments() {
Chris Poucet55cbccb2021-11-16 03:17:06 +0100299 // NOTE: This method can not be typed properly due to overloads.
300 // eslint-disable-next-line @typescript-eslint/no-explicit-any
301 return Promise.resolve({}) as any;
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100302 },
303 getDiffDrafts() {
Chris Poucet55cbccb2021-11-16 03:17:06 +0100304 // NOTE: This method can not be typed properly due to overloads.
305 // eslint-disable-next-line @typescript-eslint/no-explicit-any
306 return Promise.resolve({}) as any;
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100307 },
308 getDiffPreferences(): Promise<DiffPreferencesInfo | undefined> {
309 return Promise.resolve(createDefaultDiffPrefs());
310 },
311 getDiffRobotComments() {
Chris Poucet55cbccb2021-11-16 03:17:06 +0100312 // NOTE: This method can not be typed properly due to overloads.
313 // eslint-disable-next-line @typescript-eslint/no-explicit-any
314 return Promise.resolve({}) as any;
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100315 },
316 getDocumentationSearches(): Promise<DocResult[] | undefined> {
317 return Promise.resolve([]);
318 },
319 getEditPreferences(): Promise<EditPreferencesInfo | undefined> {
320 return Promise.resolve(createDefaultEditPrefs());
321 },
322 getExternalIds(): Promise<AccountExternalIdInfo[] | undefined> {
323 return Promise.resolve([]);
324 },
325 getFileContent(): Promise<Response | Base64FileContent | undefined> {
326 return Promise.resolve(new Response());
327 },
Kamil Musin48677cb2024-02-27 17:06:12 +0100328 getRepoName(): Promise<RepoName> {
329 throw new Error('getRepoName() not implemented by RestApiMock.');
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100330 },
331 getGroupAuditLog(): Promise<GroupAuditEventInfo[] | undefined> {
332 return Promise.resolve([]);
333 },
334 getGroupConfig(id: GroupId | GroupName): Promise<GroupInfo | undefined> {
335 return Promise.resolve({
336 id: id as GroupId,
337 });
338 },
339 getGroupMembers(): Promise<AccountInfo[]> {
340 return Promise.resolve([]);
341 },
342 getGroups(): Promise<GroupNameToGroupInfoMap | undefined> {
343 return Promise.resolve({});
344 },
345 getImagesForDiff(): Promise<ImagesForDiff> {
346 throw new Error('getImagesForDiff() not implemented by RestApiMock.');
347 },
348 getIncludedGroup(): Promise<GroupInfo[] | undefined> {
349 return Promise.resolve([]);
350 },
351 getIsAdmin(): Promise<boolean | undefined> {
352 return Promise.resolve(false);
353 },
354 getIsGroupOwner(): Promise<boolean> {
355 return Promise.resolve(false);
356 },
357 getLoggedIn(): Promise<boolean> {
358 return Promise.resolve(true);
359 },
360 getMergeable(): Promise<MergeableInfo | undefined> {
Ben Rohlfs8a875462023-02-27 10:33:21 +0100361 return Promise.resolve(createMergeable());
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100362 },
363 getPlugins(): Promise<{[p: string]: PluginInfo} | undefined> {
364 return Promise.resolve({});
365 },
Ben Rohlfsba440822023-04-11 18:08:03 +0200366 getPortedComments(): Promise<{[path: string]: CommentInfo[]} | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100367 return Promise.resolve({});
368 },
Ben Rohlfsba440822023-04-11 18:08:03 +0200369 getPortedDrafts(): Promise<{[path: string]: DraftInfo[]} | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100370 return Promise.resolve({});
371 },
372 getPreferences(): Promise<PreferencesInfo | undefined> {
Chris Poucetde94555a2023-08-14 11:42:06 +0200373 return Promise.resolve(createDefaultPreferences());
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100374 },
375 getProjectConfig(): Promise<ConfigInfo | undefined> {
376 return Promise.resolve(createConfig());
377 },
378 getRelatedChanges(): Promise<RelatedChangesInfo | undefined> {
379 return Promise.resolve({changes: []});
380 },
381 getRepo(repo: RepoName): Promise<ProjectInfo | undefined> {
382 return Promise.resolve({
Chris Poucetcaeea1b2021-08-19 22:12:56 +0000383 id: repo as string as UrlEncodedRepoName,
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100384 name: repo,
385 });
386 },
Ben Rohlfsbfc688b2022-10-21 12:38:37 +0200387 getRepoAccess(): Promise<RepoAccessInfoMap | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100388 return Promise.resolve({});
389 },
390 getRepoAccessRights(): Promise<ProjectAccessInfo | undefined> {
391 return Promise.resolve(undefined);
392 },
393 getRepoBranches(): Promise<BranchInfo[] | undefined> {
394 return Promise.resolve([]);
395 },
396 getRepoDashboards(): Promise<DashboardInfo[] | undefined> {
397 return Promise.resolve([]);
398 },
399 getRepoTags(): Promise<TagInfo[]> {
400 return Promise.resolve([]);
401 },
402 getRepos(): Promise<ProjectInfoWithName[] | undefined> {
403 return Promise.resolve([]);
404 },
405 getResponseObject(response: Response): Promise<ParsedJSON> {
Kamil Musinc8365a52024-02-08 13:43:32 +0100406 return readJSONResponsePayload(response).then(payload => payload.parsed);
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100407 },
408 getReviewedFiles(): Promise<string[] | undefined> {
409 return Promise.resolve([]);
410 },
Milutin Kristoficc4504932022-08-02 14:55:35 +0200411 getFixPreview(): Promise<FilePathToDiffInfoMap | undefined> {
412 return Promise.resolve({});
413 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100414 getRobotCommentFixPreview(): Promise<FilePathToDiffInfoMap | undefined> {
415 return Promise.resolve({});
416 },
Yash Chaturvedic7c96fa2023-12-11 16:43:53 +0530417 queryAccounts(): Promise<AccountInfo[] | undefined> {
418 return Promise.resolve([]);
419 },
420 getAccountSuggestions(): Promise<AccountInfo[] | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100421 return Promise.resolve([]);
422 },
423 getSuggestedGroups(): Promise<GroupNameToGroupInfoMap | undefined> {
424 return Promise.resolve({});
425 },
Ben Rohlfsbfc688b2022-10-21 12:38:37 +0200426 getSuggestedRepos(): Promise<NameToProjectInfoMap | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100427 return Promise.resolve({});
428 },
429 getTopMenus(): Promise<TopMenuEntryInfo[] | undefined> {
430 return Promise.resolve([]);
431 },
432 getVersion(): Promise<string | undefined> {
433 return Promise.resolve('');
434 },
435 getWatchedProjects(): Promise<ProjectWatchInfo[] | undefined> {
436 return Promise.resolve([]);
437 },
438 hasPendingDiffDrafts(): number {
439 return 0;
440 },
441 invalidateAccountsCache(): void {},
442 invalidateGroupsCache(): void {},
443 invalidateReposCache(): void {},
Przemyslaw Waliszewski5e036062021-05-31 17:10:18 +0200444 invalidateAccountsDetailCache(): void {},
paladox54473d12024-05-08 15:38:17 +0100445 invalidateAccountsEmailCache(): void {},
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100446 probePath(): Promise<boolean> {
447 return Promise.resolve(true);
448 },
449 putChangeCommitMessage(): Promise<Response> {
450 return Promise.resolve(new Response());
451 },
452 queryChangeFiles(): Promise<string[] | undefined> {
453 return Promise.resolve([]);
454 },
455 removeChangeReviewer(): Promise<Response | undefined> {
456 return Promise.resolve(new Response());
457 },
458 removeFromAttentionSet(): Promise<Response> {
459 return Promise.resolve(new Response());
460 },
461 renameFileInChangeEdit(): Promise<Response | undefined> {
462 return Promise.resolve(new Response());
463 },
464 restoreFileInChangeEdit(): Promise<Response | undefined> {
465 return Promise.resolve(new Response());
466 },
467 runRepoGC(): Promise<Response> {
468 return Promise.resolve(new Response());
469 },
470 saveAccountAgreement(): Promise<Response> {
471 return Promise.resolve(new Response());
472 },
473 saveChangeEdit(): Promise<Response> {
474 return Promise.resolve(new Response());
475 },
476 saveChangeReview() {
Chris Poucetfceaf782023-08-16 15:11:04 +0200477 return Promise.resolve({});
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100478 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100479 saveChangeStarred(): Promise<Response> {
480 return Promise.resolve(new Response());
481 },
482 saveDiffDraft(): Promise<Response> {
483 return Promise.resolve(new Response());
484 },
485 saveDiffPreferences(): Promise<Response> {
486 return Promise.resolve(new Response());
487 },
488 saveEditPreferences(): Promise<Response> {
489 return Promise.resolve(new Response());
490 },
491 saveFileReviewed(): Promise<Response> {
492 return Promise.resolve(new Response());
493 },
494 saveFileUploadChangeEdit(): Promise<Response | undefined> {
495 return Promise.resolve(new Response());
496 },
497 saveGroupDescription(): Promise<Response> {
498 return Promise.resolve(new Response());
499 },
Kamil Musin10c31de2024-02-08 16:49:38 +0100500 saveGroupMember(): Promise<AccountInfo | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100501 return Promise.resolve({});
502 },
503 saveGroupName(): Promise<Response> {
504 return Promise.resolve(new Response());
505 },
506 saveGroupOptions(): Promise<Response> {
507 return Promise.resolve(new Response());
508 },
509 saveGroupOwner(): Promise<Response> {
510 return Promise.resolve(new Response());
511 },
512 saveIncludedGroup(): Promise<GroupInfo | undefined> {
513 throw new Error('saveIncludedGroup() not implemented by RestApiMock.');
514 },
Ben Rohlfs75b390c2022-04-04 14:56:06 +0200515 savePreferences(input: PreferencesInput): Promise<PreferencesInfo> {
516 const info = input as PreferencesInfo;
517 return Promise.resolve({...info});
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100518 },
519 saveRepoConfig(): Promise<Response> {
520 return Promise.resolve(new Response());
521 },
Kamil Musin10c31de2024-02-08 16:49:38 +0100522 saveWatchedProjects(): Promise<ProjectWatchInfo[] | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100523 return Promise.resolve([]);
524 },
525 send() {
526 return Promise.resolve(new Response());
527 },
528 setAccountDisplayName(): Promise<void> {
529 return Promise.resolve();
530 },
531 setAccountName(): Promise<void> {
532 return Promise.resolve();
533 },
534 setAccountStatus(): Promise<void> {
535 return Promise.resolve();
536 },
537 setAccountUsername(): Promise<void> {
538 return Promise.resolve();
539 },
Kamil Musin9bc65ff2024-02-20 17:15:11 +0100540 setChangeHashtag(): Promise<Hashtag[] | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100541 return Promise.resolve([]);
542 },
Kamil Musin9bc65ff2024-02-20 17:15:11 +0100543 setChangeTopic(): Promise<string | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100544 return Promise.resolve('');
545 },
Kamil Musin9bc65ff2024-02-20 17:15:11 +0100546 removeChangeTopic(
547 changeNum: NumericChangeId,
548 errFn?: ErrorCallback
549 ): Promise<string | undefined> {
550 return this.setChangeTopic(changeNum, '', errFn);
551 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100552 setDescription(): Promise<Response> {
553 return Promise.resolve(new Response());
554 },
Kamil Musin48677cb2024-02-27 17:06:12 +0100555 addRepoNameToCache(): void {},
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100556 setPreferredAccountEmail(): Promise<void> {
557 return Promise.resolve();
558 },
559 setRepoAccessRights(): Promise<Response> {
560 return Promise.resolve(new Response());
561 },
Kamil Musin10c31de2024-02-08 16:49:38 +0100562 setRepoAccessRightsForReview(): Promise<ChangeInfo | undefined> {
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100563 throw new Error('setRepoAccessRightsForReview() not implemented by mock.');
564 },
565 setRepoHead(): Promise<Response> {
566 return Promise.resolve(new Response());
567 },
Yash Chaturvedic7c96fa2023-12-11 16:43:53 +0530568 updateIdentityInChangeEdit(): Promise<Response | undefined> {
569 return Promise.resolve(new Response());
570 },
Ben Rohlfs3a6ff7e2021-01-18 14:08:39 +0100571};