UNPKG

@imranbarbhuiya/mongoose-fuzzy-searching

Version:
179 lines (178 loc) 6.45 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); var search_1 = require("./search"); jest.mock("../ngrams"); describe("StaticFuzzySearch", function () { it("should call `find` with string query, empty options and callback", function () { var query = "Text to search"; var callback = jest.fn(); var model = { find: jest.fn(), }; var args = [query, {}, callback]; new (search_1.StaticFuzzySearch.bind.apply(search_1.StaticFuzzySearch, __spreadArray([void 0], args, false)))().search(model); expect(model.find).toHaveBeenCalledWith({ $text: { $search: query, }, }, search_1.confidenceScore, search_1.sort, callback); }); it("should call `find` with object query, empty options and callback", function () { var query = { query: "Text to search", }; var callback = jest.fn(); var model = { find: jest.fn(), }; var args = [query, {}, callback]; new (search_1.StaticFuzzySearch.bind.apply(search_1.StaticFuzzySearch, __spreadArray([void 0], args, false)))().search(model); expect(model.find).toHaveBeenCalledWith({ $text: { $search: query.query, }, }, search_1.confidenceScore, search_1.sort, callback); }); it("should call `find` with string query, options and callback", function () { var query = "Text to search"; var options = { field: { $ne: null } }; var callback = jest.fn(); var model = { find: jest.fn(), }; var args = [query, options, callback]; new (search_1.StaticFuzzySearch.bind.apply(search_1.StaticFuzzySearch, __spreadArray([void 0], args, false)))().search(model); expect(model.find).toHaveBeenCalledWith({ $and: [ { $text: { $search: query, }, }, options, ], }, search_1.confidenceScore, search_1.sort, callback); }); it("should call `find` with object query, options and callback", function () { var query = { query: "Text to search", }; var options = { field: { $ne: null } }; var callback = jest.fn(); var model = { find: jest.fn(), }; var args = [query, options, callback]; new (search_1.StaticFuzzySearch.bind.apply(search_1.StaticFuzzySearch, __spreadArray([void 0], args, false)))().search(model); expect(model.find).toHaveBeenCalledWith({ $and: [ { $text: { $search: query.query, }, }, options, ], }, search_1.confidenceScore, search_1.sort, callback); }); it("should not pass callback to `find`", function () { var query = { query: "Text to search", }; var options = { field: { $ne: null } }; var model = { find: jest.fn(), }; var args = [query, options]; new (search_1.StaticFuzzySearch.bind.apply(search_1.StaticFuzzySearch, __spreadArray([void 0], args, false)))().search(model); expect(model.find).toHaveBeenCalledWith({ $and: [ { $text: { $search: query.query, }, }, options, ], }, search_1.confidenceScore, search_1.sort, undefined); }); }); describe("QueryFuzzySearch", function () { it("should call `find` with string query and empty options", function () { var query = "Text to search"; var model = { find: jest.fn(), }; var args = [query, {}]; new (search_1.QueryFuzzySearch.bind.apply(search_1.QueryFuzzySearch, __spreadArray([void 0], args, false)))().search(model); expect(model.find).toHaveBeenCalledWith({ $text: { $search: query, }, }); }); it("should call `find` with object query and empty options", function () { var query = { query: "Text to search", }; var model = { find: jest.fn(), }; var args = [query, {}]; new (search_1.QueryFuzzySearch.bind.apply(search_1.QueryFuzzySearch, __spreadArray([void 0], args, false)))().search(model); expect(model.find).toHaveBeenCalledWith({ $text: { $search: query.query, }, }); }); it("should call `find` with string query and options", function () { var query = "Text to search"; var options = { field: { $ne: null } }; var model = { find: jest.fn(), }; var args = [query, options]; new (search_1.QueryFuzzySearch.bind.apply(search_1.QueryFuzzySearch, __spreadArray([void 0], args, false)))().search(model); expect(model.find).toHaveBeenCalledWith({ $and: [ { $text: { $search: query, }, }, options, ], }); }); it("should call `find` with object query and options", function () { var query = { query: "Text to search", }; var options = { field: { $ne: null } }; var model = { find: jest.fn(), }; var args = [query, options]; new (search_1.QueryFuzzySearch.bind.apply(search_1.QueryFuzzySearch, __spreadArray([void 0], args, false)))().search(model); expect(model.find).toHaveBeenCalledWith({ $and: [ { $text: { $search: query.query, }, }, options, ], }); }); });