UNPKG

rpg-table-randomizer

Version:

Module for random tables for use in roleplaying games

90 lines (76 loc) 2.84 kB
'use strict'; import { describe, it } from 'mocha'; import { expect } from 'chai'; import RandomNameType from '../src/RandomNameType.js'; describe('RandomNameType', function () { it('should serialize the class', function () { const type = new RandomNameType({ key: 'western', label: 'Western Names', male: ['Seth', 'Al'], female: ['Alma', 'Jane'], surname: ['Dougherty', 'Cochran'] }); const obj = type.toJSON(); expect(obj.key).to.equal('western'); expect(obj.label).to.equal('Western Names'); expect(obj.male).to.deep.equal(['Seth', 'Al']); expect(obj.female).to.deep.equal(['Alma', 'Jane']); expect(obj.surname).to.deep.equal(['Dougherty', 'Cochran']); expect(obj.className).to.equal('RandomNameType'); }); it('should unserialize an object to the class', function () { const obj = { key: 'western', label: 'Western Names', male: ['Seth', 'Al'], female: ['Alma', 'Jane'], surname: ['Dougherty', 'Cochran'], className: 'RandomNameType' }; const type = new RandomNameType(obj); expect(type.key).to.equal('western'); expect(type.label).to.equal('Western Names'); expect(type.male).to.deep.equal(['Seth', 'Al']); expect(type.female).to.deep.equal(['Alma', 'Jane']); expect(type.surname).to.deep.equal(['Dougherty', 'Cochran']); }); it('should return all personal names list', function () { const type = new RandomNameType({ key: 'western', label: 'Western Names', male: ['Seth', 'Al'], female: ['Alma', 'Jane'], surname: ['Dougherty', 'Cochran'] }); expect(type.getAllPersonalNames()).to.deep.equal([ 'Seth', 'Al', 'Alma', 'Jane' ]); }); it('should return personal names list', function () { const type = new RandomNameType({ key: 'western', label: 'Western Names', male: ['Seth', 'Al'], female: ['Alma', 'Jane'], surname: ['Dougherty', 'Cochran'] }); expect(type.getPersonalNameList('mixed')).to.deep.equal([ 'Seth', 'Al', 'Alma', 'Jane' ]); expect(type.getPersonalNameList('female')).to.deep.equal([ 'Alma', 'Jane' ]); expect(type.getPersonalNameList('male')).to.deep.equal([ 'Seth', 'Al' ]); expect([type.male, type.female]).to.deep.include( type.getPersonalNameList('random') ); type.male = []; type.female = []; expect(type.getPersonalNameList('random')).to.deep.equal([]); }); });