diff options
Diffstat (limited to '__tests__/parser.test.js')
-rw-r--r-- | __tests__/parser.test.js | 35 |
1 files changed, 35 insertions, 0 deletions
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 } + } + }) + }) +}) |