test: 💍 add tests for useObservable() hook

This commit is contained in:
streamich 2019-05-30 20:43:53 +02:00
parent d0c3713dec
commit 3a0c683099
3 changed files with 37 additions and 0 deletions

View File

@ -1,3 +1,4 @@
module.exports = {
presets: ['@babel/preset-env', '@babel/preset-react', "@babel/preset-typescript"],
plugins: ['@babel/plugin-syntax-dynamic-import']
};

View File

@ -44,6 +44,7 @@
},
"homepage": "https://github.com/streamich/react-use#readme",
"dependencies": {
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"copy-to-clipboard": "^3.1.0",
"nano-css": "^5.1.0",
"react-fast-compare": "^2.0.4",

View File

@ -0,0 +1,35 @@
import { act, renderHook } from 'react-hooks-testing-library';
import { Subject } from 'rxjs';
import { useObservable } from '..';
test('default initial value is undefined', () => {
const subject$ = new Subject();
const { result } = renderHook(() => useObservable(subject$));
expect(result.current).toBe(undefined);
});
test('can specify initial value', () => {
const subject$ = new Subject();
const { result } = renderHook(() => useObservable(subject$, 123));
expect(result.current).toBe(123);
});
test('returns the latest value of observables', () => {
const subject$ = new Subject();
const { result } = renderHook(() => useObservable(subject$, 123));
act(() => {
subject$.next(125);
});
expect(result.current).toBe(125);
act(() => {
subject$.next(300);
subject$.next(400);
});
expect(result.current).toBe(400);
});
xtest('subscribes to observable only once', () => {});