import {expect, test} from 'vitest'; import Schema from './schema.js'; import Arbitrary from './arbitrary.js'; test('creates instances', () => { class CreatingArbitrary extends Arbitrary { static schema = new Schema({foo: {defaultValue: 'bar', type: 'string'}}); } const Component = new CreatingArbitrary(); Component.create(1) expect(Component.get(1).entity) .to.equal(1); }); test('does not serialize default values', () => { class CreatingArbitrary extends Arbitrary { static schema = new Schema({foo: {defaultValue: 'bar', type: 'string'}, bar: 'uint8'}); } const Component = new CreatingArbitrary(); Component.create(1) expect(Component.get(1).toJSON()) .to.deep.equal({}); Component.get(1).bar = 1; expect(Component.get(1).toJSON()) .to.deep.equal({bar: 1}); }); test('reuses instances', () => { class ReusingArbitrary extends Arbitrary { static schema = new Schema({foo: {type: 'string'}}); } const Component = new ReusingArbitrary(); Component.create(1); const instance = Component.get(1); Component.destroy(1); expect(Component.get(1)) .to.be.undefined; expect(() => { Component.destroy(1); }) .to.throw(); Component.create(1); expect(Component.get(1)) .to.equal(instance); });