whs
Version:
Super-fast 3D framework for Web Applications & Games. Based on Three.js
141 lines (114 loc) • 3.28 kB
JavaScript
import '../../polyfill';
import * as WHS from '../../index';
import {FogModule} from '../app/FogModule';
import gl from 'gl';
const app = new WHS.App();
const modules = {};
// console.log((typeof performance === 'undefined' ? Date : performance).now());
test('ElementModule', () => {
modules.element = new WHS.ElementModule();
});
test('SceneModule', () => {
modules.scene = new WHS.SceneModule();
});
test('DefineModule', () => {
modules.camera = new WHS.DefineModule('camera', new WHS.PerspectiveCamera());
});
test('RenderingModule', () => {
modules.rendering = new WHS.RenderingModule({
renderer: {
context: gl(10, 10)
}
});
});
test('PostProcessorModule', () => {
modules.postprocessor = new WHS.PostProcessorModule();
});
test('ResizeModule', () => {
modules.resize = new WHS.ResizeModule();
});
test('VirtualMouseModule', () => {
modules.mouse = new WHS.VirtualMouseModule();
});
// TODO move Modules tests into individual specs
const defaultFog = new FogModule();
test('FogModule', () => {
modules.fog = defaultFog;
});
describe('Default Fog', () => {
test('is a FogExp2', () => {
expect(defaultFog.fog.isFogExp2).toBeTruthy();
});
test('has the default color', () => {
expect(defaultFog.fog.color.getHex()).toBe(0xefd1b5);
});
test('has the default density', () => {
expect(defaultFog.fog.density).toBeCloseTo(0.020);
});
});
describe('Linear Fog', () => {
const linearFog = new FogModule({}, 'linear');
test('is a Fog', () => {
expect(linearFog.fog.isFog).toBeTruthy();
});
test('has the default color', () => {
expect(linearFog.fog.color.getHex()).toBe(0xefd1b5);
});
test('has the default near value', () => {
expect(linearFog.fog.near).toBe(10);
});
test('has the default far value', () => {
expect(linearFog.fog.far).toBe(1000);
});
});
describe('Custom Fog', () => {
const fogColor = 0xffffff;
const fogDensity = 0.025;
const customExp2Fog = new FogModule({color: fogColor, density: fogDensity});
test('is set with the color param', () => {
expect(customExp2Fog.fog.color.getHex()).toBe(fogColor);
});
test('s set with the density param', () => {
expect(customExp2Fog.fog.density).toBeCloseTo(fogDensity);
});
});
test('Applying basic modules to app', () => {
app
.module(modules.element)
.module(modules.scene)
.module(modules.camera)
.module(modules.rendering)
.module(modules.postprocessor)
.module(modules.resize)
.module(modules.mouse)
.module(modules.fog);
app.start();
});
test('OrbitModule', () => {
modules.orbit = new WHS.OrbitControlsModule();
});
test('Applying controls modules to app', () => {
app.module(modules.orbit);
app.start();
});
describe('DynamicGeometryModule', () => {
modules.dym = new WHS.DynamicGeometryModule();
test('has false attributes by default', () => {
expect(modules.dym.attributes).toBeFalsy();
});
});
test('TextureModule', () => {
modules.texture = new WHS.TextureModule({
url: 'myurl.png'
});
});
// TODO: fix applying modules to mesh
// test('Applying modules to mesh', () => {
// const element = new WHS.Sphere();
//
// element
// .module(modules.dym)
// .module(modules.texture);
//
// element.start();
// });