Skip to content

Commit

Permalink
test(dtslint): change scan operator dtslint test to reduce-like (#4093)
Browse files Browse the repository at this point in the history
  • Loading branch information
dkosasih committed Jan 30, 2019
1 parent b779e62 commit 8d5551a
Showing 1 changed file with 8 additions and 12 deletions.
20 changes: 8 additions & 12 deletions spec-dtslint/operators/scan-spec.ts
@@ -1,23 +1,19 @@
import { of } from 'rxjs';
import { scan } from 'rxjs/operators';

it('should enforce accumulator function as parameter', () => {
it('should enforce parameter', () => {
const a = of(1, 2, 3).pipe(scan()); // $ExpectError
});

it('should infer correctly with single T value', () => {
const a = of(1, 2, 3).pipe(scan((acc, val, i) => acc + val)); // $ExpectType Observable<number>
it('should infer correctly ', () => {
const a = of(1, 2, 3).pipe(scan((x, y, z) => x + 1)); // $ExpectType Observable<number>
});

it('should do a type check on seed parameter', () => {
const b = of(1, 2, 3).pipe(scan((acc, val, i) => acc + val, 0)); // $ExpectType Observable<number>
const a = of(1, 2, 3).pipe(scan((acc, val, i) => acc + val, 'y')); // $ExpectError
it('should infer correctly for accumulator of type array', () => {
const a = of(1, 2, 3).pipe(scan((x: number[], y: number, i: number) => x, [])); // $ExpectType Observable<number[]>
});

it('should infer correctly with Array of T value', () => {
const a = of(1, 2, 3).pipe(scan((acc: number[], val: number, i) => [...acc, val])); // $ExpectType Observable<number[]>
});

it('should infer correctly with type change accumulator', () => {
const a = of(1, 2, 3).pipe(scan((acc: string, val: number, i) => `${acc} ' ' ${val}`)); // $ $expectType Observable<string>
it('should accept seed parameter of the same type', () => {
const a = of(1, 2, 3).pipe(scan((x, y, z) => x + 1, 5)); // $ExpectType Observable<number>
const b = of(1, 2, 3).pipe(scan((x, y, z) => x + 1, '5')); // $ExpectError
});

0 comments on commit 8d5551a

Please sign in to comment.