mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-08 08:13:10 +00:00
filter out duplicates learned words
This commit is contained in:
parent
1d405914fd
commit
72d16c7c1f
3 changed files with 16 additions and 3 deletions
services/spelling
|
@ -60,8 +60,14 @@ const LearnedWordsManager = {
|
|||
if (error != null) {
|
||||
return callback(error)
|
||||
}
|
||||
const words =
|
||||
let words =
|
||||
(preferences != null ? preferences.learnedWords : undefined) || []
|
||||
if (words) {
|
||||
// remove duplicates
|
||||
words = words.filter(
|
||||
(value, index, self) => self.indexOf(value) === index
|
||||
)
|
||||
}
|
||||
mongoCache.set(userToken, words)
|
||||
callback(null, words)
|
||||
})
|
||||
|
|
|
@ -54,6 +54,8 @@ describe('learning words', function() {
|
|||
|
||||
const dictResponse = await getDict()
|
||||
const responseBody = JSON.parse(dictResponse.body)
|
||||
// the response from getlearnedwords filters out duplicates, so this test
|
||||
// can succeed even if the word is stored twice in the database
|
||||
expect(responseBody.length).to.equals(1)
|
||||
})
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@ describe('LearnedWordsManager', function() {
|
|||
del: sinon.stub()
|
||||
}
|
||||
this.LearnedWordsManager = SandboxedModule.require(modulePath, {
|
||||
globals: {
|
||||
console: console
|
||||
},
|
||||
requires: {
|
||||
'./DB': this.db,
|
||||
'./MongoCache': this.cache,
|
||||
|
@ -92,8 +95,10 @@ describe('LearnedWordsManager', function() {
|
|||
describe('getLearnedWords', function() {
|
||||
beforeEach(function() {
|
||||
this.wordList = ['apples', 'bananas', 'pears']
|
||||
this.wordListWithDuplicates = this.wordList.slice()
|
||||
this.wordListWithDuplicates.push('bananas')
|
||||
this.db.spellingPreferences.findOne = (conditions, callback) => {
|
||||
callback(null, { learnedWords: this.wordList })
|
||||
callback(null, { learnedWords: this.wordListWithDuplicates })
|
||||
}
|
||||
sinon.spy(this.db.spellingPreferences, 'findOne')
|
||||
this.LearnedWordsManager.getLearnedWords(this.token, this.callback)
|
||||
|
@ -105,7 +110,7 @@ describe('LearnedWordsManager', function() {
|
|||
).to.equal(true)
|
||||
})
|
||||
|
||||
it('should return the word list in the callback', function() {
|
||||
it('should return the word list in the callback without duplicates', function() {
|
||||
expect(this.callback.calledWith(null, this.wordList)).to.equal(true)
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Add table
Reference in a new issue