首页 > 解决方案 > 开玩笑:提供的元素或 ID 无效。(视频)

问题描述

在运行一个笑话覆盖测试时,我不断得到element or ID supplied is not valid. (videojs)指向我的 JS 行:this.player = videojs(this.videoPlayerID, this.videoJSConfig);. 我不确定我在测试中做错了什么或没有提供什么。

js

import videojs from 'video.js';

class IVSPlayer {
  constructor(data) {
    this.player = {};
    this.registerIVSTech = data.ivsTech;
    this.videoPlayerID = data.id;
    this.videoJSConfig = data.config;
  }

  init() {
    this.registerIVSTech(videojs);
    this.videoJSConfig.techOrder = ['AmazonIVS'];
    this.player = videojs(this.videoPlayerID, this.videoJSConfig);
    return this.player;
  }
}

export default IVSPlayer;

测试

/**
 * @jest-environment jsdom
 */
import ivsPlayer from './../../../ivs-player';
import { VIDEO_PLAYER_ID } from '../../../asset-constants';
import { VIDEO_JS_CONFIG } from './../../../create-player';
import videojs from './../../../node_modules/video.js';


describe('#ivsPlayer', () => {
  it('creates an instance of the IVS player', () => {
    const registerIVSTech = jest.fn();
    const player = new ivsPlayer({ id: VIDEO_PLAYER_ID, config: VIDEO_JS_CONFIG, ivsTech: registerIVSTech });

    expect(player).toBeTruthy();
  });
  it('initializes the IVS player', () => {
    jest.spyOn(ivsPlayer.prototype, 'init');
    const registerIVSTech = jest.fn();
    const player = new ivsPlayer({ id: VIDEO_PLAYER_ID, config: VIDEO_JS_CONFIG, ivsTech: registerIVSTech });

    player.init();

    player.videoJSConfig.techOrder = jest.fn().mockReturnValue(['AmazonIVS']);

    player.registerIVSTech = jest.fn().mockReturnValue(player);


    expect(player.init).toHaveBeenCalledTimes(1);
  });
});

标签: javascriptjestjs

解决方案


推荐阅读