mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import {RemoteData} from '../../core/data/remote-data';
|
|
import {hot} from 'jasmine-marbles';
|
|
import {Item} from '../../core/shared/item.model';
|
|
import {findSuccessfulAccordingTo} from './edit-item-operators';
|
|
import {
|
|
createFailedRemoteDataObject,
|
|
createSuccessfulRemoteDataObject
|
|
} from '../../shared/testing/utils';
|
|
|
|
describe('findSuccessfulAccordingTo', () => {
|
|
let mockItem1;
|
|
let mockItem2;
|
|
let predicate;
|
|
|
|
beforeEach(() => {
|
|
mockItem1 = new Item();
|
|
mockItem1.isWithdrawn = true;
|
|
|
|
mockItem2 = new Item();
|
|
mockItem1.isWithdrawn = false;
|
|
|
|
predicate = (rd: RemoteData<Item>) => rd.payload.isWithdrawn;
|
|
});
|
|
it('should return first successful RemoteData Observable that complies to predicate', () => {
|
|
const testRD = {
|
|
a: createSuccessfulRemoteDataObject(undefined),
|
|
b: createFailedRemoteDataObject(mockItem1),
|
|
c: createSuccessfulRemoteDataObject(mockItem2),
|
|
d: createSuccessfulRemoteDataObject(mockItem1),
|
|
e: createSuccessfulRemoteDataObject(mockItem2),
|
|
};
|
|
|
|
const source = hot('abcde', testRD);
|
|
const result = source.pipe(findSuccessfulAccordingTo(predicate));
|
|
|
|
result.subscribe((value) => expect(value).toEqual(testRD.d));
|
|
});
|
|
|
|
});
|