[TLC-674] Fix findDuplicates error in claimed task (old code)

Update spec tests
This commit is contained in:
Kim Shepherd
2024-03-04 13:31:48 +13:00
parent 2000b1b240
commit ca32314951
5 changed files with 8 additions and 26 deletions

View File

@@ -18,6 +18,8 @@ import { PaginatedList } from '../data/paginated-list.model';
import { RequestParam } from '../cache/models/request-param.model'; import { RequestParam } from '../cache/models/request-param.model';
import { ObjectCacheService } from '../cache/object-cache.service'; import { ObjectCacheService } from '../cache/object-cache.service';
import { SearchData, SearchDataImpl } from '../data/base/search-data'; import { SearchData, SearchDataImpl } from '../data/base/search-data';
import { DUPLICATE } from '../../shared/object-list/duplicate-data/duplicate.resource-type';
import { dataService } from '../data/base/data-service.decorator';
/** /**
@@ -30,6 +32,7 @@ import { SearchData, SearchDataImpl } from '../data/base/search-data';
* *
*/ */
@Injectable() @Injectable()
@dataService(DUPLICATE)
export class SubmissionDuplicateDataService extends BaseDataService<Duplicate> implements SearchData<Duplicate> { export class SubmissionDuplicateDataService extends BaseDataService<Duplicate> implements SearchData<Duplicate> {
/** /**
@@ -120,8 +123,9 @@ export class SubmissionDuplicateDataService extends BaseDataService<Duplicate> i
findListOptions.searchParams = searchParams; findListOptions.searchParams = searchParams;
} }
// Perform the actual search by search // Return actual search/findByItem results
return this.searchBy('findByItem', findListOptions, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow); return this.searchBy('findByItem', findListOptions, useCachedVersionIfAvailable, reRequestOnStale, ...linksToFollow);
} }
/** /**

View File

@@ -29,7 +29,6 @@ import { environment } from '../../../../../environments/environment';
import { ObjectCacheService } from '../../../../core/cache/object-cache.service'; import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
import { Context } from '../../../../core/shared/context.model'; import { Context } from '../../../../core/shared/context.model';
import { createPaginatedList } from '../../../testing/utils.test'; import { createPaginatedList } from '../../../testing/utils.test';
import { ItemDataService } from '../../../../core/data/item-data.service';
import { SubmissionDuplicateDataService } from '../../../../core/submission/submission-duplicate-data.service'; import { SubmissionDuplicateDataService } from '../../../../core/submission/submission-duplicate-data.service';
import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model'; import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model';
import { ConfigurationDataService } from '../../../../core/data/configuration-data.service'; import { ConfigurationDataService } from '../../../../core/data/configuration-data.service';
@@ -41,9 +40,7 @@ const mockResultObject: ClaimedTaskSearchResult = new ClaimedTaskSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const emptyList = createSuccessfulRemoteDataObject(createPaginatedList([])); const emptyList = createSuccessfulRemoteDataObject(createPaginatedList([]));
const itemDataServiceStub = {
findListByHref: () => observableOf(emptyList),
};
const configurationDataService = jasmine.createSpyObj('configurationDataService', { const configurationDataService = jasmine.createSpyObj('configurationDataService', {
findByPropertyName: createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(), { findByPropertyName: createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(), {
name: 'duplicate.enable', name: 'duplicate.enable',
@@ -106,7 +103,6 @@ describe('ClaimedSearchResultListElementComponent', () => {
{ provide: DSONameService, useClass: DSONameServiceMock }, { provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: environment }, { provide: APP_CONFIG, useValue: environment },
{ provide: ObjectCacheService, useValue: objectCacheServiceMock }, { provide: ObjectCacheService, useValue: objectCacheServiceMock },
{ provide: ItemDataService, useValue: itemDataServiceStub },
{ provide: ConfigurationDataService, useValue: configurationDataService }, { provide: ConfigurationDataService, useValue: configurationDataService },
{ provide: SubmissionDuplicateDataService, useValue: duplicateDataServiceStub }, { provide: SubmissionDuplicateDataService, useValue: duplicateDataServiceStub },
], ],

View File

@@ -23,7 +23,6 @@ import { isNotEmpty, hasValue } from '../../../empty.util';
import { Context } from '../../../../core/shared/context.model'; import { Context } from '../../../../core/shared/context.model';
import { Duplicate } from '../../duplicate-data/duplicate.model'; import { Duplicate } from '../../duplicate-data/duplicate.model';
import { PaginatedList } from '../../../../core/data/paginated-list.model'; import { PaginatedList } from '../../../../core/data/paginated-list.model';
import { ItemDataService } from '../../../../core/data/item-data.service';
import { SubmissionDuplicateDataService } from '../../../../core/submission/submission-duplicate-data.service'; import { SubmissionDuplicateDataService } from '../../../../core/submission/submission-duplicate-data.service';
import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model'; import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model';
import { ConfigurationDataService } from '../../../../core/data/configuration-data.service'; import { ConfigurationDataService } from '../../../../core/data/configuration-data.service';
@@ -71,7 +70,6 @@ export class ClaimedSearchResultListElementComponent extends SearchResultListEle
protected truncatableService: TruncatableService, protected truncatableService: TruncatableService,
public dsoNameService: DSONameService, public dsoNameService: DSONameService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected itemDataService: ItemDataService,
protected configService: ConfigurationDataService, protected configService: ConfigurationDataService,
protected duplicateDataService: SubmissionDuplicateDataService, protected duplicateDataService: SubmissionDuplicateDataService,
@Inject(APP_CONFIG) protected appConfig: AppConfig @Inject(APP_CONFIG) protected appConfig: AppConfig
@@ -104,22 +102,12 @@ export class ClaimedSearchResultListElementComponent extends SearchResultListEle
tap((itemRD: RemoteData<Item>) => { tap((itemRD: RemoteData<Item>) => {
if (isNotEmpty(itemRD) && itemRD.hasSucceeded) { if (isNotEmpty(itemRD) && itemRD.hasSucceeded) {
this.item$.next(itemRD.payload); this.item$.next(itemRD.payload);
this.duplicates$ = this.duplicateDataService.findDuplicates(itemRD.payload.uuid).pipe(
getFirstCompletedRemoteData(),
map((remoteData: RemoteData<PaginatedList<Duplicate>>) => {
if (remoteData.hasSucceeded) {
if (remoteData.payload.page) {
return remoteData.payload.page;
}
}
})
);
} }
}) })
).subscribe(); ).subscribe();
this.showThumbnails = this.appConfig.browseBy.showThumbnails;
// Initialise duplicates, if enabled // Initialise duplicates, if enabled
this.duplicates$ = this.initializeDuplicateDetectionIfEnabled(); this.duplicates$ = this.initializeDuplicateDetectionIfEnabled();
this.showThumbnails = this.appConfig.browseBy.showThumbnails;
} }
/** /**

View File

@@ -28,7 +28,6 @@ import { APP_CONFIG } from '../../../../../config/app-config.interface';
import { ObjectCacheService } from '../../../../core/cache/object-cache.service'; import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
import { Context } from '../../../../core/shared/context.model'; import { Context } from '../../../../core/shared/context.model';
import { createPaginatedList } from '../../../testing/utils.test'; import { createPaginatedList } from '../../../testing/utils.test';
import { ItemDataService } from '../../../../core/data/item-data.service';
import { SubmissionDuplicateDataService } from '../../../../core/submission/submission-duplicate-data.service'; import { SubmissionDuplicateDataService } from '../../../../core/submission/submission-duplicate-data.service';
import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model'; import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model';
import { ConfigurationDataService } from '../../../../core/data/configuration-data.service'; import { ConfigurationDataService } from '../../../../core/data/configuration-data.service';
@@ -40,9 +39,7 @@ const mockResultObject: PoolTaskSearchResult = new PoolTaskSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const emptyList = createSuccessfulRemoteDataObject(createPaginatedList([])); const emptyList = createSuccessfulRemoteDataObject(createPaginatedList([]));
const itemDataServiceStub = {
findListByHref: () => observableOf(emptyList),
};
const configurationDataService = jasmine.createSpyObj('configurationDataService', { const configurationDataService = jasmine.createSpyObj('configurationDataService', {
findByPropertyName: createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(), { findByPropertyName: createSuccessfulRemoteDataObject$(Object.assign(new ConfigurationProperty(), {
name: 'duplicate.enable', name: 'duplicate.enable',
@@ -113,7 +110,6 @@ describe('PoolSearchResultListElementComponent', () => {
{ provide: DSONameService, useClass: DSONameServiceMock }, { provide: DSONameService, useClass: DSONameServiceMock },
{ provide: APP_CONFIG, useValue: environmentUseThumbs }, { provide: APP_CONFIG, useValue: environmentUseThumbs },
{ provide: ObjectCacheService, useValue: objectCacheServiceMock }, { provide: ObjectCacheService, useValue: objectCacheServiceMock },
{ provide: ItemDataService, useValue: itemDataServiceStub },
{ provide: ConfigurationDataService, useValue: configurationDataService }, { provide: ConfigurationDataService, useValue: configurationDataService },
{ provide: SubmissionDuplicateDataService, useValue: duplicateDataServiceStub } { provide: SubmissionDuplicateDataService, useValue: duplicateDataServiceStub }
], ],

View File

@@ -24,7 +24,6 @@ import { isNotEmpty, hasValue } from '../../../empty.util';
import { Context } from '../../../../core/shared/context.model'; import { Context } from '../../../../core/shared/context.model';
import { PaginatedList } from '../../../../core/data/paginated-list.model'; import { PaginatedList } from '../../../../core/data/paginated-list.model';
import { Duplicate } from '../../duplicate-data/duplicate.model'; import { Duplicate } from '../../duplicate-data/duplicate.model';
import { ItemDataService } from '../../../../core/data/item-data.service';
import { SubmissionDuplicateDataService } from '../../../../core/submission/submission-duplicate-data.service'; import { SubmissionDuplicateDataService } from '../../../../core/submission/submission-duplicate-data.service';
import { ConfigurationDataService } from '../../../../core/data/configuration-data.service'; import { ConfigurationDataService } from '../../../../core/data/configuration-data.service';
import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model'; import { ConfigurationProperty } from '../../../../core/shared/configuration-property.model';
@@ -81,7 +80,6 @@ export class PoolSearchResultListElementComponent extends SearchResultListElemen
protected truncatableService: TruncatableService, protected truncatableService: TruncatableService,
public dsoNameService: DSONameService, public dsoNameService: DSONameService,
protected objectCache: ObjectCacheService, protected objectCache: ObjectCacheService,
protected itemDataService: ItemDataService,
protected configService: ConfigurationDataService, protected configService: ConfigurationDataService,
protected duplicateDataService: SubmissionDuplicateDataService, protected duplicateDataService: SubmissionDuplicateDataService,
@Inject(APP_CONFIG) protected appConfig: AppConfig @Inject(APP_CONFIG) protected appConfig: AppConfig