character-sheet
Version:
CharacterSheet library for assembling relationships between stats and modifiers.
68 lines (57 loc) • 1.56 kB
JavaScript
import CharacterSheet from '../src/CharacterSheet';
import Definition from '../src/Definition';
describe('CharacterSheet', () => {
let ASheet;
let aCharacter;
beforeEach(() => {
ASheet = new CharacterSheet();
aCharacter = new ASheet();
});
it('generates a character sheet class', () => {
const CharSheetClass = new CharacterSheet();
expect(CharSheetClass).toBeTruthy();
});
/**
* CharacterSheet.from()
*/
describe('.from()', () => {
let ASheet;
beforeEach(() => {
ASheet = new CharacterSheet();
});
it('exists', () => {
expect(ASheet.from).toBeTruthy();
});
});
/**
* CharacterSheet.define()
*/
describe('.define()', () => {
it('exists', () => {
expect(ASheet.define).toBeTruthy();
});
it('defines a stat', () => {
expect(ASheet.define('stat').constructor === Definition);
});
});
/**
* CharacterSheet Instance
*/
describe('CharacterSheet Instance', () => {
it('instantiates a character sheet from the character sheet class', () => {
expect(aCharacter).toBeTruthy();
});
/**
* CharacterSheet Instance Selector
*/
describe('sheet(selector)', () => {
it('provides a selector function', () => {
expect(typeof aCharacter === 'function').toBe(true);
});
it('selects a stat', () => {
ASheet.define('stat').initially(123);
expect(aCharacter('stat').is()).toBe(123);
});
});
});
});