m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/__tests__
diff options
context:
space:
mode:
authorMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2017-07-14 18:12:08 -0400
committerMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2017-07-14 18:12:08 -0400
commit9f4197c659207534401ee6a7299275bf4d109949 (patch)
treee846bd62bf42671e8fec172061c1e5323f52be93 /__tests__
parentac62f2f52e0a656d60d2700937fdadabb221fcb3 (diff)
Parse the d operation
Diffstat (limited to '__tests__')
-rw-r--r--__tests__/parser.test.js35
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 }
+ }
+ })
+ })
+})