Fix all TypeScript tests

This commit is contained in:
Jerko Steiner 2019-11-13 22:06:17 -03:00
parent 4659151892
commit 9e8b353dea
4 changed files with 15 additions and 15 deletions

View File

@ -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<ToolbarProps, ToolbarState> {
handleSendFile = () => {
this.file.current!.click()
}
handleSelectFiles: ReactEventHandler<HTMLInputElement> = event => {
handleSelectFiles = (event: React.ChangeEvent<HTMLInputElement>) => {
Array
.from(this.file.current!.files!)
.from(event.target!.files!)
.forEach(file => this.props.onSendFile(file))
}
handleToggleChat = () => {

View File

@ -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: '' },
})

View File

@ -14,7 +14,7 @@ export interface VideoProps {
}
export default class Video extends React.PureComponent<VideoProps> {
video = React.createRef<HTMLVideoElement>()
videoRef = React.createRef<HTMLVideoElement>()
static defaultProps = {
muted: false,
@ -34,10 +34,10 @@ export default class Video extends React.PureComponent<VideoProps> {
}
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<VideoProps> {
onClick={this.handleClick}
onLoadedMetadata={this.play}
playsInline
ref={this.video}
ref={this.videoRef}
muted={muted}
/>
</div>

View File

@ -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) => {