refactor all remaining self links in mocks

This commit is contained in:
Art Lowel
2020-02-17 14:45:28 +01:00
parent 8551d730d8
commit 025948e3a0
13 changed files with 143 additions and 40 deletions

View File

@@ -26,13 +26,21 @@ describe('MetadataRegistryComponent', () => {
const mockSchemasList = [ const mockSchemasList = [
{ {
id: 1, id: 1,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/1', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/1'
},
},
prefix: 'dc', prefix: 'dc',
namespace: 'http://dublincore.org/documents/dcmi-terms/' namespace: 'http://dublincore.org/documents/dcmi-terms/'
}, },
{ {
id: 2, id: 2,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/2', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/2'
},
},
prefix: 'mock', prefix: 'mock',
namespace: 'http://dspace.org/mockschema' namespace: 'http://dspace.org/mockschema'
} }

View File

@@ -20,7 +20,11 @@ class NullAction extends MetadataRegistryEditSchemaAction {
const schema: MetadataSchema = Object.assign(new MetadataSchema(), const schema: MetadataSchema = Object.assign(new MetadataSchema(),
{ {
id: 'schema-id', id: 'schema-id',
self: 'http://rest.self/schema/dc', _links: {
self: {
href: 'http://rest.self/schema/dc'
},
},
prefix: 'dc', prefix: 'dc',
namespace: 'http://dublincore.org/documents/dcmi-terms/' namespace: 'http://dublincore.org/documents/dcmi-terms/'
}); });
@@ -28,7 +32,11 @@ const schema: MetadataSchema = Object.assign(new MetadataSchema(),
const schema2: MetadataSchema = Object.assign(new MetadataSchema(), const schema2: MetadataSchema = Object.assign(new MetadataSchema(),
{ {
id: 'another-schema-id', id: 'another-schema-id',
self: 'http://rest.self/schema/dcterms', _links: {
self: {
href: 'http://rest.self/schema/dcterms',
},
},
prefix: 'dcterms', prefix: 'dcterms',
namespace: 'http://purl.org/dc/terms/' namespace: 'http://purl.org/dc/terms/'
}); });
@@ -36,7 +44,11 @@ const schema2: MetadataSchema = Object.assign(new MetadataSchema(),
const field: MetadataField = Object.assign(new MetadataField(), const field: MetadataField = Object.assign(new MetadataField(),
{ {
id: 'author-field-id', id: 'author-field-id',
self: 'http://rest.self/field/author', _links: {
self: {
href: 'http://rest.self/field/author',
},
},
element: 'contributor', element: 'contributor',
qualifier: 'author', qualifier: 'author',
scopeNote: 'Author of an item', scopeNote: 'Author of an item',
@@ -46,7 +58,11 @@ const field: MetadataField = Object.assign(new MetadataField(),
const field2: MetadataField = Object.assign(new MetadataField(), const field2: MetadataField = Object.assign(new MetadataField(),
{ {
id: 'title-field-id', id: 'title-field-id',
self: 'http://rest.self/field/title', _links: {
self: {
href: 'http://rest.self/field/title',
},
},
element: 'title', element: 'title',
qualifier: null, qualifier: null,
scopeNote: 'Title of an item', scopeNote: 'Title of an item',

View File

@@ -30,13 +30,21 @@ describe('MetadataSchemaComponent', () => {
const mockSchemasList = [ const mockSchemasList = [
{ {
id: 1, id: 1,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/1', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/1',
},
},
prefix: 'dc', prefix: 'dc',
namespace: 'http://dublincore.org/documents/dcmi-terms/' namespace: 'http://dublincore.org/documents/dcmi-terms/'
}, },
{ {
id: 2, id: 2,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/2', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadataschemas/2',
},
},
prefix: 'mock', prefix: 'mock',
namespace: 'http://dspace.org/mockschema' namespace: 'http://dspace.org/mockschema'
} }
@@ -44,7 +52,11 @@ describe('MetadataSchemaComponent', () => {
const mockFieldsList = [ const mockFieldsList = [
{ {
id: 1, id: 1,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/8', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/8',
},
},
element: 'contributor', element: 'contributor',
qualifier: 'advisor', qualifier: 'advisor',
scopeNote: null, scopeNote: null,
@@ -52,7 +64,11 @@ describe('MetadataSchemaComponent', () => {
}, },
{ {
id: 2, id: 2,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/9', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/9',
},
},
element: 'contributor', element: 'contributor',
qualifier: 'author', qualifier: 'author',
scopeNote: null, scopeNote: null,
@@ -60,7 +76,11 @@ describe('MetadataSchemaComponent', () => {
}, },
{ {
id: 3, id: 3,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/10', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/10',
},
},
element: 'contributor', element: 'contributor',
qualifier: 'editor', qualifier: 'editor',
scopeNote: 'test scope note', scopeNote: 'test scope note',
@@ -68,7 +88,11 @@ describe('MetadataSchemaComponent', () => {
}, },
{ {
id: 4, id: 4,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/11', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/metadatafields/11',
},
},
element: 'contributor', element: 'contributor',
qualifier: 'illustrator', qualifier: 'illustrator',
scopeNote: null, scopeNote: null,

View File

@@ -1,3 +1,4 @@
import { filter, tap } from 'rxjs/operators';
import { CollectionItemMapperComponent } from './collection-item-mapper.component'; import { CollectionItemMapperComponent } from './collection-item-mapper.component';
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing'; import { RouterTestingModule } from '@angular/router/testing';
@@ -52,7 +53,12 @@ describe('CollectionItemMapperComponent', () => {
const mockCollection: Collection = Object.assign(new Collection(), { const mockCollection: Collection = Object.assign(new Collection(), {
id: 'ce41d451-97ed-4a9c-94a1-7de34f16a9f4', id: 'ce41d451-97ed-4a9c-94a1-7de34f16a9f4',
name: 'test-collection' name: 'test-collection',
_links: {
self: {
href: 'https://rest.api/collections/ce41d451-97ed-4a9c-94a1-7de34f16a9f4'
}
}
}); });
const mockCollectionRD: RemoteData<Collection> = new RemoteData<Collection>(false, false, true, null, mockCollection); const mockCollectionRD: RemoteData<Collection> = new RemoteData<Collection>(false, false, true, null, mockCollection);
const mockSearchOptions = of(new PaginatedSearchOptions({ const mockSearchOptions = of(new PaginatedSearchOptions({

View File

@@ -155,7 +155,7 @@ export class CollectionItemMapperComponent implements OnInit {
map((collectionRD: RemoteData<Collection>) => collectionRD.payload), map((collectionRD: RemoteData<Collection>) => collectionRD.payload),
switchMap((collection: Collection) => switchMap((collection: Collection) =>
observableCombineLatest(ids.map((id: string) => observableCombineLatest(ids.map((id: string) =>
remove ? this.itemDataService.removeMappingFromCollection(id, collection.id) : this.itemDataService.mapToCollection(id, collection.self) remove ? this.itemDataService.removeMappingFromCollection(id, collection.id) : this.itemDataService.mapToCollection(id, collection._links.self.href)
)) ))
) )
); );

View File

@@ -169,7 +169,11 @@ describe('ConfigResponseParsingService', () => {
totalElements: 4, totalElements: 4,
totalPages: 1, totalPages: 1,
currentPage: 1, currentPage: 1,
self: 'https://rest.api/config/submissiondefinitions/traditional/sections' _links: {
self: {
href: 'https://rest.api/config/submissiondefinitions/traditional/sections'
},
},
}); });
const definitions = const definitions =
Object.assign(new SubmissionDefinitionModel(), { Object.assign(new SubmissionDefinitionModel(), {
@@ -180,7 +184,6 @@ describe('ConfigResponseParsingService', () => {
sections: { href: 'https://rest.api/config/submissiondefinitions/traditional/sections' }, sections: { href: 'https://rest.api/config/submissiondefinitions/traditional/sections' },
self: { href: 'https://rest.api/config/submissiondefinitions/traditional' } self: { href: 'https://rest.api/config/submissiondefinitions/traditional' }
}, },
self: 'https://rest.api/config/submissiondefinitions/traditional',
sections: new PaginatedList(pageinfo, [ sections: new PaginatedList(pageinfo, [
Object.assign(new SubmissionSectionModel(), { Object.assign(new SubmissionSectionModel(), {
header: 'submit.progressbar.describe.stepone', header: 'submit.progressbar.describe.stepone',
@@ -195,7 +198,6 @@ describe('ConfigResponseParsingService', () => {
self: { href: 'https://rest.api/config/submissionsections/traditionalpageone' }, self: { href: 'https://rest.api/config/submissionsections/traditionalpageone' },
config: { href: 'https://rest.api/config/submissionforms/traditionalpageone' } config: { href: 'https://rest.api/config/submissionforms/traditionalpageone' }
}, },
self: 'https://rest.api/config/submissionsections/traditionalpageone',
}), }),
Object.assign(new SubmissionSectionModel(), { Object.assign(new SubmissionSectionModel(), {
header: 'submit.progressbar.describe.steptwo', header: 'submit.progressbar.describe.steptwo',
@@ -210,7 +212,6 @@ describe('ConfigResponseParsingService', () => {
self: { href: 'https://rest.api/config/submissionsections/traditionalpagetwo' }, self: { href: 'https://rest.api/config/submissionsections/traditionalpagetwo' },
config: { href: 'https://rest.api/config/submissionforms/traditionalpagetwo' } config: { href: 'https://rest.api/config/submissionforms/traditionalpagetwo' }
}, },
self: 'https://rest.api/config/submissionsections/traditionalpagetwo',
}), }),
Object.assign(new SubmissionSectionModel(), { Object.assign(new SubmissionSectionModel(), {
header: 'submit.progressbar.upload', header: 'submit.progressbar.upload',
@@ -225,7 +226,6 @@ describe('ConfigResponseParsingService', () => {
self: { href: 'https://rest.api/config/submissionsections/upload' }, self: { href: 'https://rest.api/config/submissionsections/upload' },
config: { href: 'https://rest.api/config/submissionuploads/upload' } config: { href: 'https://rest.api/config/submissionuploads/upload' }
}, },
self: 'https://rest.api/config/submissionsections/upload',
}), }),
Object.assign(new SubmissionSectionModel(), { Object.assign(new SubmissionSectionModel(), {
header: 'submit.progressbar.license', header: 'submit.progressbar.license',
@@ -239,7 +239,6 @@ describe('ConfigResponseParsingService', () => {
_links: { _links: {
self: { href: 'https://rest.api/config/submissionsections/license' } self: { href: 'https://rest.api/config/submissionsections/license' }
}, },
self: 'https://rest.api/config/submissionsections/license',
}) })
]) ])
}); });

View File

@@ -42,10 +42,6 @@ export class SearchResponseParsingService implements ResponseParsingService {
const dsoSelfLinks = payload._embedded.objects const dsoSelfLinks = payload._embedded.objects
.filter((object) => hasValue(object._embedded)) .filter((object) => hasValue(object._embedded))
.map((object) => object._embedded.indexableObject) .map((object) => object._embedded.indexableObject)
// we don't need embedded collections, bitstreamformats, etc for search results.
// And parsing them all takes up a lot of time. Throw them away to improve performance
// until objs until partial results are supported by the rest api
.map((dso) => Object.assign({}, dso, { _embedded: undefined }))
.map((dso) => this.dsoParser.parse(request, { .map((dso) => this.dsoParser.parse(request, {
payload: dso, payload: dso,
statusCode: data.statusCode, statusCode: data.statusCode,

View File

@@ -52,12 +52,22 @@ export class DSpaceObject extends ListableObject implements CacheableObject {
type: ResourceType; type: ResourceType;
/** /**
* A shorthand for this DSpaceObject's self link * A shorthand to get this DSpaceObject's self link
*/ */
get self(): string { get self(): string {
return this._links.self.href; return this._links.self.href;
} }
/**
* A shorthand to set this DSpaceObject's self link
*/
set self(v: string) {
debugger;
this._links.self = {
href: v
};
}
/** /**
* The name for this DSpaceObject * The name for this DSpaceObject
*/ */

View File

@@ -373,10 +373,14 @@ describe('FormBuilderService test suite', () => {
] ]
} as FormRowModel } as FormRowModel
], ],
self: 'testFormConfiguration.url', self: {
href: 'testFormConfiguration.url'
},
type: 'submissionform', type: 'submissionform',
_links: { _links: {
self: 'testFormConfiguration.url' self: {
href: 'testFormConfiguration.url'
}
} }
} as any; } as any;
}); });

View File

@@ -12,7 +12,11 @@ export const MockBitstreamFormat1: BitstreamFormat = Object.assign(new Bitstream
supportLevel: 0, supportLevel: 0,
internal: false, internal: false,
extensions: null, extensions: null,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreamformats/10' _links:{
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreamformats/10'
}
}
}); });
export const MockBitstreamFormat2: BitstreamFormat = Object.assign(new BitstreamFormat(), { export const MockBitstreamFormat2: BitstreamFormat = Object.assign(new BitstreamFormat(), {
@@ -22,7 +26,11 @@ export const MockBitstreamFormat2: BitstreamFormat = Object.assign(new Bitstream
supportLevel: 0, supportLevel: 0,
internal: false, internal: false,
extensions: null, extensions: null,
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreamformats/4' _links:{
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreamformats/4'
}
}
}); });
export const MockBitstream1: Bitstream = Object.assign(new Bitstream(), export const MockBitstream1: Bitstream = Object.assign(new Bitstream(),
@@ -31,7 +39,11 @@ export const MockBitstream1: Bitstream = Object.assign(new Bitstream(),
content: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreams/cf9b0c8e-a1eb-4b65-afd0-567366448713/content', content: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreams/cf9b0c8e-a1eb-4b65-afd0-567366448713/content',
format: observableOf(MockBitstreamFormat1), format: observableOf(MockBitstreamFormat1),
bundleName: 'ORIGINAL', bundleName: 'ORIGINAL',
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreams/cf9b0c8e-a1eb-4b65-afd0-567366448713', _links:{
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreams/cf9b0c8e-a1eb-4b65-afd0-567366448713'
}
},
id: 'cf9b0c8e-a1eb-4b65-afd0-567366448713', id: 'cf9b0c8e-a1eb-4b65-afd0-567366448713',
uuid: 'cf9b0c8e-a1eb-4b65-afd0-567366448713', uuid: 'cf9b0c8e-a1eb-4b65-afd0-567366448713',
type: 'bitstream', type: 'bitstream',
@@ -50,7 +62,6 @@ export const MockBitstream2: Bitstream = Object.assign(new Bitstream(), {
content: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreams/99b00f3c-1cc6-4689-8158-91965bee6b28/content', content: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreams/99b00f3c-1cc6-4689-8158-91965bee6b28/content',
format: observableOf(MockBitstreamFormat2), format: observableOf(MockBitstreamFormat2),
bundleName: 'ORIGINAL', bundleName: 'ORIGINAL',
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/bitstreams/99b00f3c-1cc6-4689-8158-91965bee6b28',
id: '99b00f3c-1cc6-4689-8158-91965bee6b28', id: '99b00f3c-1cc6-4689-8158-91965bee6b28',
uuid: '99b00f3c-1cc6-4689-8158-91965bee6b28', uuid: '99b00f3c-1cc6-4689-8158-91965bee6b28',
type: 'bitstream', type: 'bitstream',
@@ -81,7 +92,11 @@ export const MockItem: Item = Object.assign(new Item(), {
{ {
name: 'ORIGINAL', name: 'ORIGINAL',
bitstreams: observableOf(Object.assign({ bitstreams: observableOf(Object.assign({
self: 'dspace-angular://aggregated/object/1507836003548', _links: {
self: {
href: 'dspace-angular://aggregated/object/1507836003548',
}
},
requestPending: false, requestPending: false,
responsePending: false, responsePending: false,
isSuccessful: true, isSuccessful: true,
@@ -110,7 +125,11 @@ export const MockItem: Item = Object.assign(new Item(), {
})) }))
} }
])), ])),
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/items/0ec7ff22-f211-40ab-a69e-c819b0b1f357', _links:{
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/items/0ec7ff22-f211-40ab-a69e-c819b0b1f357'
}
},
id: '0ec7ff22-f211-40ab-a69e-c819b0b1f357', id: '0ec7ff22-f211-40ab-a69e-c819b0b1f357',
uuid: '0ec7ff22-f211-40ab-a69e-c819b0b1f357', uuid: '0ec7ff22-f211-40ab-a69e-c819b0b1f357',
type: 'item', type: 'item',
@@ -215,7 +234,11 @@ export const MockItem: Item = Object.assign(new Item(), {
] ]
}, },
owningCollection: observableOf({ owningCollection: observableOf({
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/collections/1c11f3f1-ba1f-4f36-908a-3f1ea9a557eb', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/collections/1c11f3f1-ba1f-4f36-908a-3f1ea9a557eb'
}
},
requestPending: false, requestPending: false,
responsePending: false, responsePending: false,
isSuccessful: true, isSuccessful: true,

View File

@@ -124,7 +124,11 @@ export const objects: DSpaceObject[] = [
scheduler: null scheduler: null
} }
}, },
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/communities/7669c72a-3f2a-451f-a3b9-9210e7a4c02f', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/communities/7669c72a-3f2a-451f-a3b9-9210e7a4c02f',
},
},
id: '7669c72a-3f2a-451f-a3b9-9210e7a4c02f', id: '7669c72a-3f2a-451f-a3b9-9210e7a4c02f',
uuid: '7669c72a-3f2a-451f-a3b9-9210e7a4c02f', uuid: '7669c72a-3f2a-451f-a3b9-9210e7a4c02f',
type: Community.type, type: Community.type,
@@ -178,7 +182,11 @@ export const objects: DSpaceObject[] = [
scheduler: null scheduler: null
} }
}, },
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/communities/9076bd16-e69a-48d6-9e41-0238cb40d863', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/communities/9076bd16-e69a-48d6-9e41-0238cb40d863',
},
},
id: '9076bd16-e69a-48d6-9e41-0238cb40d863', id: '9076bd16-e69a-48d6-9e41-0238cb40d863',
uuid: '9076bd16-e69a-48d6-9e41-0238cb40d863', uuid: '9076bd16-e69a-48d6-9e41-0238cb40d863',
type: Community.type, type: Community.type,

View File

@@ -111,7 +111,11 @@ export const objects = [
scheduler: null scheduler: null
} }
}, },
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/communities/7669c72a-3f2a-451f-a3b9-9210e7a4c02f', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/communities/7669c72a-3f2a-451f-a3b9-9210e7a4c02f',
},
},
id: '7669c72a-3f2a-451f-a3b9-9210e7a4c02f', id: '7669c72a-3f2a-451f-a3b9-9210e7a4c02f',
uuid: '7669c72a-3f2a-451f-a3b9-9210e7a4c02f', uuid: '7669c72a-3f2a-451f-a3b9-9210e7a4c02f',
type: Community.type, type: Community.type,
@@ -165,7 +169,11 @@ export const objects = [
scheduler: null scheduler: null
} }
}, },
self: 'https://dspace7.4science.it/dspace-spring-rest/api/core/communities/9076bd16-e69a-48d6-9e41-0238cb40d863', _links: {
self: {
href: 'https://dspace7.4science.it/dspace-spring-rest/api/core/communities/9076bd16-e69a-48d6-9e41-0238cb40d863',
},
},
id: '9076bd16-e69a-48d6-9e41-0238cb40d863', id: '9076bd16-e69a-48d6-9e41-0238cb40d863',
uuid: '9076bd16-e69a-48d6-9e41-0238cb40d863', uuid: '9076bd16-e69a-48d6-9e41-0238cb40d863',
type: Community.type, type: Community.type,

View File

@@ -108,10 +108,11 @@ const testFormConfiguration = {
] ]
} as FormRowModel, } as FormRowModel,
], ],
self: 'testFormConfiguration.url',
type: 'submissionform', type: 'submissionform',
_links: { _links: {
self: 'testFormConfiguration.url' self: {
href: 'testFormConfiguration.url'
}
} }
} as any; } as any;