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 { 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 { ExpandableAdminSidebarSectionComponent } from './+admin/admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component';
import { NavbarModule } from './navbar/navbar.module'; import { NavbarModule } from './navbar/navbar.module';
import { JournalEntitiesModule } from './entity-groups/journal-entities/journal-entities.module'; import { JournalEntitiesModule } from './shared/mocks/dspace-restv2/entity-groups/journal-entities/journal-entities.module';
import { ResearchEntitiesModule } from './entity-groups/research-entities/research-entities.module'; import { ResearchEntitiesModule } from './shared/mocks/dspace-restv2/entity-groups/research-entities/research-entities.module';
import { ClientCookieService } from './core/services/client-cookie.service'; import { ClientCookieService } from './core/services/client-cookie.service';
export function getConfig() { export function getConfig() {

View File

@@ -128,8 +128,8 @@ import {
MOCK_RESPONSE_MAP, MOCK_RESPONSE_MAP,
MockResponseMap, MockResponseMap,
mockResponseMap mockResponseMap
} from './dspace-rest-v2/mocks/mock-response-map'; } from '../shared/mocks/dspace-rest-v2/mocks/mock-response-map';
import { EndpointMockingRestService } from './dspace-rest-v2/endpoint-mocking-rest.service'; import { EndpointMockingRestService } from '../shared/mocks/dspace-rest-v2/endpoint-mocking-rest.service';
import { ENV_CONFIG, GLOBAL_CONFIG, GlobalConfig } from '../../config'; import { ENV_CONFIG, GLOBAL_CONFIG, GlobalConfig } from '../../config';
import { SearchFilterService } from './shared/search/search-filter.service'; import { SearchFilterService } from './shared/search/search-filter.service';
import { SearchConfigurationService } from './shared/search/search-configuration.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 { RelationshipTypeService } from './data/relationship-type.service';
import { SidebarService } from '../shared/sidebar/sidebar.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) => { export const restServiceFactory = (cfg: GlobalConfig, mocks: MockResponseMap, http: HttpClient) => {
if (ENV_CONFIG.production) { if (ENV_CONFIG.production) {
return new DSpaceRESTv2Service(http); return new DSpaceRESTv2Service(http);

View File

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

View File

@@ -1,12 +1,12 @@
import { HttpClient, HttpHeaders } from '@angular/common/http' import { HttpClient, HttpHeaders } from '@angular/common/http'
import { Inject, Injectable } from '@angular/core'; import { Inject, Injectable } from '@angular/core';
import { Observable, of as observableOf } from 'rxjs'; import { Observable, of as observableOf } from 'rxjs';
import { GLOBAL_CONFIG, GlobalConfig } from '../../../config'; import { GLOBAL_CONFIG, GlobalConfig } from '../../../../config';
import { isEmpty } from '../../shared/empty.util'; import { isEmpty } from '../../empty.util';
import { RestRequestMethod } from '../data/rest-request-method'; import { RestRequestMethod } from '../../../core/data/rest-request-method';
import { DSpaceRESTV2Response } from './dspace-rest-v2-response.model'; import { DSpaceRESTV2Response } from '../../../core/dspace-rest-v2/dspace-rest-v2-response.model';
import { DSpaceRESTv2Service, HttpOptions } from './dspace-rest-v2.service'; import { DSpaceRESTv2Service, HttpOptions } from '../../../core/dspace-rest-v2/dspace-rest-v2.service';
import { MOCK_RESPONSE_MAP, MockResponseMap } from './mocks/mock-response-map'; import { MOCK_RESPONSE_MAP, MockResponseMap } from './mocks/mock-response-map';
import * as URL from 'url-parse'; import * as URL from 'url-parse';
@@ -14,6 +14,8 @@ import * as URL from 'url-parse';
* Service to access DSpace's REST API. * Service to access DSpace's REST API.
* *
* If a URL is found in this.mockResponseMap, it returns the mock response instead * 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() @Injectable()
export class EndpointMockingRestService extends DSpaceRESTv2Service { export class EndpointMockingRestService extends DSpaceRESTv2Service {

View File

@@ -1,5 +1,5 @@
import { InjectionToken } from '@angular/core'; 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> {}; export class MockResponseMap extends Map<string, any> {};