diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2017-07-12 22:54:33 -0400 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2017-07-12 22:54:33 -0400 |
commit | 38e82ade6fd207af21f2df6a3e98298338e85eb8 (patch) | |
tree | 356dcc3a2ee6bcc43bf2bdad43c20fb72096d897 /__tests__ | |
parent | 3915ca0932333f3d0d01538df915ac38810949cc (diff) |
Lex basic dice
Diffstat (limited to '__tests__')
-rw-r--r-- | __tests__/lexer.test.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/__tests__/lexer.test.js b/__tests__/lexer.test.js new file mode 100644 index 0000000..20d461f --- /dev/null +++ b/__tests__/lexer.test.js @@ -0,0 +1,29 @@ +const { lex } = require('../src/lexer.js') + +describe('lex', () => { + it('lexes the empty string', () => { + expect(lex('')).toEqual([]) + }) + + it('signals an error on unexpected input', () => { + expect(lex('q')).toBe('error') + }) + + describe('basic dice', () => { + it('1d6', () => { + expect(lex('1d6')).toEqual([ + { type: 'number', value: 1 }, + { type: 'd' }, + { type: 'number', value: 6 } + ]) + }) + + it('42d172', () => { + expect(lex('42d172')).toEqual([ + { type: 'number', value: 42 }, + { type: 'd' }, + { type: 'number', value: 172 } + ]) + }) + }) +}) |