Fix all TypeScript tests
This commit is contained in:
parent
4659151892
commit
9e8b353dea
@ -1,4 +1,4 @@
|
|||||||
import React, { ReactEventHandler } from 'react'
|
import React, { ReactEventHandler, ChangeEvent } from 'react'
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import screenfull from 'screenfull'
|
import screenfull from 'screenfull'
|
||||||
import { Message } from '../actions/ChatActions'
|
import { Message } from '../actions/ChatActions'
|
||||||
@ -72,9 +72,9 @@ extends React.PureComponent<ToolbarProps, ToolbarState> {
|
|||||||
handleSendFile = () => {
|
handleSendFile = () => {
|
||||||
this.file.current!.click()
|
this.file.current!.click()
|
||||||
}
|
}
|
||||||
handleSelectFiles: ReactEventHandler<HTMLInputElement> = event => {
|
handleSelectFiles = (event: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
Array
|
Array
|
||||||
.from(this.file.current!.files!)
|
.from(event.target!.files!)
|
||||||
.forEach(file => this.props.onSendFile(file))
|
.forEach(file => this.props.onSendFile(file))
|
||||||
}
|
}
|
||||||
handleToggleChat = () => {
|
handleToggleChat = () => {
|
||||||
|
|||||||
@ -81,8 +81,8 @@ describe('components/Video', () => {
|
|||||||
await render()
|
await render()
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Mirrored and active propogate to rendered classes', () => {
|
it('Mirrored and active propogate to rendered classes', async () => {
|
||||||
render({ active: true, mirrored: true })
|
await render({ active: true, mirrored: true })
|
||||||
expect(wrapper.className).toBe('video-container active mirrored')
|
expect(wrapper.className).toBe('video-container active mirrored')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -91,25 +91,25 @@ describe('components/Video', () => {
|
|||||||
describe('src', () => {
|
describe('src', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await render()
|
await render()
|
||||||
delete video.video.current!.srcObject
|
delete video.videoRef.current!.srcObject
|
||||||
})
|
})
|
||||||
it('updates src only when changed', () => {
|
it('updates src only when changed', () => {
|
||||||
mediaStream = new MediaStream()
|
mediaStream = new MediaStream()
|
||||||
component.setState({
|
component.setState({
|
||||||
stream: { url: 'test', stream: mediaStream, userId: '' },
|
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({
|
component.setState({
|
||||||
stream: { url: 'test', stream: mediaStream, userId: '' },
|
stream: { url: 'test', stream: mediaStream, userId: '' },
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
it('updates srcObject only when changed', () => {
|
it('updates srcObject only when changed', () => {
|
||||||
video.video.current!.srcObject = null
|
video.videoRef.current!.srcObject = null
|
||||||
mediaStream = new MediaStream()
|
mediaStream = new MediaStream()
|
||||||
component.setState({
|
component.setState({
|
||||||
stream: { url: 'test', stream: mediaStream, userId: '' },
|
stream: { url: 'test', stream: mediaStream, userId: '' },
|
||||||
})
|
})
|
||||||
expect(video.video.current!.srcObject).toBe(mediaStream)
|
expect(video.videoRef.current!.srcObject).toBe(mediaStream)
|
||||||
component.setState({
|
component.setState({
|
||||||
stream: { url: 'test', stream: mediaStream, userId: '' },
|
stream: { url: 'test', stream: mediaStream, userId: '' },
|
||||||
})
|
})
|
||||||
|
|||||||
@ -14,7 +14,7 @@ export interface VideoProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default class Video extends React.PureComponent<VideoProps> {
|
export default class Video extends React.PureComponent<VideoProps> {
|
||||||
video = React.createRef<HTMLVideoElement>()
|
videoRef = React.createRef<HTMLVideoElement>()
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
muted: false,
|
muted: false,
|
||||||
@ -34,10 +34,10 @@ export default class Video extends React.PureComponent<VideoProps> {
|
|||||||
}
|
}
|
||||||
componentDidUpdate () {
|
componentDidUpdate () {
|
||||||
const { videos, stream } = this.props
|
const { videos, stream } = this.props
|
||||||
const video = this.video.current!
|
const video = this.videoRef.current!
|
||||||
const mediaStream = stream && stream.stream || null
|
const mediaStream = stream && stream.stream || null
|
||||||
const url = stream && stream.url
|
const url = stream && stream.url
|
||||||
if (!('srcObject' in video as unknown)) {
|
if ('srcObject' in video as unknown) {
|
||||||
if (video.srcObject !== mediaStream) {
|
if (video.srcObject !== mediaStream) {
|
||||||
video.srcObject = mediaStream
|
video.srcObject = mediaStream
|
||||||
}
|
}
|
||||||
@ -57,7 +57,7 @@ export default class Video extends React.PureComponent<VideoProps> {
|
|||||||
onClick={this.handleClick}
|
onClick={this.handleClick}
|
||||||
onLoadedMetadata={this.play}
|
onLoadedMetadata={this.play}
|
||||||
playsInline
|
playsInline
|
||||||
ref={this.video}
|
ref={this.videoRef}
|
||||||
muted={muted}
|
muted={muted}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -21,12 +21,12 @@ describe('window', () => {
|
|||||||
delete (navigator as any).webkitGetUserMedia
|
delete (navigator as any).webkitGetUserMedia
|
||||||
})
|
})
|
||||||
|
|
||||||
it('calls navigator.mediaDevices.getUserMedia', () => {
|
it('calls navigator.mediaDevices.getUserMedia', async () => {
|
||||||
const promise = Promise.resolve(stream);
|
const promise = Promise.resolve(stream);
|
||||||
(navigator as any).mediaDevices = {
|
(navigator as any).mediaDevices = {
|
||||||
getUserMedia: jest.fn().mockReturnValue(promise),
|
getUserMedia: jest.fn().mockReturnValue(promise),
|
||||||
}
|
}
|
||||||
expect(getUserMedia(constraints)).toBe(promise)
|
expect(await getUserMedia(constraints)).toBe(stream)
|
||||||
})
|
})
|
||||||
|
|
||||||
;['getUserMedia', 'webkitGetUserMedia'].forEach((method) => {
|
;['getUserMedia', 'webkitGetUserMedia'].forEach((method) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user