| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { WordCache } from '@/features/source-editor/extensions/spelling/cache'
- import { expect } from 'chai'
- import { Word } from '@/features/source-editor/extensions/spelling/spellchecker'
- describe('WordCache', function () {
- describe('basic operations', function () {
- let cache: WordCache, lang: string
- beforeEach(function () {
- cache = new WordCache()
- lang = 'xx'
- })
- it('should store values in cache', function () {
- let word = 'foo'
- expect(cache.get(lang, word)).to.not.exist
- cache.set(lang, word, true)
- expect(cache.get(lang, word)).to.equal(true)
- word = 'bar'
- expect(cache.get(lang, word)).to.not.exist
- cache.set(lang, word, false)
- expect(cache.get(lang, word)).to.equal(false)
- })
- it('should store words in separate languages', function () {
- const word = 'foo'
- const otherLang = 'zz'
- cache.set(lang, word, true)
- expect(cache.get(lang, word)).to.equal(true)
- expect(cache.get(otherLang, word)).to.not.exist
- cache.set(otherLang, word, false)
- expect(cache.get(lang, word)).to.equal(true)
- expect(cache.get(otherLang, word)).to.equal(false)
- })
- it('should check words against cache', function () {
- cache.set(lang, 'foo', false)
- cache.set(lang, 'bar', true)
- cache.set(lang, 'baz', true)
- const wordsToCheck = [
- { text: 'foo', from: 0 },
- { text: 'baz', from: 1 },
- { text: 'quux', from: 2 },
- { text: 'foo', from: 3 },
- { text: 'zaz', from: 4 },
- ] as Word[]
- const result = cache.checkWords(lang, wordsToCheck)
- expect(result).to.have.keys('knownMisspelledWords', 'unknownWords')
- expect(result.knownMisspelledWords).to.deep.equal([
- { text: 'foo', from: 0 },
- { text: 'foo', from: 3 },
- ])
- expect(result.unknownWords).to.deep.equal([
- { text: 'quux', from: 2 },
- { text: 'zaz', from: 4 },
- ])
- })
- })
- })
|