| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- const { expect } = require('chai')
- const request = require('./helpers/request')
- const USER_ID = 101
- const checkWord = (words) =>
- request.post({
- url: `/user/${USER_ID}/check`,
- body: JSON.stringify({
- words
- })
- })
- const learnWord = (word) =>
- request.post({
- url: `/user/${USER_ID}/learn`,
- body: JSON.stringify({
- word
- })
- })
- const unlearnWord = (word) =>
- request.post({
- url: `/user/${USER_ID}/unlearn`,
- body: JSON.stringify({
- word
- })
- })
- const getDict = () =>
- request.get({
- url: `/user/${USER_ID}`
- })
- const deleteDict = () =>
- request.del({
- url: `/user/${USER_ID}`
- })
- describe('learning words', 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 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)
- // 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)
- })
- 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)
- await learnWord('abv')
- const response2 = await checkWord(['abv'])
- const responseBody2 = JSON.parse(response2.body)
- expect(responseBody2.misspellings.length).to.equals(0)
- })
- it('should return misspellings again after a personal dictionary is deleted', async function () {
- await learnWord('bvc')
- await deleteDict()
- const response = await checkWord(['bvc'])
- const responseBody = JSON.parse(response.body)
- expect(responseBody.misspellings.length).to.equals(1)
- })
- })
- describe('unlearning words', 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 () {
- await learnWord('abv')
- const response = await checkWord(['abv'])
- const responseBody = JSON.parse(response.body)
- expect(responseBody.misspellings.length).to.equals(0)
- await unlearnWord('abv')
- const response2 = await checkWord(['abv'])
- const responseBody2 = JSON.parse(response2.body)
- expect(responseBody2.misspellings.length).to.equals(1)
- })
- })
|