don't learn the same word twice

This commit is contained in:
Tim Alby
2020-02-18 09:22:50 -05:00
parent df7a918e08
commit 1d405914fd
3 changed files with 26 additions and 7 deletions
@@ -15,7 +15,7 @@ const LearnedWordsManager = {
token: userToken
},
{
$push: { learnedWords: word }
$addToSet: { learnedWords: word }
},
{
upsert: true
@@ -27,18 +27,37 @@ const unlearnWord = word =>
})
})
const getDict = () =>
request.get({
url: `/user/${USER_ID}`
})
const deleteDict = () =>
request.del({
url: `/user/${USER_ID}`
})
describe('learning words', function() {
it('should return status 204 when posting a word successfully', async function () {
afterEach(async function() {
await deleteDict()
})
it('should return status 204 when posting a word successfully', async function() {
const response = await learnWord('abcd')
expect(response.statusCode).to.equal(204)
})
it('should return no misspellings after a word is learnt', async function () {
it('should not learn the same word twice', async function() {
await learnWord('foobar')
const learnResponse = await learnWord('foobar')
expect(learnResponse.statusCode).to.equal(204)
const dictResponse = await getDict()
const responseBody = JSON.parse(dictResponse.body)
expect(responseBody.length).to.equals(1)
})
it('should return no misspellings after a word is learnt', async function() {
const response = await checkWord(['abv'])
const responseBody = JSON.parse(response.body)
expect(responseBody.misspellings.length).to.equals(1)
@@ -50,7 +69,7 @@ describe('learning words', function() {
expect(responseBody2.misspellings.length).to.equals(0)
})
it('should return misspellings again after a personal dictionary is deleted', async function () {
it('should return misspellings again after a personal dictionary is deleted', async function() {
await learnWord('bvc')
await deleteDict()
@@ -61,12 +80,12 @@ describe('learning words', function() {
})
describe('unlearning words', function() {
it('should return status 204 when posting a word successfully', async function () {
it('should return status 204 when posting a word successfully', async function() {
const response = await unlearnWord('anything')
expect(response.statusCode).to.equal(204)
})
it('should return misspellings after a word is unlearnt', async function () {
it('should return misspellings after a word is unlearnt', async function() {
await learnWord('abv')
const response = await checkWord(['abv'])
@@ -51,7 +51,7 @@ describe('LearnedWordsManager', function() {
token: this.token
},
{
$push: { learnedWords: this.word }
$addToSet: { learnedWords: this.word }
},
{
upsert: true