diff options
Diffstat (limited to '__tests__/parser.test.js')
-rw-r--r-- | __tests__/parser.test.js | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/__tests__/parser.test.js b/__tests__/parser.test.js index f3c6e97..47944d2 100644 --- a/__tests__/parser.test.js +++ b/__tests__/parser.test.js @@ -8,8 +8,7 @@ describe('parse', () => { }) it('throws when two binary operations follow each other', () => { - expect(() => { parse('1dd2') }).toThrow(/Syntax error/) - expect(() => { parse('1+d2') }).toThrow(/Syntax error/) + expect(() => { parse('1++2') }).toThrow(/Syntax error/) }) it('throws when two dice not combined with a binary operation', () => { @@ -22,6 +21,14 @@ describe('parse', () => { expect(parse('5')).toEqual({ type: 'constant', value: 5 }) }) + it('parses a simple die with no left side', () => { + expect(parse('d6')).toEqual({ + type: 'd', + left: { type: 'constant', value: 1 }, + right: { type: 'constant', value: 6 } + }) + }) + it('parses a simple die (1d6)', () => { expect(parse('1d6')).toEqual({ type: 'd', @@ -59,17 +66,17 @@ describe('parse', () => { }) it('parses dice addition', () => { - expect(parse('1d6 + 2d8')).toEqual({ + expect(parse('2d8 + d6')).toEqual({ type: 'add', left: { type: 'd', - left: { type: 'constant', value: 1 }, - right: { type: 'constant', value: 6 } + left: { type: 'constant', value: 2 }, + right: { type: 'constant', value: 8 } }, right: { type: 'd', - left: { type: 'constant', value: 2 }, - right: { type: 'constant', value: 8 } + left: { type: 'constant', value: 1 }, + right: { type: 'constant', value: 6 } } }) }) |