webgl-mock-threejs

0.0.1 • Public • Published

webgl-mock-threejs

Dependency Status

A simple implementation-less interface for testing code outside of WebGL & three.js, forked from webgl-mock

Motivation

Since THREE.WebGLRenderer asks WebGLContext much detail of graphic capability of device, original webgl-mock could not be used to test apps with three.js, causing NPE stuffs. This package simply has additional mock-answers for THREE.WebGLRenderer, allowing it to run in node.

It also includes mock for navigator object since THREE.WebGLRenderer does not run without it.

Installation

Requires node.

npm i -D webgl-mock-threejs

Usage

Instantiate HTMLCanvasElement and pass it to your app which uses THREE.WebGLRenderer:

require('webgl-mock-threejs');

const canvas = new HTMLCanvasElement( 640, 480 );

describe("App test", () => {
  it("Can initialize successfully", async () => {
    let app = new YourApp(canvas);
    await app.init();
  })
})

Your app would be like:

class YourApp {

  constructor( canvas ) {

    this.renderer = null;
    this.canvas = canvas;

  }

  async init() {

    this.renderer = new THREE.WebGLRenderer({ canvas: this.canvas });

    /* your code continues.. */

  }

}

Warning

Importing this module results to inject global.nagivator mock to global namespace of Node, if no another exists. If you get some problems around navigator, this module may have caused it.

canvas arg for app constructor/init function? I don't want it!

I'm planning jsdom integration which enables to add HTMLCanvasElement into DOM elements.

Package Sidebar

Install

npm i webgl-mock-threejs

Weekly Downloads

262

Version

0.0.1

License

MIT

Unpacked Size

22.5 kB

Total Files

9

Last publish

Collaborators

  • namamono1129