Skip to content

Commit

Permalink
Add unit tests for entity events
Browse files Browse the repository at this point in the history
  • Loading branch information
minecrawler committed Jul 7, 2023
1 parent c0a2fb2 commit 00fd039
Showing 1 changed file with 78 additions and 0 deletions.
78 changes: 78 additions & 0 deletions src/entity/entity.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,82 @@ describe('Test Entity', () => {
entity.addComponent(component);
expect(entity.addComponent.bind(entity, component)).to.throw();
});

it('Events: AddComponent', () => {
const component = {};
const entity = new Entity();
let eventCalled = false;

entity.addEventListener("addComponent", event => {
assert.equal(event.componentInstance, component);
eventCalled = true;
});

entity.addComponent(component);
assert.equal(eventCalled, true);
});

it('Events: AddTag', () => {
const tag = 'awww';
const entity = new Entity();
let eventCalled = false;

entity.addEventListener("addTag", event => {
assert.equal(event.tag, tag);
eventCalled = true;
});

entity.addTag(tag);
assert.equal(eventCalled, true);
});

it('Events: Clone', () => {
const component = {
foo: 42,
};
const entity = new Entity();
let eventCalled = false;

entity.addEventListener("clone", event => {
assert.equal(event.original, entity);
assert.equal(event.clone.getComponents().next()!.value.foo, component.foo);
eventCalled = true;
});

entity.addComponent(component);
entity.clone(new SerDe());
assert.equal(eventCalled, true);
});

it('Events: RemoveComponent', () => {
const component = {};
const entity = new Entity();
let eventCalled = false;

entity.addEventListener("removeComponent", event => {
assert.equal(event.componentInstance, component);
eventCalled = true;
});

entity.addComponent(component);
assert.equal(eventCalled, false);
entity.removeComponent(component);
assert.equal(eventCalled, true);
});

it('Events: RemoveTag', () => {
const tag = 'awww';
const entity = new Entity();
let eventCalled = false;

entity.addEventListener("removeTag", event => {
assert.equal(event.tag, tag);
eventCalled = true;
});

entity.addTag(tag);
assert.equal(eventCalled, false);
entity.removeTag(tag);
assert.equal(eventCalled, true);
});
});

0 comments on commit 00fd039

Please sign in to comment.