Skip to content

Commit 45ce26d

Browse files
authored
Tests: Unit Tests for Objects (#25378)
* Update Bone.tests.js Bone.isBone should be true. * Update Group.tests.js Group.type should be Group. Group.isGroup should be true. * Update Bone.tests.js Bone.type should be Bone * Create InstancedMesh.tests.js Add unit tests for InstancedMesh * Update Line.tests.js Line.type should be Line. Line.isLine should be true. Add missing member test stubs. * Update LineLoop.tests.js LineLoop.type should be LineLoop LineLoop.isLineLoop should be true Add missing member test stubs. * Update LineSegments.tests.js LineSegments.type should be LineSegments LineSegments.isLineSegments should be true Add missing member test stubs. * Update LOD.tests.js LOD.type should be LOD Add missing member test stubs. * Update Mesh.tests.js Mesh.type should be Mesh. Mesh.isMesh should be true. Add missing member test stubs. Clone is defined by parent class and not redefined here. * Update Points.tests.js Points.type should be Points. Points.isPoints should be true. Add missing member test stubs. Clone is defined by parent class and not redefined here. * Update Skeleton.tests.js Add missing member test stubs. * Update SkinnedMesh.tests.js SkinnedMesh.type should be SkinnedMesh. SkinnedMesh.bindMode should be attached. SkinnedMesh.isSkinnedMesh should be true. Add missing member test stubs. Clone is defined by a parent class and not redefined here. * Update Sprite.tests.js Sprite.type should be Sprite. Sprite.isSprite should be true. Add missing member test stubs. Clone is defined by parent class and not redefined here. * Update three.source.unit.js Add InstancedMesh to list of unit tests.
1 parent 34608f6 commit 45ce26d

13 files changed

+518
-34
lines changed

test/unit/src/objects/Bone.tests.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,25 @@ export default QUnit.module( 'Objects', () => {
2323

2424
} );
2525

26-
// PUBLIC STUFF
27-
QUnit.todo( 'isBone', ( assert ) => {
26+
// PROPERTIES
27+
QUnit.test( 'type', ( assert ) => {
2828

29-
assert.ok( false, 'everything\'s gonna be alright' );
29+
const object = new Bone();
30+
assert.ok(
31+
object.type === 'Bone',
32+
'Bone.type should be Bone'
33+
);
34+
35+
} );
36+
37+
// PUBLIC
38+
QUnit.test( 'isBone', ( assert ) => {
39+
40+
const object = new Bone();
41+
assert.ok(
42+
object.isBone,
43+
'Bone.isBone should be true'
44+
);
3045

3146
} );
3247

test/unit/src/objects/Group.tests.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,28 @@ export default QUnit.module( 'Objects', () => {
2323

2424
} );
2525

26+
// PROPERTIES
27+
QUnit.test( 'type', ( assert ) => {
28+
29+
const object = new Group();
30+
assert.ok(
31+
object.type === 'Group',
32+
'Group.type should be Group'
33+
);
34+
35+
} );
36+
37+
// PUBLIC
38+
QUnit.test( 'isGroup', ( assert ) => {
39+
40+
const object = new Group();
41+
assert.ok(
42+
object.isGroup,
43+
'Group.isGroup should be true'
44+
);
45+
46+
} );
47+
2648
} );
2749

2850
} );
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
/* global QUnit */
2+
3+
import { InstancedMesh } from '../../../../src/objects/InstancedMesh.js';
4+
5+
import { Mesh } from '../../../../src/objects/Mesh.js';
6+
7+
export default QUnit.module( 'Objects', () => {
8+
9+
QUnit.module( 'InstancedMesh', () => {
10+
11+
// INHERITANCE
12+
QUnit.test( 'Extending', ( assert ) => {
13+
14+
var object = new InstancedMesh();
15+
16+
assert.strictEqual( object instanceof Mesh, true, 'InstancedMesh extends from Mesh' );
17+
18+
} );
19+
20+
// INSTANCING
21+
QUnit.todo( 'Instancing', ( assert ) => {
22+
23+
assert.ok( false, 'everything\'s gonna be alright' );
24+
25+
} );
26+
27+
// PROPERTIES
28+
QUnit.todo( 'instanceMatrix', ( assert ) => {
29+
30+
// InstancedBufferAttribute
31+
assert.ok( false, 'everything\'s gonna be alright' );
32+
33+
} );
34+
35+
QUnit.todo( 'instanceColor', ( assert ) => {
36+
37+
assert.ok( false, 'everything\'s gonna be alright' );
38+
39+
} );
40+
41+
QUnit.todo( 'count', ( assert ) => {
42+
43+
assert.ok( false, 'everything\'s gonna be alright' );
44+
45+
} );
46+
47+
QUnit.todo( 'frustumCulled', ( assert ) => {
48+
49+
assert.ok( false, 'everything\'s gonna be alright' );
50+
51+
} );
52+
53+
// PUBLIC STUFF
54+
QUnit.test( 'isInstancedMesh', ( assert ) => {
55+
56+
const object = new InstancedMesh();
57+
assert.ok(
58+
object.isInstancedMesh,
59+
'InstancedMesh.isInstancedMesh should be true'
60+
);
61+
62+
} );
63+
64+
QUnit.todo( 'copy', ( assert ) => {
65+
66+
assert.ok( false, 'everything\'s gonna be alright' );
67+
68+
} );
69+
70+
QUnit.todo( 'getColorAt', ( assert ) => {
71+
72+
assert.ok( false, 'everything\'s gonna be alright' );
73+
74+
} );
75+
76+
QUnit.todo( 'getMatrixAt', ( assert ) => {
77+
78+
assert.ok( false, 'everything\'s gonna be alright' );
79+
80+
} );
81+
82+
QUnit.todo( 'raycast', ( assert ) => {
83+
84+
assert.ok( false, 'everything\'s gonna be alright' );
85+
86+
} );
87+
88+
QUnit.todo( 'setColorAt', ( assert ) => {
89+
90+
assert.ok( false, 'everything\'s gonna be alright' );
91+
92+
} );
93+
94+
QUnit.todo( 'setMatrixAt', ( assert ) => {
95+
96+
assert.ok( false, 'everything\'s gonna be alright' );
97+
98+
} );
99+
100+
QUnit.todo( 'updateMorphTargets', ( assert ) => {
101+
102+
// signature defined, no implementation
103+
assert.ok( false, 'everything\'s gonna be alright' );
104+
105+
} );
106+
107+
QUnit.todo( 'dispose', ( assert ) => {
108+
109+
assert.ok( false, 'everything\'s gonna be alright' );
110+
111+
} );
112+
113+
} );
114+
115+
} );

test/unit/src/objects/LOD.tests.js

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@ export default QUnit.module( 'Objects', () => {
1818
} );
1919

2020
// PROPERTIES
21+
QUnit.test( 'type', ( assert ) => {
22+
23+
const object = new LOD();
24+
assert.ok(
25+
object.type === 'LOD',
26+
'LOD.type should be LOD'
27+
);
28+
29+
} );
30+
2131
QUnit.test( 'levels', ( assert ) => {
2232

2333
var lod = new LOD();
@@ -30,20 +40,21 @@ export default QUnit.module( 'Objects', () => {
3040

3141
QUnit.test( 'autoUpdate', ( assert ) => {
3242

33-
var lod = new LOD();
43+
const lod = new LOD();
3444

3545
assert.strictEqual( lod.autoUpdate, true, 'LOD.autoUpdate is of type boolean and true by default.' );
3646

3747
} );
3848

39-
// PUBLIC STUFF
49+
// PUBLIC
4050
QUnit.test( 'isLOD', ( assert ) => {
4151

42-
var lod = new LOD();
52+
const lod = new LOD();
4353

4454
assert.strictEqual( lod.isLOD, true, '.isLOD property is defined.' );
4555

4656
} );
57+
4758
QUnit.test( 'copy', ( assert ) => {
4859

4960
var lod1 = new LOD();
@@ -65,6 +76,7 @@ export default QUnit.module( 'Objects', () => {
6576
assert.strictEqual( lod2.levels.length, 3, 'LOD.levels has the correct length after the copy.' );
6677

6778
} );
79+
6880
QUnit.test( 'addLevel', ( assert ) => {
6981

7082
var lod = new LOD();
@@ -83,6 +95,13 @@ export default QUnit.module( 'Objects', () => {
8395
assert.deepEqual( lod.levels[ 2 ], { distance: 50, object: low, hysteresis: 0.10 }, 'Third entry correct.' );
8496

8597
} );
98+
99+
QUnit.todo( 'getCurrentLevel', ( assert ) => {
100+
101+
assert.ok( false, 'everything\'s gonna be alright' );
102+
103+
} );
104+
86105
QUnit.test( 'getObjectForDistance', ( assert ) => {
87106

88107
var lod = new LOD();
@@ -108,6 +127,7 @@ export default QUnit.module( 'Objects', () => {
108127
assert.strictEqual( lod.getObjectForDistance( 60 ), low, 'Returns the low resolution object.' );
109128

110129
} );
130+
111131
QUnit.test( 'raycast', ( assert ) => {
112132

113133
var lod = new LOD();
@@ -119,11 +139,13 @@ export default QUnit.module( 'Objects', () => {
119139
assert.strictEqual( intersections.length, 0, 'Does not fail if raycasting is used with a LOD object without levels.' );
120140

121141
} );
142+
122143
QUnit.todo( 'update', ( assert ) => {
123144

124145
assert.ok( false, 'everything\'s gonna be alright' );
125146

126147
} );
148+
127149
QUnit.todo( 'toJSON', ( assert ) => {
128150

129151
assert.ok( false, 'everything\'s gonna be alright' );

test/unit/src/objects/Line.tests.js

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,47 @@ export default QUnit.module( 'Objects', () => {
2323

2424
} );
2525

26-
// PUBLIC STUFF
27-
QUnit.todo( 'isLine', ( assert ) => {
26+
// PROPERTIES
27+
QUnit.test( 'type', ( assert ) => {
28+
29+
const object = new Line();
30+
assert.ok(
31+
object.type === 'Line',
32+
'Line.type should be Line'
33+
);
34+
35+
} );
36+
37+
QUnit.todo( 'geometry', ( assert ) => {
38+
39+
assert.ok( false, 'everything\'s gonna be alright' );
40+
41+
} );
42+
43+
QUnit.todo( 'material', ( assert ) => {
44+
45+
assert.ok( false, 'everything\'s gonna be alright' );
46+
47+
} );
48+
49+
// PUBLIC
50+
QUnit.test( 'isLine', ( assert ) => {
51+
52+
const object = new Line();
53+
assert.ok(
54+
object.isLine,
55+
'Line.isLine should be true'
56+
);
57+
58+
} );
59+
60+
QUnit.todo( 'copy', ( assert ) => {
61+
62+
assert.ok( false, 'everything\'s gonna be alright' );
63+
64+
} );
65+
66+
QUnit.todo( 'computeLineDistances', ( assert ) => {
2867

2968
assert.ok( false, 'everything\'s gonna be alright' );
3069

@@ -36,12 +75,18 @@ export default QUnit.module( 'Objects', () => {
3675

3776
} );
3877

39-
QUnit.todo( 'clone', ( assert ) => {
78+
QUnit.todo( 'updateMorphTargets', ( assert ) => {
4079

4180
assert.ok( false, 'everything\'s gonna be alright' );
4281

4382
} );
4483

84+
QUnit.todo( 'clone', ( assert ) => {
85+
86+
// inherited from Object3D, test instance specific behaviour.
87+
assert.ok( false, 'everything\'s gonna be alright' );
88+
89+
} );
4590

4691
} );
4792

test/unit/src/objects/LineLoop.tests.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,27 @@ export default QUnit.module( 'Objects', () => {
2525

2626
} );
2727

28-
// PUBLIC STUFF
29-
QUnit.todo( 'isLineLoop', ( assert ) => {
28+
// PROPERTIES
29+
QUnit.test( 'type', ( assert ) => {
3030

31-
assert.ok( false, 'everything\'s gonna be alright' );
31+
const object = new LineLoop();
32+
assert.ok(
33+
object.type === 'LineLoop',
34+
'LineLoop.type should be LineLoop'
35+
);
3236

3337
} );
3438

39+
// PUBLIC
40+
QUnit.test( 'isLineLoop', ( assert ) => {
41+
42+
const object = new LineLoop();
43+
assert.ok(
44+
object.isLineLoop,
45+
'LineLoop.isLineLoop should be true'
46+
);
47+
48+
} );
3549

3650
} );
3751

test/unit/src/objects/LineSegments.tests.js

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,33 @@ export default QUnit.module( 'Objects', () => {
2525

2626
} );
2727

28-
// PUBLIC STUFF
29-
QUnit.todo( 'isLineSegments', ( assert ) => {
28+
// PROPERTIES
29+
QUnit.test( 'type', ( assert ) => {
3030

31-
assert.ok( false, 'everything\'s gonna be alright' );
31+
const object = new LineSegments();
32+
assert.ok(
33+
object.type === 'LineSegments',
34+
'LineSegments.type should be LineSegments'
35+
);
36+
37+
} );
38+
39+
// PUBLIC
40+
QUnit.test( 'isLineSegments', ( assert ) => {
41+
42+
const object = new LineSegments();
43+
assert.ok(
44+
object.isLineSegments,
45+
'LineSegments.isLineSegments should be true'
46+
);
3247

3348
} );
3449

50+
QUnit.todo( 'computeLineDistances', ( assert ) => {
51+
52+
assert.ok( false, 'everything\'s gonna be alright' );
53+
54+
} );
3555

3656
} );
3757

0 commit comments

Comments
 (0)