added documentation for endpoint mock service

This commit is contained in:
lotte
2019-12-19 11:15:44 +01:00
parent 0dbea31b0d
commit b98cec011b
6 changed files with 18 additions and 12 deletions

View File

@@ -37,8 +37,8 @@ import { AdminSidebarComponent } from './+admin/admin-sidebar/admin-sidebar.comp
import { AdminSidebarSectionComponent } from './+admin/admin-sidebar/admin-sidebar-section/admin-sidebar-section.component';
import { ExpandableAdminSidebarSectionComponent } from './+admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component';
import { NavbarModule } from './navbar/navbar.module';
import { JournalEntitiesModule } from './entity-groups/journal-entities/journal-entities.module';
import { ResearchEntitiesModule } from './entity-groups/research-entities/research-entities.module';
import { JournalEntitiesModule } from './shared/mocks/dspace-restv2/entity-groups/journal-entities/journal-entities.module';
import { ResearchEntitiesModule } from './shared/mocks/dspace-restv2/entity-groups/research-entities/research-entities.module';
import { ClientCookieService } from './core/services/client-cookie.service';
export function getConfig() {

View File

@@ -128,8 +128,8 @@ import {
MOCK_RESPONSE_MAP,
MockResponseMap,
mockResponseMap
} from './dspace-rest-v2/mocks/mock-response-map';
import { EndpointMockingRestService } from './dspace-rest-v2/endpoint-mocking-rest.service';
} from '../shared/mocks/dspace-rest-v2/mocks/mock-response-map';
import { EndpointMockingRestService } from '../shared/mocks/dspace-rest-v2/endpoint-mocking-rest.service';
import { ENV_CONFIG, GLOBAL_CONFIG, GlobalConfig } from '../../config';
import { SearchFilterService } from './shared/search/search-filter.service';
import { SearchConfigurationService } from './shared/search/search-configuration.service';
@@ -137,6 +137,10 @@ import { SelectableListService } from '../shared/object-list/selectable-list/sel
import { RelationshipTypeService } from './data/relationship-type.service';
import { SidebarService } from '../shared/sidebar/sidebar.service';
/**
* When not in production, endpoint responses can be mocked for testing purposes
* If there is no mock version available for the endpoint, the actual REST response will be used just like in production mode
*/
export const restServiceFactory = (cfg: GlobalConfig, mocks: MockResponseMap, http: HttpClient) => {
if (ENV_CONFIG.production) {
return new DSpaceRESTv2Service(http);

View File

@@ -1,7 +1,7 @@
import { HttpHeaders, HttpResponse } from '@angular/common/http';
import { of as observableOf } from 'rxjs';
import { GlobalConfig } from '../../../config/global-config.interface';
import { RestRequestMethod } from '../data/rest-request-method';
import { GlobalConfig } from '../../../../config/global-config.interface';
import { RestRequestMethod } from '../../../core/data/rest-request-method';
import { EndpointMockingRestService } from './endpoint-mocking-rest.service';
import { MockResponseMap } from './mocks/mock-response-map';

View File

@@ -1,12 +1,12 @@
import { HttpClient, HttpHeaders } from '@angular/common/http'
import { Inject, Injectable } from '@angular/core';
import { Observable, of as observableOf } from 'rxjs';
import { GLOBAL_CONFIG, GlobalConfig } from '../../../config';
import { isEmpty } from '../../shared/empty.util';
import { RestRequestMethod } from '../data/rest-request-method';
import { GLOBAL_CONFIG, GlobalConfig } from '../../../../config';
import { isEmpty } from '../../empty.util';
import { RestRequestMethod } from '../../../core/data/rest-request-method';
import { DSpaceRESTV2Response } from './dspace-rest-v2-response.model';
import { DSpaceRESTv2Service, HttpOptions } from './dspace-rest-v2.service';
import { DSpaceRESTV2Response } from '../../../core/dspace-rest-v2/dspace-rest-v2-response.model';
import { DSpaceRESTv2Service, HttpOptions } from '../../../core/dspace-rest-v2/dspace-rest-v2.service';
import { MOCK_RESPONSE_MAP, MockResponseMap } from './mocks/mock-response-map';
import * as URL from 'url-parse';
@@ -14,6 +14,8 @@ import * as URL from 'url-parse';
* Service to access DSpace's REST API.
*
* If a URL is found in this.mockResponseMap, it returns the mock response instead
* This service can be used for mocking REST responses when developing new features
* This is especially useful, when a REST endpoint is broken or does not exist yet
*/
@Injectable()
export class EndpointMockingRestService extends DSpaceRESTv2Service {

View File

@@ -1,5 +1,5 @@
import { InjectionToken } from '@angular/core';
import mockSubmissionResponse from '../mocks/mock-submission-response.json';
import mockSubmissionResponse from './mock-submission-response.json';
export class MockResponseMap extends Map<string, any> {};