import {Latus} from '@latus/core'; import {expect} from 'chai'; describe('Layer', () => { let latus; beforeEach(async () => { latus = Latus.mock({ '@avocado/entity': require('@avocado/entity'), '@avocado/resource': require('@avocado/resource'), '@avocado/topdown': require('../src'), '@avocado/traits': require('@avocado/traits'), }); await Promise.all(latus.invokeFlat('@latus/core/starting')); }); it('has sane defaults', async () => { const {Layer} = latus.get('%resources'); const layer = new Layer(); expect(Object.keys(layer.entities).length).to.equal(0); expect(layer.tiles.size).to.deep.equal([0, 0]); }); describe('entity list interaction', () => { let entity; let layer; beforeEach(async () => { const {Entity, EntityList, Layer} = latus.get('%resources'); entity = await Entity.load({ traits: { Existent: {}, Layered: {}, Listed: {}, }, }); const entityList = new EntityList(); entityList.addEntity(entity); layer = new Layer(); layer.setEntityList(entityList); }) it('delegates to entity list', async () => { expect(Object.keys(layer.entities).length).to.equal(1); }); it('can find entities', async () => { expect(layer.findEntity(entity.instanceUuid)).to.equal(entity); }); }); });