@imranbarbhuiya/mongoose-fuzzy-searching
Version:
Mongoose fuzzy searching plugin
179 lines (178 loc) • 6.45 kB
JavaScript
;
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,
],
});
});
});