@@ -7,7 +7,8 @@ import { pipe } from 'fp-ts/lib/pipeable'
77import { bufferTime } from 'rxjs/operators'
88import { monoidString } from 'fp-ts/lib/Monoid'
99import * as _ from '../src/ObservableThese'
10- import { of as rxOf , Observable } from 'rxjs'
10+ import { of as rxOf , Observable , from } from 'rxjs'
11+ import { filter } from '../src/Observable'
1112
1213describe ( 'ObservableThese' , ( ) => {
1314 it ( 'rightIO' , async ( ) => {
@@ -93,6 +94,30 @@ describe('ObservableThese', () => {
9394 assert . deepStrictEqual ( e , [ TH . both ( 2 , 1 ) ] )
9495 } )
9596
97+ it ( 'liftOperator (left)' , async ( ) => {
98+ const e = await pipe ( from ( [ 'error1' , 'error2' ] ) , _ . leftObservable , _ . liftOperator ( filter ( x => x % 2 === 0 ) ) )
99+ . pipe ( bufferTime ( 10 ) )
100+ . toPromise ( )
101+ assert . deepStrictEqual ( e , [ TH . left ( 'error1' ) , TH . left ( 'error2' ) ] )
102+ } )
103+
104+ it ( 'liftOperator (right)' , async ( ) => {
105+ const e = await pipe ( from ( [ 1 , 2 , 3 , 4 ] ) , _ . rightObservable , _ . liftOperator ( filter ( x => x % 2 === 0 ) ) )
106+ . pipe ( bufferTime ( 10 ) )
107+ . toPromise ( )
108+ assert . deepStrictEqual ( e , [ TH . right ( 2 ) , TH . right ( 4 ) ] )
109+ } )
110+
111+ it ( 'liftOperator (both)' , async ( ) => {
112+ const e = await pipe (
113+ from ( [ TH . both ( 'error1' , 1 ) , TH . both ( 'error2' , 2 ) , TH . both ( 'error3' , 3 ) , TH . both ( 'error4' , 4 ) ] ) ,
114+ _ . liftOperator ( filter ( x => x % 2 === 0 ) )
115+ )
116+ . pipe ( bufferTime ( 10 ) )
117+ . toPromise ( )
118+ assert . deepStrictEqual ( e , [ TH . both ( 'error2' , 2 ) , TH . both ( 'error4' , 4 ) ] )
119+ } )
120+
96121 it ( 'map' , async ( ) => {
97122 const f = ( n : number ) : number => n * 2
98123 assert . deepStrictEqual ( await pipe ( _ . right ( 1 ) , _ . map ( f ) ) . toPromise ( ) , TH . right ( 2 ) )
0 commit comments