diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/content/presenters/NavigationPresenter.test.ts (renamed from test/content/navigates.test.ts) | 41 | ||||
| -rw-r--r-- | test/content/repositories/FollowKeyRepository.test.ts | 31 | ||||
| -rw-r--r-- | test/content/repositories/FollowMasterRepository.test.ts | 49 | ||||
| -rw-r--r-- | test/content/repositories/FollowSlaveRepository.test.ts | 24 | ||||
| -rw-r--r-- | test/content/repositories/KeymapRepository.test.ts | 37 | ||||
| -rw-r--r-- | test/content/repositories/MarkKeyRepository.test.ts | 36 | 
6 files changed, 201 insertions, 17 deletions
diff --git a/test/content/navigates.test.ts b/test/content/presenters/NavigationPresenter.test.ts index 1d73344..c1aca9a 100644 --- a/test/content/navigates.test.ts +++ b/test/content/presenters/NavigationPresenter.test.ts @@ -1,19 +1,26 @@ -import * as navigates from 'content/navigates'; - -const testRel = (done, rel, html) => { -  const method = rel === 'prev' ? 'linkPrev' : 'linkNext'; -  document.body.innerHTML = html; -  navigates[method](window); -  setTimeout(() => { -    expect(document.location.hash).to.equal(`#${rel}`); -    done(); -  }, 0); -}; - -const testPrev = html => done => testRel(done, 'prev', html); -const testNext = html => done => testRel(done, 'next', html); - -describe('navigates module', () => { +import NavigationPresenter, { NavigationPresenterImpl } +  from '../../../src/content/presenters/NavigationPresenter'; +import { expect } from 'chai'; + +describe('NavigationPresenter', () => { +  let sut; + +  const testRel = (done, rel, html) => { +    const method = rel === 'prev' ? sut.openLinkPrev.bind(sut) : sut.openLinkNext.bind(sut); +    document.body.innerHTML = html; +    method(); +    setTimeout(() => { +      expect(document.location.hash).to.equal(`#${rel}`); +      done(); +    }, 0); +  }; +  const testPrev = html => done => testRel(done, 'prev', html); +  const testNext = html => done => testRel(done, 'next', html); + +  before(() => { +    sut = new NavigationPresenterImpl(); +  }); +    describe('#linkPrev', () => {      it('navigates to <link> elements whose rel attribute is "prev"', testPrev(        '<link rel="prev" href="#prev" />' @@ -130,7 +137,7 @@ describe('navigates module', () => {      // NOTE: not able to test location      it('removes hash', () => {        window.location.hash = '#section-1'; -      navigates.parent(window); +      sut.openParent();        expect(document.location.hash).to.be.empty;      });    }); diff --git a/test/content/repositories/FollowKeyRepository.test.ts b/test/content/repositories/FollowKeyRepository.test.ts new file mode 100644 index 0000000..eae58b9 --- /dev/null +++ b/test/content/repositories/FollowKeyRepository.test.ts @@ -0,0 +1,31 @@ +import FollowKeyRepository, { FollowKeyRepositoryImpl } +  from '../../../src/content/repositories/FollowKeyRepository'; +import { expect } from 'chai'; + +describe('FollowKeyRepositoryImpl', () => { +  let sut: FollowKeyRepository; + +  before(() => { +    sut = new FollowKeyRepositoryImpl(); +  }); + +  describe('#getKeys()/#pushKey()/#popKey()', () => { +    it('enqueues keys', () => { +      expect(sut.getKeys()).to.be.empty; + +      sut.pushKey('a'); +      sut.pushKey('b'); +      sut.pushKey('c'); +      expect(sut.getKeys()).to.deep.equal(['a', 'b', 'c']); + +      sut.popKey(); +      expect(sut.getKeys()).to.deep.equal(['a', 'b']); + +      sut.clearKeys(); +      expect(sut.getKeys()).to.be.empty; +    }); +  }); +}); + + + diff --git a/test/content/repositories/FollowMasterRepository.test.ts b/test/content/repositories/FollowMasterRepository.test.ts new file mode 100644 index 0000000..8c3f34e --- /dev/null +++ b/test/content/repositories/FollowMasterRepository.test.ts @@ -0,0 +1,49 @@ +import FollowMasterRepository, { FollowMasterRepositoryImpl } +  from '../../../src/content/repositories/FollowMasterRepository'; +import { expect } from 'chai'; + +describe('FollowMasterRepositoryImpl', () => { +  let sut: FollowMasterRepository; + +  before(() => { +    sut = new FollowMasterRepositoryImpl(); +  }); + +  describe('#getTags()/#addTag()/#clearTags()', () => { +    it('gets, adds and clears tags', () => { +      expect(sut.getTags()).to.be.empty; + +      sut.addTag('a'); +      sut.addTag('b'); +      sut.addTag('c'); +      expect(sut.getTags()).to.deep.equal(['a', 'b', 'c']); + +      sut.clearTags(); +      expect(sut.getTags()).to.be.empty; +    }); +  }); + +  describe('#getTagsByPrefix', () => { +    it('gets tags matched by prefix', () => { +      for (let tag of ['a', 'aa', 'ab', 'b', 'ba', 'bb']) { +        sut.addTag(tag); +      } +      expect(sut.getTagsByPrefix('a')).to.deep.equal(['a', 'aa', 'ab']); +      expect(sut.getTagsByPrefix('aa')).to.deep.equal(['aa']); +      expect(sut.getTagsByPrefix('b')).to.deep.equal(['b', 'ba', 'bb']); +      expect(sut.getTagsByPrefix('c')).to.be.empty; +    }); +  }); + +  describe('#setCurrentFollowMode()/#getCurrentNewTabMode()/#getCurrentBackgroundMode', () => { +    it('updates and gets follow mode', () => { +      sut.setCurrentFollowMode(false, true); +      expect(sut.getCurrentNewTabMode()).to.be.false; +      expect(sut.getCurrentBackgroundMode()).to.be.true; + +      sut.setCurrentFollowMode(true, false); +      expect(sut.getCurrentNewTabMode()).to.be.true; +      expect(sut.getCurrentBackgroundMode()).to.be.false; +    }); +  }); +}); diff --git a/test/content/repositories/FollowSlaveRepository.test.ts b/test/content/repositories/FollowSlaveRepository.test.ts new file mode 100644 index 0000000..10cf094 --- /dev/null +++ b/test/content/repositories/FollowSlaveRepository.test.ts @@ -0,0 +1,24 @@ +import FollowSlaveRepository, { FollowSlaveRepositoryImpl } +  from '../../../src/content/repositories/FollowSlaveRepository'; +import { expect } from 'chai'; + +describe('FollowSlaveRepository', () => { +  let sut: FollowSlaveRepository; + +  before(() => { +    sut = new FollowSlaveRepositoryImpl(); +  }); + +  describe('#isFollowMode()/#enableFollowMode()/#disableFollowMode()', () => { +    it('gets, adds updates follow mode', () => { +      expect(sut.isFollowMode()).to.be.false; + +      sut.enableFollowMode(); +      expect(sut.isFollowMode()).to.be.true; + +      sut.disableFollowMode(); +      expect(sut.isFollowMode()).to.be.false; +    }); +  }); +}); + diff --git a/test/content/repositories/KeymapRepository.test.ts b/test/content/repositories/KeymapRepository.test.ts new file mode 100644 index 0000000..34704d9 --- /dev/null +++ b/test/content/repositories/KeymapRepository.test.ts @@ -0,0 +1,37 @@ +import KeymapRepository, { KeymapRepositoryImpl } +  from '../../../src/content/repositories/KeymapRepository'; +import { expect } from 'chai'; + +describe('KeymapRepositoryImpl', () => { +  let sut: KeymapRepository; + +  before(() => { +    sut = new KeymapRepositoryImpl(); +  }); + +  describe('#enqueueKey()', () => { +    it('enqueues keys', () => { +      sut.enqueueKey({ key: 'a' }); +      sut.enqueueKey({ key: 'b' }); +      let sequence = sut.enqueueKey({ key: 'c' }); + +      expect(sequence.getKeyArray()).deep.equals([ +        { key: 'a' }, { key: 'b' }, { key: 'c' }, +      ]); +    }); +  }); + +  describe('#clear()', () => { +    it('clears keys', () => { +      sut.enqueueKey({ key: 'a' }); +      sut.enqueueKey({ key: 'b' }); +      sut.enqueueKey({ key: 'c' }); +      sut.clear(); + +      let sequence = sut.enqueueKey({ key: 'a' }); +      expect(sequence.length()).to.equal(1); +    }); +  }); +}); + + diff --git a/test/content/repositories/MarkKeyRepository.test.ts b/test/content/repositories/MarkKeyRepository.test.ts new file mode 100644 index 0000000..8592332 --- /dev/null +++ b/test/content/repositories/MarkKeyRepository.test.ts @@ -0,0 +1,36 @@ +import MarkRepository, { MarkKeyRepositoryImpl } +  from '../../../src/content/repositories/MarkKeyRepository'; +import { expect } from 'chai'; + +describe('MarkKeyRepositoryImpl', () => { +  let sut: MarkRepository; + +  before(() => { +    sut = new MarkKeyRepositoryImpl(); +  }) + +  describe('#isSetMode/#enableSetMode/#disabeSetMode', () => { +    it('enables and disables set mode', () => { +      expect(sut.isSetMode()).to.be.false; + +      sut.enableSetMode(); +      expect(sut.isSetMode()).to.be.true; + +      sut.disabeSetMode(); +      expect(sut.isSetMode()).to.be.false; +    }); +  }); + +  describe('#isJumpMode/#enableJumpMode/#disabeJumpMode', () => { +    it('enables and disables jump mode', () => { +      expect(sut.isJumpMode()).to.be.false; + +      sut.enableJumpMode(); +      expect(sut.isJumpMode()).to.be.true; + +      sut.disabeJumpMode(); +      expect(sut.isJumpMode()).to.be.false; +    }); +  }); +}); +  | 
