diff --git a/config/package/test/exists.js b/config/package/test/exists.js index 72d8dc2..de4b693 100644 --- a/config/package/test/exists.js +++ b/config/package/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/behavior/test/exists.js b/packages/behavior/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/behavior/test/exists.js +++ b/packages/behavior/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/core/test/exists.js b/packages/core/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/core/test/exists.js +++ b/packages/core/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/core/test/property.js b/packages/core/test/property.js index 1c0b537..a17394f 100644 --- a/packages/core/test/property.js +++ b/packages/core/test/property.js @@ -21,7 +21,7 @@ describe('@avocado/core', () => { }, })(class {}) {}; const object = new Class(); - expect(hasInitialized).to.equal(true); + expect(hasInitialized).to.be.true; }); it('accepts defaults', () => { class Class extends Property('property', { @@ -59,9 +59,9 @@ describe('@avocado/core', () => { emit(type, o, v) {emitted = ('propertyChanged' === type && 420 === v)} }; const object = new Class(); - expect(emitted).to.equal(false); + expect(emitted).to.be.false; object.property = 420; - expect(emitted).to.equal(true); + expect(emitted).to.be.true; }); it('accepts emitter', () => { let emitted = false; @@ -72,9 +72,9 @@ describe('@avocado/core', () => { track: true, })(class {}) {}; const object = new Class(); - expect(emitted).to.equal(false); + expect(emitted).to.be.false; object.property = 420; - expect(emitted).to.equal(true); + expect(emitted).to.be.true; }); it('accepts comparator', () => { let emitted = false; @@ -88,11 +88,11 @@ describe('@avocado/core', () => { track: true, })(class {}) {}; const object = new Class(); - expect(emitted).to.equal(false); + expect(emitted).to.be.false; object.property = [0, 0]; - expect(emitted).to.equal(false); + expect(emitted).to.be.false; object.property = [1, 0]; - expect(emitted).to.equal(true); + expect(emitted).to.be.true; }); }); }); diff --git a/packages/entity/src/list/list.js b/packages/entity/src/list/list.js index bc2132f..0fc7c77 100644 --- a/packages/entity/src/list/list.js +++ b/packages/entity/src/list/list.js @@ -68,7 +68,6 @@ export default (latus) => class EntityList extends decorate(JsonResource) { if ('client' !== SIDE) { this._informedEntities.set(entity, []); } - entity.hydrate(); entity.attachToList(this); entity.once('destroy', () => { this.removeEntity(entity); diff --git a/packages/entity/src/packets/trait-update-positioned-position.js b/packages/entity/src/packets/trait-update-positioned-position.js index 55b0145..1b659be 100644 --- a/packages/entity/src/packets/trait-update-positioned-position.js +++ b/packages/entity/src/packets/trait-update-positioned-position.js @@ -4,25 +4,18 @@ import {Packet} from '@latus/socket'; export default class TraitUpdatePositionedPositionPacket extends Packet { static pack(packet) { - const data = packet.data[1]; - data.position = Vector.packToUint32(data.position); + // eslint-disable-next-line no-param-reassign + packet.data[1] = Vector.packToUint32(packet.data[1]); return super.pack(packet); } - static get schema() { - return { - ...super.schema, - data: { - position: 'uint32', - }, - }; + static get data() { + return 'uint32'; } static unpack(packet) { const unpacked = super.unpack(packet); - const {data} = unpacked; - data.position = Vector.unpackFromUint32(data.position); - return unpacked; + return Vector.unpackFromUint32(unpacked); } } diff --git a/packages/entity/src/traits/mobile.js b/packages/entity/src/traits/mobile.js index 9fc355f..288b2f5 100644 --- a/packages/entity/src/traits/mobile.js +++ b/packages/entity/src/traits/mobile.js @@ -82,18 +82,24 @@ export default class Mobile extends decorate(Trait) { methods() { return { - moveFor: (vector, duration) => new TickingPromise( - () => {}, - (elapsed, resolve) => { - // eslint-disable-next-line no-param-reassign - duration -= elapsed; - if (duration <= 0) { - resolve(); - return; - } - this.entity.requestMovement(Vector.normalize(vector)); - }, - ), + moveFor: (vector, duration) => { + if (duration <= 0) { + return undefined; + } + this.entity.requestMovement(Vector.normalize(vector)); + return new TickingPromise( + () => {}, + (elapsed, resolve) => { + // eslint-disable-next-line no-param-reassign + duration -= elapsed; + if (duration <= 0) { + resolve(); + return; + } + this.entity.requestMovement(Vector.normalize(vector)); + }, + ); + }, applyMovement: (vector) => { this.appliedMovement = Vector.add(this.appliedMovement, vector); diff --git a/packages/entity/src/traits/positioned.js b/packages/entity/src/traits/positioned.js index da6c92b..81dfcdb 100644 --- a/packages/entity/src/traits/positioned.js +++ b/packages/entity/src/traits/positioned.js @@ -19,6 +19,26 @@ const decorate = compose( // < 16768 will pack into 1 short per axe and give +/- 0.25 precision. export default class Positioned extends decorate(Trait) { + constructor(...args) { + super(...args); + this.on('_positionChanged', this.on_positionChanged, this); + const {x, y} = this.state; + this._position = [x, y]; + this.entity.position[0] = x; + this.entity.position[1] = y; + if ('client' === SIDE) { + this.serverPosition = this._position; + this.serverPositionDirty = false; + this.on('serverPositionChanged', this.onServerPositionChanged, this); + } + } + + acceptPacket(packet) { + if ('TraitUpdatePositionedPosition' === packet.constructor.type) { + [this.serverX, this.serverY] = packet.data; + } + } + static behaviorTypes() { return { position: { @@ -57,20 +77,6 @@ export default class Positioned extends decorate(Trait) { }; } - constructor(...args) { - super(...args); - this.on('_positionChanged', this.on_positionChanged, this); - const {x, y} = this.state; - this._position = [x, y]; - this.entity.position[0] = x; - this.entity.position[1] = y; - if ('client' === SIDE) { - this.serverPosition = this._position; - this.serverPositionDirty = false; - this.on('serverPositionChanged', this.onServerPositionChanged, this); - } - } - destroy() { this.off('_positionChanged', this.on_positionChanged); if ('client' === SIDE) { @@ -78,12 +84,6 @@ export default class Positioned extends decorate(Trait) { } } - acceptPacket(packet) { - if ('TraitUpdatePositionedPosition' === packet.constructor.type) { - [this.serverX, this.serverY] = packet.data.position; - } - } - // eslint-disable-next-line camelcase on_positionChanged(oldPosition, newPosition) { [this.entity.position[0], this.entity.position[1]] = newPosition; @@ -102,10 +102,8 @@ export default class Positioned extends decorate(Trait) { const {x, y} = this.stateDifferences(); if (x || y) { return [ - 'TraitUpdatePositionedPositionPacket', - { - position: this.entity.position, - }, + 'TraitUpdatePositionedPosition', + this.entity.position, ]; } return undefined; diff --git a/packages/entity/src/traits/spawner.js b/packages/entity/src/traits/spawner.js index f08ff3c..c344d93 100644 --- a/packages/entity/src/traits/spawner.js +++ b/packages/entity/src/traits/spawner.js @@ -140,15 +140,15 @@ export default (latus) => class Spawner extends decorate(Trait) { if (!json.traits) { json.traits = {}; } - if (!json.traits.positioned) { - json.traits.positioned = {}; + if (!json.traits.Positioned) { + json.traits.Positioned = {}; } - if (!json.traits.positioned.state) { - json.traits.positioned.state = {}; + if (!json.traits.Positioned.state) { + json.traits.Positioned.state = {}; } [ - json.traits.positioned.state.x, - json.traits.positioned.state.y, + json.traits.Positioned.state.x, + json.traits.Positioned.state.y, ] = position; /* eslint-enable no-param-reassign */ return json; @@ -156,14 +156,14 @@ export default (latus) => class Spawner extends decorate(Trait) { destinationEntityList() { if ( - this.entity.is('listed') + this.entity.is('Listed') && this.entity.list ) { return this.entity.list; } if ( this.entity.wielder - && this.entity.wielder.is('listed') + && this.entity.wielder.is('Listed') && this.entity.wielder.list ) { return this.entity.wielder.list; @@ -220,7 +220,13 @@ export default (latus) => class Spawner extends decorate(Trait) { if (!spawnJSON) { return undefined; } - return this.entity.spawnRaw(merge(spawnJSON, json)); + return this.entity.spawnRaw(merge( + spawnJSON, + json, + { + arrayMerge: (l, r) => r, + }, + )); }, spawnAt: (key, position, json = {}) => ( @@ -238,7 +244,7 @@ export default (latus) => class Spawner extends decorate(Trait) { this.children.push(null); const list = this.destinationEntityList(); const {fromResourceType: {Entity}} = resource(latus); - const child = await Entity.loadOrInstance(json); + const child = await Entity.load(json); this.children[childIndex] = child; // Listen for destroy event. const listener = this.removeChild.bind(this, child); @@ -249,7 +255,7 @@ export default (latus) => class Spawner extends decorate(Trait) { return child; }, - spawnRawAt: (position, json = {}) => ( + spawnRawAt: (json = {}, position) => ( this.maySpawn() ? this.entity.spawnRaw(this.augmentJSONWithPosition(json, position)) : undefined diff --git a/packages/entity/test/alive.js b/packages/entity/test/alive.js index cb656d1..cec72ce 100644 --- a/packages/entity/test/alive.js +++ b/packages/entity/test/alive.js @@ -35,15 +35,15 @@ describe(name, () => { }); }); it('exists', async () => { - expect(entity.is('Alive')).to.equal(true); + expect(entity.is('Alive')).to.be.true; }); it('is alive', async () => { - expect(entity.isDying).to.equal(false); + expect(entity.isDying).to.be.false; }); it('can die', async () => { entity.life = 0; entity.tick(0); - expect(entity.isDying).to.equal(true); + expect(entity.isDying).to.be.true; }); it('clamps life', async () => { entity.life = 120; @@ -65,10 +65,10 @@ describe(name, () => { }, }); entity.tick(0); - expect(entity.isDying).to.equal(false); + expect(entity.isDying).to.be.false; entity.life = 10; entity.tick(0); - expect(entity.isDying).to.equal(true); + expect(entity.isDying).to.be.true; }); it('runs actions on death', async () => { let didActions; @@ -94,7 +94,7 @@ describe(name, () => { }, 16.66); await entity.forceDeath(); clearInterval(handle); - expect(didActions).to.equal(true); + expect(didActions).to.be.true; }); describe('Packets', () => { let entity2; @@ -124,7 +124,7 @@ describe(name, () => { expect(packets[0].constructor.type).to.equal('TraitUpdateAlive'); expect(packets[0].data).to.deep.equal({life: 0, maxLife: 100}); expect(packets[1].constructor.type).to.equal('Died'); - expect(entity2.isDying).to.equal(false); + expect(entity2.isDying).to.be.false; const promise = new Promise((resolve) => { entity2.on('isDyingChanged', resolve); }); diff --git a/packages/entity/test/directional.js b/packages/entity/test/directional.js index 1cb854f..f7e3a64 100644 --- a/packages/entity/test/directional.js +++ b/packages/entity/test/directional.js @@ -33,7 +33,7 @@ describe(name, () => { }); }); it('exists', async () => { - expect(entity.is('Directional')).to.equal(true); + expect(entity.is('Directional')).to.be.true; }); it('tracks movement', async () => { entity.emit('movementRequest', [1, 0]); diff --git a/packages/entity/test/entity.js b/packages/entity/test/entity.js index da8d4e1..f67a85a 100644 --- a/packages/entity/test/entity.js +++ b/packages/entity/test/entity.js @@ -34,9 +34,9 @@ describe(name, () => { traits(latus).fromType['TestTrait'] = TestTrait; const trait = await TestTrait.load(); entity.addTrait([TestTrait, {}]); - expect(entity.is('TestTrait')).to.equal(true); + expect(entity.is('TestTrait')).to.be.true; entity.removeTrait('TestTrait'); - expect(entity.is('TestTrait')).to.equal(false); + expect(entity.is('TestTrait')).to.be.false; }); it('can add traits asynchronously', async () => { const DELAY = 30; diff --git a/packages/entity/test/existent.js b/packages/entity/test/existent.js index e90d4e9..0893e0e 100644 --- a/packages/entity/test/existent.js +++ b/packages/entity/test/existent.js @@ -27,7 +27,7 @@ describe(name, () => { }); }); it('exists', async () => { - expect(entity.is('Existent')).to.equal(true); + expect(entity.is('Existent')).to.be.true; }); it('can transition', async () => { entity.foobar = 10; @@ -43,7 +43,7 @@ describe(name, () => { return tickingPromise; }); it('can be destroyed', async () => { - expect(entity.isTicking).to.equal(true); + expect(entity.isTicking).to.be.true; const promise = Promise.all([ new Promise((resolve) => { entity.on('destroy', resolve); diff --git a/packages/entity/test/exists.js b/packages/entity/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/entity/test/exists.js +++ b/packages/entity/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/entity/test/listed.js b/packages/entity/test/listed.js index be92243..4293249 100644 --- a/packages/entity/test/listed.js +++ b/packages/entity/test/listed.js @@ -28,7 +28,7 @@ describe(name, () => { }); }); it('exists', async () => { - expect(entity.is('Listed')).to.equal(true); + expect(entity.is('Listed')).to.be.true; }); it('can be added to list quadtree', async () => { entity.isVisible = true; diff --git a/packages/entity/test/mobile.js b/packages/entity/test/mobile.js index 6bce74f..17dd346 100644 --- a/packages/entity/test/mobile.js +++ b/packages/entity/test/mobile.js @@ -24,19 +24,51 @@ describe(name, () => { entity = await Entity.load({ traits: { Mobile: {}, + Positioned: {}, }, }); }); it('exists', async () => { - expect(entity.is('Mobile')).to.equal(true); + expect(entity.is('Mobile')).to.be.true; }); it('can request movement', async () => { + entity.speed = 100; + entity.requestMovement([1, 0]); + entity.tick(1); + expect(entity.position).to.deep.equal([100, 0]); + entity.tick(1); + expect(entity.position).to.deep.equal([100, 0]); + entity.isMobile = false; + entity.requestMovement([1, 0]); + entity.tick(1); + expect(entity.position).to.deep.equal([100, 0]); }); it('can apply movement', async () => { + const trait = entity.traitInstance('Mobile'); + entity.applyMovement([10, 0]); + expect(trait.appliedMovement).to.deep.equal([10, 0]); + entity.applyMovement([10, 0]); + expect(trait.appliedMovement).to.deep.equal([20, 0]); + entity.tick(0); + expect(trait.appliedMovement).to.deep.equal([0, 0]); }); it('can force movement', async () => { + expect(entity.speed).to.equal(0); + entity.forceMovement([10, 0]); + expect(entity.position).to.deep.equal([10, 0]); }); it('can move for a time', async () => { + entity.speed = 10; + const tickingPromise = entity.moveFor([1, 0], 1); + entity.addTickingPromise(tickingPromise); + expect(entity.position).to.deep.equal([0, 0]); + entity.tick(0.25); + expect(entity.position).to.deep.equal([2.5, 0]); + entity.tick(0.25); + expect(entity.position).to.deep.equal([5, 0]); + entity.tick(0.5); + expect(entity.position).to.deep.equal([10, 0]); + return tickingPromise; }); }); }); diff --git a/packages/entity/test/perishable.js b/packages/entity/test/perishable.js index 44e7b84..2d6c8b8 100644 --- a/packages/entity/test/perishable.js +++ b/packages/entity/test/perishable.js @@ -23,14 +23,29 @@ describe(name, () => { beforeEach(async () => { entity = await Entity.load({ traits: { - Perishable: {}, + Existent: {}, + Perishable: { + params: { + ttl: 10, + }, + }, }, }); }); it('exists', async () => { - expect(entity.is('Perishable')).to.equal(true); + expect(entity.is('Perishable')).to.be.true; }); it('expires', async () => { + const promise = Promise.all([ + new Promise((resolve) => { + entity.on('destroy', resolve); + }), + new Promise((resolve) => { + entity.on('destroyed', resolve); + }), + ]); + entity.tick(10); + return promise; }); }); }); diff --git a/packages/entity/test/positioned.js b/packages/entity/test/positioned.js index 11242ee..2c44a39 100644 --- a/packages/entity/test/positioned.js +++ b/packages/entity/test/positioned.js @@ -1,4 +1,5 @@ import {resource} from '@avocado/resource'; +import {normalize} from '@avocado/s13n'; import {Latus} from '@latus/core'; import {expect} from 'chai'; @@ -13,6 +14,7 @@ describe(name, () => { ['@avocado/entity', `${__dirname}/../src`], '@avocado/resource', '@avocado/traits', + '@latus/socket', ]); await Promise.all(latus.invokeFlat('@latus/core/starting')); ({fromResourceType: {Entity, EntityList}} = resource(latus)); @@ -28,9 +30,23 @@ describe(name, () => { }); }); it('exists', async () => { - expect(entity.is('Positioned')).to.equal(true); + expect(entity.is('Positioned')).to.be.true; }); it('generates and accepts movement packets', async () => { + entity.setPosition([1, 1]); + const packets = normalize(latus, entity.traitInstance('Positioned').packets()); + expect(packets).to.have.lengthOf(1); + expect(packets[0].constructor.type).to.equal('TraitUpdatePositionedPosition'); + expect(packets[0].data).to.deep.equal([1, 1]); + const entity2 = await Entity.load({ + traits: { + Positioned: {}, + }, + }); + expect(entity2.position).to.deep.equal([0, 0]); + const trait = entity2.traitInstance('Positioned'); + trait.acceptPacket(packets[0]); + expect(trait.serverPosition).to.deep.equal([1, 1]); }); }); }); diff --git a/packages/entity/test/spawner.js b/packages/entity/test/spawner.js index d2f688f..0bbcb58 100644 --- a/packages/entity/test/spawner.js +++ b/packages/entity/test/spawner.js @@ -20,21 +20,81 @@ describe(name, () => { describe('Traits', () => { describe('Spawner', () => { let entity; + let list; beforeEach(async () => { entity = await Entity.load({ traits: { - Spawner: {}, + Listed: {}, + Spawner: { + params: { + spawns: { + testy: { + traits: { + Alive: {}, + Listed: {}, + Positioned: {}, + }, + }, + }, + }, + }, }, }); + list = new EntityList(); + list.addEntity(entity); }); it('exists', async () => { - expect(entity.is('Spawner')).to.equal(true); + expect(entity.is('Spawner')).to.be.true; }); - it('can spawn from list', async () => { + it('can spawn from key', async () => { + const spawned = await entity.spawn('testy'); + expect(spawned.is('Alive')).to.be.true; + const spawned2 = await entity.spawn('testy', { + traits: { + Alive: { + state: { + life: 50, + }, + }, + }, + }); + expect(spawned2.life).to.equal(50); + const spawned3 = await entity.spawnAt('testy', [69, 420]); + expect(spawned3.position).to.deep.equal([69, 420]); }); it('can spawn from arbitrary JSON', async () => { + const spawned = await entity.spawnRaw({ + traits: { + Listed: {}, + Mobile: {}, + }, + }); + expect(spawned.is('Mobile')).to.be.true; + const spawned2 = await entity.spawnRawAt( + { + traits: { + Listed: {}, + Mobile: {}, + }, + }, + [311, 200], + ); + expect(spawned2.position).to.deep.equal([311, 200]); }); it('can kill all children', async () => { + const COUNT = 15; + for (let i = 0; i < COUNT; ++i) { + await entity.spawnRaw({ + traits: { + Existent: {}, + Listed: {}, + Mobile: {}, + }, + }); + } + expect(Object.keys(list._entities)).to.have.lengthOf(COUNT + 1); + entity.killAllChildren(); + expect(Object.keys(list._entities)).to.have.lengthOf(1); }); }); }); diff --git a/packages/graphics/test/exists.js b/packages/graphics/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/graphics/test/exists.js +++ b/packages/graphics/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/input/test/exists.js b/packages/input/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/input/test/exists.js +++ b/packages/input/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/math/test/exists.js b/packages/math/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/math/test/exists.js +++ b/packages/math/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/math/test/rectangle.js b/packages/math/test/rectangle.js index 0e96bea..8a99dcf 100644 --- a/packages/math/test/rectangle.js +++ b/packages/math/test/rectangle.js @@ -5,17 +5,17 @@ import * as Rectangle from '../src/rectangle' describe('@avocado/math', () => { describe('Rectangle', function() { it('can calculate intersections', function() { - expect(Rectangle.intersects([0, 0, 16, 16], [8, 8, 24, 24])).to.equal(true); - expect(Rectangle.intersects([0, 0, 16, 16], [16, 16, 32, 32])).to.equal(false); - expect(Rectangle.isTouching([0, 0, 16, 16], [0, 0])).to.equal(true); - expect(Rectangle.isTouching([0, 0, 16, 16], [16, 16])).to.equal(false); + expect(Rectangle.intersects([0, 0, 16, 16], [8, 8, 24, 24])).to.be.true; + expect(Rectangle.intersects([0, 0, 16, 16], [16, 16, 32, 32])).to.be.false; + expect(Rectangle.isTouching([0, 0, 16, 16], [0, 0])).to.be.true; + expect(Rectangle.isTouching([0, 0, 16, 16], [16, 16])).to.be.false; expect(Rectangle.intersection([0, 0, 16, 16], [8, 8, 24, 24])).to.deep.equal([8, 8, 8, 8]); expect(Rectangle.united([0, 0, 4, 4], [4, 4, 8, 8])).to.deep.equal([0, 0, 12, 12]); }); it('can compose and decompose', function() { var rectangle; rectangle = Rectangle.compose([0, 0], [16, 16]); - expect(Rectangle.equals(rectangle, [0, 0, 16, 16])).to.equal(true); + expect(Rectangle.equals(rectangle, [0, 0, 16, 16])).to.be.true; expect(Rectangle.position(rectangle)).to.deep.equal([0, 0]); expect(Rectangle.size(rectangle)).to.deep.equal([16, 16]); }); @@ -23,9 +23,9 @@ describe('@avocado/math', () => { var rectangle, rectangle2; rectangle = [0, 0, 16, 16]; rectangle2 = Rectangle.copy(rectangle); - expect(Rectangle.equals(rectangle, rectangle2)).to.equal(true); + expect(Rectangle.equals(rectangle, rectangle2)).to.be.true; rectangle[0] = 6; - expect(Rectangle.equals(rectangle, rectangle2)).to.equal(false); + expect(Rectangle.equals(rectangle, rectangle2)).to.be.false; }); it('can convert to an object', function() { var rectangle; @@ -47,14 +47,14 @@ describe('@avocado/math', () => { expect(Rectangle.translated([0, 0, 16, 16], [8, 8])).to.deep.equal([8, 8, 16, 16]); }); it('can check for null', function() { - expect(Rectangle.isNull(null)).to.equal(true); - expect(Rectangle.isNull(3)).to.equal(true); - expect(Rectangle.isNull([1])).to.equal(true); - expect(Rectangle.isNull([1, 1])).to.equal(true); - expect(Rectangle.isNull([1, 1, 1])).to.equal(true); - expect(Rectangle.isNull([1, 1, 1, 1, 1])).to.equal(true); - expect(Rectangle.isNull([0, 0, 1, 1])).to.equal(false); - expect(Rectangle.isNull([0, 0, 1, 0])).to.equal(true); + expect(Rectangle.isNull(null)).to.be.true; + expect(Rectangle.isNull(3)).to.be.true; + expect(Rectangle.isNull([1])).to.be.true; + expect(Rectangle.isNull([1, 1])).to.be.true; + expect(Rectangle.isNull([1, 1, 1])).to.be.true; + expect(Rectangle.isNull([1, 1, 1, 1, 1])).to.be.true; + expect(Rectangle.isNull([0, 0, 1, 1])).to.be.false; + expect(Rectangle.isNull([0, 0, 1, 0])).to.be.true; }); it('can round', function() { expect(Rectangle.round([3.14, 4.70, 5.32, 1.8])).to.deep.equal([3, 5, 5, 2]); diff --git a/packages/math/test/vector.js b/packages/math/test/vector.js index 0f1ce95..c60f2f7 100644 --- a/packages/math/test/vector.js +++ b/packages/math/test/vector.js @@ -56,20 +56,20 @@ describe('@avocado/math', () => { it('can deep copy', () => { const vector = [0, 0]; const vector2 = Vector.copy(vector); - expect(Vector.equals(vector, vector2)).to.equal(true); + expect(Vector.equals(vector, vector2)).to.be.true; vector[0] = 1; - expect(Vector.equals(vector, vector2)).to.equal(false); + expect(Vector.equals(vector, vector2)).to.be.false; }); it('can test for 0', () => { - expect(Vector.isZero([0, 0])).to.equal(true); - expect(Vector.isZero([1, 0])).to.equal(false); + expect(Vector.isZero([0, 0])).to.be.true; + expect(Vector.isZero([1, 0])).to.be.false; }); it('can test for NULL', () => { - expect(Vector.isNull([0, 1])).to.equal(true); - expect(Vector.isNull([1, 1])).to.equal(false); - expect(Vector.isNull(null)).to.equal(true); - expect(Vector.isNull([1])).to.equal(true); - expect(Vector.isNull([1, 1, 1])).to.equal(true); + expect(Vector.isNull([0, 1])).to.be.true; + expect(Vector.isNull([1, 1])).to.be.false; + expect(Vector.isNull(null)).to.be.true; + expect(Vector.isNull([1])).to.be.true; + expect(Vector.isNull([1, 1, 1])).to.be.true; }); it('can calculate angle', () => { expect(Vector.toRadians([1, 0])).to.be.closeTo(0, 0.0001); diff --git a/packages/physics/test/exists.js b/packages/physics/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/physics/test/exists.js +++ b/packages/physics/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/resource/test/exists.js b/packages/resource/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/resource/test/exists.js +++ b/packages/resource/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/s13n/test/exists.js b/packages/s13n/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/s13n/test/exists.js +++ b/packages/s13n/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/sound/test/exists.js b/packages/sound/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/sound/test/exists.js +++ b/packages/sound/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/timing/test/exists.js b/packages/timing/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/timing/test/exists.js +++ b/packages/timing/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/topdown/test/exists.js b/packages/topdown/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/topdown/test/exists.js +++ b/packages/topdown/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) }); diff --git a/packages/traits/test/exists.js b/packages/traits/test/exists.js index 72d8dc2..de4b693 100644 --- a/packages/traits/test/exists.js +++ b/packages/traits/test/exists.js @@ -4,6 +4,6 @@ const {name} = require('../package.json'); describe(name, () => { it('exists', () => { - expect(true).to.equal(true); + expect(true).to.be.true; }) });