| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- (function() {
- var chai, should, sinon;
- sinon = require('sinon');
- chai = require('chai');
- should = chai.should();
- describe("ASpell", function() {
- beforeEach(function() {
- return this.ASpell = require("../../../app/js/ASpell");
- });
- describe("a correctly spelled word", function() {
- beforeEach(function(done) {
- return this.ASpell.checkWords("en", ["word"], (function(_this) {
- return function(error, result) {
- _this.result = result;
- return done();
- };
- })(this));
- });
- return it("should not correct the word", function() {
- return this.result.length.should.equal(0);
- });
- });
- describe("a misspelled word", function() {
- beforeEach(function(done) {
- return this.ASpell.checkWords("en", ["bussines"], (function(_this) {
- return function(error, result) {
- _this.result = result;
- return done();
- };
- })(this));
- });
- return it("should correct the word", function() {
- this.result.length.should.equal(1);
- return this.result[0].suggestions.indexOf("business").should.not.equal(-1);
- });
- });
- describe("multiple words", function() {
- beforeEach(function(done) {
- return this.ASpell.checkWords("en", ["bussines", "word", "neccesary"], (function(_this) {
- return function(error, result) {
- _this.result = result;
- return done();
- };
- })(this));
- });
- return it("should correct the incorrect words", function() {
- this.result[0].index.should.equal(0);
- this.result[0].suggestions.indexOf("business").should.not.equal(-1);
- this.result[1].index.should.equal(2);
- return this.result[1].suggestions.indexOf("necessary").should.not.equal(-1);
- });
- });
- describe("without a valid language", function() {
- beforeEach(function(done) {
- return this.ASpell.checkWords("notALang", ["banana"], (function(_this) {
- return function(error, result) {
- _this.error = error;
- _this.result = result;
- return done();
- };
- })(this));
- });
- return it("should return an error", function() {
- return should.exist(this.error);
- });
- });
- describe("when there are no suggestions", function() {
- beforeEach(function(done) {
- return this.ASpell.checkWords("en", ["asdkfjalkdjfadhfkajsdhfashdfjhadflkjadhflajsd"], (function(_this) {
- return function(error, result) {
- _this.error = error;
- _this.result = result;
- return done();
- };
- })(this));
- });
- return it("should return a blank array", function() {
- this.result.length.should.equal(1);
- return this.result[0].suggestions.should.deep.equal([]);
- });
- });
- return describe("when the request times out", function() {
- beforeEach(function(done) {
- var i, words;
- words = (function() {
- var _i, _results;
- _results = [];
- for (i = _i = 0; _i <= 1000000; i = ++_i) {
- _results.push("abcdefg");
- }
- return _results;
- })();
- this.ASpell.ASPELL_TIMEOUT = 100;
- this.start = new Date();
- return this.ASpell.checkWords("en", words, (function(_this) {
- return function(error, result) {
- _this.result = result;
- return done();
- };
- })(this));
- });
- return it("should return in reasonable time", function(done) {
- return done();
- });
- });
- });
- }).call(this);
|