Skip to content

Jest testing utilities for Three.js. Includes a snapshot serializer for Three.js objects.

License

Notifications You must be signed in to change notification settings

Bartozzz/jest-three

This branch is 361 commits ahead of dbkaplun/three-snapshot-serializer:master.

Folders and files

NameName
Last commit message
Last commit date
Apr 7, 2020
Apr 7, 2020
Apr 22, 2021
Apr 22, 2021
Apr 22, 2021
Oct 21, 2019
Oct 21, 2019
Oct 21, 2019
Apr 7, 2020
Oct 21, 2019
Aug 3, 2021
Jul 9, 2021
Apr 7, 2020
Apr 7, 2020

Repository files navigation

jest-three

Default CI/CD Known Vulnerabilities npm version npm dependency Status npm downloads

Jest testing utilities for Three.js. Includes a snapshot serializer for Three.js objects.

Installation

npm install --save-dev jest-three

Snapshot Serializer

The easiest way to test Three.js objects is with the snapshot serializer. You can register the serializer via the snapshotSerializers configuration property in your jest configuration like so:

// jest.config.js
module.exports = {
  snapshotSerializers: ["jest-three"],
};

Or you can customize the serializer via the createSnapshotSerializer method like so:

import { createSnapshotSerializer } from "jest-three";

expect.addSnapshotSerializer(
  createSnapshotSerializer({
    shouldReplaceUUIDs: true,
  })
);

You can also import toJSON to use the snapshot serializer in one assertion, like so:

import { toJSON } from "jest-three";

expect(toJSON(object)).toMatchSnapshot();
// …where `object` is an instance of `THREE.Object3D`

Factories

We have prepared some factories to create basic Three.js objects such as a WebGL renderer, camera and scene.

createCamera

import { createCamera } from "jest-three";

const config = {};
const camera = createCamera(config);

expect(camera).toBeInstanceOf(THREE.PerspectiveCamera);

createRenderer

import { createRenderer } from "jest-three";

const config = {};
const renderer = createRenderer(config);

expect(renderer).toBeInstanceOf(THREE.WebGLRenderer);

Note: Canvas is build with canvas.

Note: WebGL context is build with gl.

createScene

import { createScene } from "jest-three";

const objA = new THREE.Mesh();
const objB = new THREE.Mesh();
const scene = createScene();

scene.add(objA);
expect(scene.children.length).toBe(1);
expect(scene.children[0]).toBe(objA);

scene.add(objB);
expect(scene.children.length).toBe(2);
expect(scene.children[1]).toBe(objB);

Tests

$ npm test

Thanks

Thanks to Dan Kaplun who wrote three-snapshot-serializer which this library is based on.

About

Jest testing utilities for Three.js. Includes a snapshot serializer for Three.js objects.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 97.4%
  • JavaScript 2.6%