From 9e8b353dea7bf7922a4c194757730b54f1878e9c Mon Sep 17 00:00:00 2001 From: Jerko Steiner Date: Wed, 13 Nov 2019 22:06:17 -0300 Subject: [PATCH] Fix all TypeScript tests --- src/client/components/Toolbar.tsx | 6 +++--- src/client/components/Video.test.tsx | 12 ++++++------ src/client/components/Video.tsx | 8 ++++---- src/client/window.test.ts | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/client/components/Toolbar.tsx b/src/client/components/Toolbar.tsx index 3cb1019..c53973c 100644 --- a/src/client/components/Toolbar.tsx +++ b/src/client/components/Toolbar.tsx @@ -1,4 +1,4 @@ -import React, { ReactEventHandler } from 'react' +import React, { ReactEventHandler, ChangeEvent } from 'react' import classnames from 'classnames' import screenfull from 'screenfull' import { Message } from '../actions/ChatActions' @@ -72,9 +72,9 @@ extends React.PureComponent { handleSendFile = () => { this.file.current!.click() } - handleSelectFiles: ReactEventHandler = event => { + handleSelectFiles = (event: React.ChangeEvent) => { Array - .from(this.file.current!.files!) + .from(event.target!.files!) .forEach(file => this.props.onSendFile(file)) } handleToggleChat = () => { diff --git a/src/client/components/Video.test.tsx b/src/client/components/Video.test.tsx index c55db6b..b95f487 100644 --- a/src/client/components/Video.test.tsx +++ b/src/client/components/Video.test.tsx @@ -81,8 +81,8 @@ describe('components/Video', () => { await render() }) - it('Mirrored and active propogate to rendered classes', () => { - render({ active: true, mirrored: true }) + it('Mirrored and active propogate to rendered classes', async () => { + await render({ active: true, mirrored: true }) expect(wrapper.className).toBe('video-container active mirrored') }) }) @@ -91,25 +91,25 @@ describe('components/Video', () => { describe('src', () => { beforeEach(async () => { await render() - delete video.video.current!.srcObject + delete video.videoRef.current!.srcObject }) it('updates src only when changed', () => { mediaStream = new MediaStream() component.setState({ stream: { url: 'test', stream: mediaStream, userId: '' }, }) - expect(video.video.current!.src).toBe('http://localhost/test') + expect(video.videoRef.current!.src).toBe('http://localhost/test') component.setState({ stream: { url: 'test', stream: mediaStream, userId: '' }, }) }) it('updates srcObject only when changed', () => { - video.video.current!.srcObject = null + video.videoRef.current!.srcObject = null mediaStream = new MediaStream() component.setState({ stream: { url: 'test', stream: mediaStream, userId: '' }, }) - expect(video.video.current!.srcObject).toBe(mediaStream) + expect(video.videoRef.current!.srcObject).toBe(mediaStream) component.setState({ stream: { url: 'test', stream: mediaStream, userId: '' }, }) diff --git a/src/client/components/Video.tsx b/src/client/components/Video.tsx index 82b9e0d..5ae2d2b 100644 --- a/src/client/components/Video.tsx +++ b/src/client/components/Video.tsx @@ -14,7 +14,7 @@ export interface VideoProps { } export default class Video extends React.PureComponent { - video = React.createRef() + videoRef = React.createRef() static defaultProps = { muted: false, @@ -34,10 +34,10 @@ export default class Video extends React.PureComponent { } componentDidUpdate () { const { videos, stream } = this.props - const video = this.video.current! + const video = this.videoRef.current! const mediaStream = stream && stream.stream || null const url = stream && stream.url - if (!('srcObject' in video as unknown)) { + if ('srcObject' in video as unknown) { if (video.srcObject !== mediaStream) { video.srcObject = mediaStream } @@ -57,7 +57,7 @@ export default class Video extends React.PureComponent { onClick={this.handleClick} onLoadedMetadata={this.play} playsInline - ref={this.video} + ref={this.videoRef} muted={muted} /> diff --git a/src/client/window.test.ts b/src/client/window.test.ts index 589d47c..daf6513 100644 --- a/src/client/window.test.ts +++ b/src/client/window.test.ts @@ -21,12 +21,12 @@ describe('window', () => { delete (navigator as any).webkitGetUserMedia }) - it('calls navigator.mediaDevices.getUserMedia', () => { + it('calls navigator.mediaDevices.getUserMedia', async () => { const promise = Promise.resolve(stream); (navigator as any).mediaDevices = { getUserMedia: jest.fn().mockReturnValue(promise), } - expect(getUserMedia(constraints)).toBe(promise) + expect(await getUserMedia(constraints)).toBe(stream) }) ;['getUserMedia', 'webkitGetUserMedia'].forEach((method) => {