From 9f4197c659207534401ee6a7299275bf4d109949 Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Fri, 14 Jul 2017 18:12:08 -0400 Subject: Parse the d operation --- __tests__/parser.test.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 __tests__/parser.test.js (limited to '__tests__') diff --git a/__tests__/parser.test.js b/__tests__/parser.test.js new file mode 100644 index 0000000..004e18b --- /dev/null +++ b/__tests__/parser.test.js @@ -0,0 +1,35 @@ +const { parse } = require('../src/parser.js') + +describe('parse', () => { + it('parses a constant', () => { + expect(parse('5')).toEqual({ type: 'constant', value: 5 }) + }) + + it('parses a simple die (1d6)', () => { + expect(parse('1d6')).toEqual({ + type: 'd', + left: { type: 'constant', value: 1 }, + right: { type: 'constant', value: 6 } + }) + }) + + it('parses a simple die (10d42)', () => { + expect(parse('10d42')).toEqual({ + type: 'd', + left: { type: 'constant', value: 10 }, + right: { type: 'constant', value: 42 } + }) + }) + + it('parses a compound die (1d2d3)', () => { + expect(parse('1d2d3')).toEqual({ + type: 'd', + left: { type: 'constant', value: 1 }, + right: { + type: 'd', + left: { type: 'constant', value: 2 }, + right: { type: 'constant', value: 3 } + } + }) + }) +}) -- cgit v1.2.3