diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-09-05 12:07:02 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-09-05 18:15:24 +0900 |
commit | 5e124e7561b355758a68f79d3ecf10148f8ecdd5 (patch) | |
tree | 48c0b1d65133aaa351584c48f5b8165007fb2b34 /test/console | |
parent | 40dce0ca6e7eaffcc214327f72ba17d307daad44 (diff) |
add Completion class
Diffstat (limited to 'test/console')
-rw-r--r-- | test/console/completion.test.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/console/completion.test.js b/test/console/completion.test.js new file mode 100644 index 0000000..a789c15 --- /dev/null +++ b/test/console/completion.test.js @@ -0,0 +1,48 @@ +import { expect } from "chai"; +import Completion from '../../src/console/completion'; + +describe('Completion class', () => { + describe('#constructor', () => { + it('creates new object by iterable items', () => { + new Completion([1,2,3,4,5]); + new Completion([]); + new Completion('hello'); + new Completion(''); + }); + + it('creates new object by iterable items', () => { + expect(() => new Completion({ key: 'value' })).to.throw(TypeError); + expect(() => new Completion(12345)).to.throw(TypeError); + }); + }); + + describe('#next', () => { + it('complete next items', () => { + let completion = new Completion([3, 4, 5]); + expect(completion.next()).to.equal(3); + expect(completion.next()).to.equal(4); + expect(completion.next()).to.equal(5); + expect(completion.next()).to.equal(3); + }); + + it('returns null when empty completions', () => { + let completion = new Completion([]); + expect(completion.next()).to.be.null; + }); + }); + + describe('#prev', () => { + it('complete prev items', () => { + let completion = new Completion([3, 4, 5]); + expect(completion.prev()).to.equal(5); + expect(completion.prev()).to.equal(4); + expect(completion.prev()).to.equal(3); + expect(completion.prev()).to.equal(5); + }); + + it('returns null when empty completions', () => { + let completion = new Completion([]); + expect(completion.prev()).to.be.null; + }); + }); +}); |