suitescript-mocks
Version:
Set of mocks for unit testing Netsuite Suitescript 2.*
115 lines • 18.9 kB
JavaScript
var _dec, _dec2, _init_create, _dec3, _init_createColumn, _dec4, _init_createFilter, _dec5, _init_createSetting, _dec6, _dec7, _init_delete, _dec8, _init_global, _dec9, _init_load, _dec10, _dec11, _init_lookupFields;
function applyDecs2203RFactory() { function createAddInitializerMethod(e, t) { return function (r) { !function (e, t) { if (e.v) throw new Error("attempted to call " + t + " after decoration was finished"); }(t, "addInitializer"), assertCallable(r, "An initializer"), e.push(r); }; } function memberDec(e, t, r, n, a, i, s, o) { var c; switch (a) { case 1: c = "accessor"; break; case 2: c = "method"; break; case 3: c = "getter"; break; case 4: c = "setter"; break; default: c = "field"; } var l, u, f = { kind: c, name: s ? "#" + t : t, static: i, private: s }, p = { v: !1 }; 0 !== a && (f.addInitializer = createAddInitializerMethod(n, p)), 0 === a ? s ? (l = r.get, u = r.set) : (l = function () { return this[t]; }, u = function (e) { this[t] = e; }) : 2 === a ? l = function () { return r.value; } : (1 !== a && 3 !== a || (l = function () { return r.get.call(this); }), 1 !== a && 4 !== a || (u = function (e) { r.set.call(this, e); })), f.access = l && u ? { get: l, set: u } : l ? { get: l } : { set: u }; try { return e(o, f); } finally { p.v = !0; } } function assertCallable(e, t) { if ("function" != typeof e) throw new TypeError(t + " must be a function"); } function assertValidReturnValue(e, t) { var r = typeof t; if (1 === e) { if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init"); } else if ("function" !== r) { var n; throw n = 0 === e ? "field" : 10 === e ? "class" : "method", new TypeError(n + " decorators must return a function or void 0"); } } function applyMemberDec(e, t, r, n, a, i, s, o) { var c, l, u, f, p, d, h = r[0]; if (s ? c = 0 === a || 1 === a ? { get: r[3], set: r[4] } : 3 === a ? { get: r[3] } : 4 === a ? { set: r[3] } : { value: r[3] } : 0 !== a && (c = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? u = { get: c.get, set: c.set } : 2 === a ? u = c.value : 3 === a ? u = c.get : 4 === a && (u = c.set), "function" == typeof h) void 0 !== (f = memberDec(h, n, c, o, a, i, s, u)) && (assertValidReturnValue(a, f), 0 === a ? l = f : 1 === a ? (l = f.init, p = f.get || u.get, d = f.set || u.set, u = { get: p, set: d }) : u = f);else for (var v = h.length - 1; v >= 0; v--) { var g; if (void 0 !== (f = memberDec(h[v], n, c, o, a, i, s, u))) assertValidReturnValue(a, f), 0 === a ? g = f : 1 === a ? (g = f.init, p = f.get || u.get, d = f.set || u.set, u = { get: p, set: d }) : u = f, void 0 !== g && (void 0 === l ? l = g : "function" == typeof l ? l = [l, g] : l.push(g)); } if (0 === a || 1 === a) { if (void 0 === l) l = function (e, t) { return t; };else if ("function" != typeof l) { var y = l; l = function (e, t) { for (var r = t, n = 0; n < y.length; n++) r = y[n].call(e, r); return r; }; } else { var m = l; l = function (e, t) { return m.call(e, t); }; } e.push(l); } 0 !== a && (1 === a ? (c.get = u.get, c.set = u.set) : 2 === a ? c.value = u : 3 === a ? c.get = u : 4 === a && (c.set = u), s ? 1 === a ? (e.push(function (e, t) { return u.get.call(e, t); }), e.push(function (e, t) { return u.set.call(e, t); })) : 2 === a ? e.push(u) : e.push(function (e, t) { return u.call(e, t); }) : Object.defineProperty(t, n, c)); } function applyMemberDecs(e, t) { for (var r, n, a = [], i = new Map(), s = new Map(), o = 0; o < t.length; o++) { var c = t[o]; if (Array.isArray(c)) { var l, u, f = c[1], p = c[2], d = c.length > 3, h = f >= 5; if (h ? (l = e, 0 !== (f -= 5) && (u = n = n || [])) : (l = e.prototype, 0 !== f && (u = r = r || [])), 0 !== f && !d) { var v = h ? s : i, g = v.get(p) || 0; if (!0 === g || 3 === g && 4 !== f || 4 === g && 3 !== f) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + p); !g && f > 2 ? v.set(p, f) : v.set(p, !0); } applyMemberDec(a, l, c, p, f, h, d, u); } } return pushInitializers(a, r), pushInitializers(a, n), a; } function pushInitializers(e, t) { t && e.push(function (e) { for (var r = 0; r < t.length; r++) t[r].call(e); return e; }); } return function (e, t, r) { return { e: applyMemberDecs(e, t), get c() { return function (e, t) { if (t.length > 0) { for (var r = [], n = e, a = e.name, i = t.length - 1; i >= 0; i--) { var s = { v: !1 }; try { var o = t[i](n, { kind: "class", name: a, addInitializer: createAddInitializerMethod(r, s) }); } finally { s.v = !0; } void 0 !== o && (assertValidReturnValue(10, o), n = o); } return [n, function () { for (var e = 0; e < r.length; e++) r[e].call(n); }]; } }(e, r); } }; }; }
function _applyDecs2203R(e, t, r) { return (_applyDecs2203R = applyDecs2203RFactory())(e, t, r); }
const searchStub = require("suitecloud-unit-testing-stubs/stubs/search");
const Column = require("./Column.cjs");
const Filter = require("./Filter.cjs");
const Page = require("./Page.cjs");
const PagedData = require("./PagedData.cjs");
const PageRange = require("./PageRange.cjs");
const Result = require("./Result.cjs");
const ResultSet = require("./ResultSet.cjs");
const Search = require("./Search.cjs");
const {
options,
addPromise
} = require("../../helpers.cjs");
const SuiteScriptMocks = require("../../../index.cjs");
const {
required
} = require("../../helpers.cjs");
_dec = addPromise();
_dec2 = required("type");
_dec3 = options("name", "join", "summary", "formula", "function", "label", "sort");
_dec4 = options("name", "join", "operator", "values", "formula", "summary");
_dec5 = options("name", "value");
_dec6 = addPromise();
_dec7 = options("id", "type");
_dec8 = addPromise();
_dec9 = addPromise();
_dec10 = addPromise();
_dec11 = options("type", "id", "columns");
class SearchModule {
static {
[_init_create, _init_createColumn, _init_createFilter, _init_createSetting, _init_delete, _init_global, _init_load, _init_lookupFields] = _applyDecs2203R(this, [[[_dec, _dec2], 0, "create"], [_dec3, 0, "createColumn"], [_dec4, 0, "createFilter"], [_dec5, 0, "createSetting"], [[_dec6, _dec7], 0, "delete"], [_dec8, 0, "global"], [_dec9, 0, "load"], [[_dec10, _dec11], 0, "lookupFields"]], []).e;
}
Operator = searchStub.Operator;
Sort = searchStub.Sort;
Summary = searchStub.Summary;
Type = searchStub.Type;
Column = Column;
Filter = Filter;
Page = Page;
PagedData = PagedData;
PageRange = PageRange;
Result = Result;
ResultSet = ResultSet;
Search = Search;
create = _init_create(this, ({
type,
columns,
filters
}) => {
columns = (columns || []).map(column => {
if (typeof column === "string" && column.includes(".")) {
const [join, name] = column.split(".");
return this.createColumn({
name,
join
});
}
return this.createColumn(column);
});
return new Search({
searchType: type,
columns,
filters,
results: (SuiteScriptMocks.searchResults.shift() || []).map(row => {
return new Result({
id: row.id || row.values.internalid,
recordType: row.recordType || type,
columns: columns,
values: row.values || []
});
})
});
});
createColumn = _init_createColumn(this, options => {
return new Column(options);
});
createFilter = _init_createFilter(this, options => {
return new Filter(options);
});
createSetting = _init_createSetting(this, options => {});
delete = _init_delete(this, options => {
if (!SuiteScriptMocks.searches.has({
id: options.id,
searchId: options.id
})) {
throw new Error("search does not exist");
}
SuiteScriptMocks.searches.delete({
id: options.id,
searchId: options.id
});
});
duplicates = options => {};
global = _init_global(this, options => {});
load = _init_load(this, options => {
if (!SuiteScriptMocks.searches.has({
id: options.id,
searchId: options.id
})) {
throw new Error("search does not exist");
}
return SuiteScriptMocks.searches.get({
id: options.id,
searchId: options.id
});
});
lookupFields = _init_lookupFields(this, options => {
return SuiteScriptMocks.lookupFieldsResults.shift();
});
}
module.exports = new SearchModule();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzZWFyY2hTdHViIiwicmVxdWlyZSIsIkNvbHVtbiIsIkZpbHRlciIsIlBhZ2UiLCJQYWdlZERhdGEiLCJQYWdlUmFuZ2UiLCJSZXN1bHQiLCJSZXN1bHRTZXQiLCJTZWFyY2giLCJvcHRpb25zIiwiYWRkUHJvbWlzZSIsIlN1aXRlU2NyaXB0TW9ja3MiLCJyZXF1aXJlZCIsIl9kZWMiLCJfZGVjMiIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiU2VhcmNoTW9kdWxlIiwiX2luaXRfY3JlYXRlIiwiX2luaXRfY3JlYXRlQ29sdW1uIiwiX2luaXRfY3JlYXRlRmlsdGVyIiwiX2luaXRfY3JlYXRlU2V0dGluZyIsIl9pbml0X2RlbGV0ZSIsIl9pbml0X2dsb2JhbCIsIl9pbml0X2xvYWQiLCJfaW5pdF9sb29rdXBGaWVsZHMiLCJfYXBwbHlEZWNzMjIwM1IiLCJlIiwiT3BlcmF0b3IiLCJTb3J0IiwiU3VtbWFyeSIsIlR5cGUiLCJjcmVhdGUiLCJ0eXBlIiwiY29sdW1ucyIsImZpbHRlcnMiLCJtYXAiLCJjb2x1bW4iLCJpbmNsdWRlcyIsImpvaW4iLCJuYW1lIiwic3BsaXQiLCJjcmVhdGVDb2x1bW4iLCJzZWFyY2hUeXBlIiwicmVzdWx0cyIsInNlYXJjaFJlc3VsdHMiLCJzaGlmdCIsInJvdyIsImlkIiwidmFsdWVzIiwiaW50ZXJuYWxpZCIsInJlY29yZFR5cGUiLCJjcmVhdGVGaWx0ZXIiLCJjcmVhdGVTZXR0aW5nIiwiZGVsZXRlIiwic2VhcmNoZXMiLCJoYXMiLCJzZWFyY2hJZCIsIkVycm9yIiwiZHVwbGljYXRlcyIsImdsb2JhbCIsImxvYWQiLCJnZXQiLCJsb29rdXBGaWVsZHMiLCJsb29rdXBGaWVsZHNSZXN1bHRzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2Nrcy9zZWFyY2gvaW5kZXguY2pzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHNlYXJjaFN0dWIgPSByZXF1aXJlKFwic3VpdGVjbG91ZC11bml0LXRlc3Rpbmctc3R1YnMvc3R1YnMvc2VhcmNoXCIpO1xuY29uc3QgQ29sdW1uID0gcmVxdWlyZShcIi4vQ29sdW1uLmNqc1wiKTtcbmNvbnN0IEZpbHRlciA9IHJlcXVpcmUoXCIuL0ZpbHRlci5janNcIik7XG5jb25zdCBQYWdlID0gcmVxdWlyZShcIi4vUGFnZS5janNcIik7XG5jb25zdCBQYWdlZERhdGEgPSByZXF1aXJlKFwiLi9QYWdlZERhdGEuY2pzXCIpO1xuY29uc3QgUGFnZVJhbmdlID0gcmVxdWlyZShcIi4vUGFnZVJhbmdlLmNqc1wiKTtcbmNvbnN0IFJlc3VsdCA9IHJlcXVpcmUoXCIuL1Jlc3VsdC5janNcIik7XG5jb25zdCBSZXN1bHRTZXQgPSByZXF1aXJlKFwiLi9SZXN1bHRTZXQuY2pzXCIpO1xuY29uc3QgU2VhcmNoID0gcmVxdWlyZShcIi4vU2VhcmNoLmNqc1wiKTtcbmNvbnN0IHsgb3B0aW9ucywgYWRkUHJvbWlzZSB9ID0gcmVxdWlyZShcIi4uLy4uL2hlbHBlcnMuY2pzXCIpO1xuY29uc3QgU3VpdGVTY3JpcHRNb2NrcyA9IHJlcXVpcmUoXCIuLi8uLi8uLi9pbmRleC5janNcIik7XG5jb25zdCB7IHJlcXVpcmVkIH0gPSByZXF1aXJlKFwiLi4vLi4vaGVscGVycy5janNcIik7XG5cbmNsYXNzIFNlYXJjaE1vZHVsZSB7XG5cdE9wZXJhdG9yID0gc2VhcmNoU3R1Yi5PcGVyYXRvcjtcblx0U29ydCA9IHNlYXJjaFN0dWIuU29ydDtcblx0U3VtbWFyeSA9IHNlYXJjaFN0dWIuU3VtbWFyeTtcblx0VHlwZSA9IHNlYXJjaFN0dWIuVHlwZTtcblxuXHRDb2x1bW4gPSBDb2x1bW47XG5cdEZpbHRlciA9IEZpbHRlcjtcblx0UGFnZSA9IFBhZ2U7XG5cdFBhZ2VkRGF0YSA9IFBhZ2VkRGF0YTtcblx0UGFnZVJhbmdlID0gUGFnZVJhbmdlO1xuXHRSZXN1bHQgPSBSZXN1bHQ7XG5cdFJlc3VsdFNldCA9IFJlc3VsdFNldDtcblx0U2VhcmNoID0gU2VhcmNoO1xuXG5cdEBhZGRQcm9taXNlKClcblx0QHJlcXVpcmVkKFwidHlwZVwiKVxuXHRjcmVhdGUgPSAoeyB0eXBlLCBjb2x1bW5zLCBmaWx0ZXJzIH0pID0+IHtcblx0XHRjb2x1bW5zID0gKGNvbHVtbnMgfHwgW10pLm1hcCgoY29sdW1uKSA9PiB7XG5cdFx0XHRpZiAodHlwZW9mIGNvbHVtbiA9PT0gXCJzdHJpbmdcIiAmJiBjb2x1bW4uaW5jbHVkZXMoXCIuXCIpKSB7XG5cdFx0XHRcdGNvbnN0IFtqb2luLCBuYW1lXSA9IGNvbHVtbi5zcGxpdChcIi5cIik7XG5cdFx0XHRcdHJldHVybiB0aGlzLmNyZWF0ZUNvbHVtbih7IG5hbWUsIGpvaW4gfSk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGhpcy5jcmVhdGVDb2x1bW4oY29sdW1uKTtcblx0XHR9KTtcblx0XHRyZXR1cm4gbmV3IFNlYXJjaCh7XG5cdFx0XHRzZWFyY2hUeXBlOiB0eXBlLFxuXHRcdFx0Y29sdW1ucyxcblx0XHRcdGZpbHRlcnMsXG5cdFx0XHRyZXN1bHRzOiAoU3VpdGVTY3JpcHRNb2Nrcy5zZWFyY2hSZXN1bHRzLnNoaWZ0KCkgfHwgW10pLm1hcCgocm93KSA9PiB7XG5cdFx0XHRcdHJldHVybiBuZXcgUmVzdWx0KHtcblx0XHRcdFx0XHRpZDogcm93LmlkIHx8IHJvdy52YWx1ZXMuaW50ZXJuYWxpZCxcblx0XHRcdFx0XHRyZWNvcmRUeXBlOiByb3cucmVjb3JkVHlwZSB8fCB0eXBlLFxuXHRcdFx0XHRcdGNvbHVtbnM6IGNvbHVtbnMsXG5cdFx0XHRcdFx0dmFsdWVzOiByb3cudmFsdWVzIHx8IFtdLFxuXHRcdFx0XHR9KTtcblx0XHRcdH0pLFxuXHRcdH0pO1xuXHR9O1xuXG5cdEBvcHRpb25zKFwibmFtZVwiLCBcImpvaW5cIiwgXCJzdW1tYXJ5XCIsIFwiZm9ybXVsYVwiLCBcImZ1bmN0aW9uXCIsIFwibGFiZWxcIiwgXCJzb3J0XCIpXG5cdGNyZWF0ZUNvbHVtbiA9IChvcHRpb25zKSA9PiB7XG5cdFx0cmV0dXJuIG5ldyBDb2x1bW4ob3B0aW9ucyk7XG5cdH07XG5cblx0QG9wdGlvbnMoXCJuYW1lXCIsIFwiam9pblwiLCBcIm9wZXJhdG9yXCIsIFwidmFsdWVzXCIsIFwiZm9ybXVsYVwiLCBcInN1bW1hcnlcIilcblx0Y3JlYXRlRmlsdGVyID0gKG9wdGlvbnMpID0+IHtcblx0XHRyZXR1cm4gbmV3IEZpbHRlcihvcHRpb25zKTtcblx0fTtcblxuXHRAb3B0aW9ucyhcIm5hbWVcIiwgXCJ2YWx1ZVwiKVxuXHRjcmVhdGVTZXR0aW5nID0gKG9wdGlvbnMpID0+IHt9O1xuXG5cdEBhZGRQcm9taXNlKClcblx0QG9wdGlvbnMoXCJpZFwiLCBcInR5cGVcIilcblx0ZGVsZXRlID0gKG9wdGlvbnMpID0+IHtcblx0XHRpZiAoIVN1aXRlU2NyaXB0TW9ja3Muc2VhcmNoZXMuaGFzKHsgaWQ6IG9wdGlvbnMuaWQsIHNlYXJjaElkOiBvcHRpb25zLmlkIH0pKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJzZWFyY2ggZG9lcyBub3QgZXhpc3RcIik7XG5cdFx0fVxuXHRcdFN1aXRlU2NyaXB0TW9ja3Muc2VhcmNoZXMuZGVsZXRlKHsgaWQ6IG9wdGlvbnMuaWQsIHNlYXJjaElkOiBvcHRpb25zLmlkIH0pO1xuXHR9O1xuXG5cdGR1cGxpY2F0ZXMgPSAob3B0aW9ucykgPT4ge307XG5cblx0QGFkZFByb21pc2UoKVxuXHRnbG9iYWwgPSAob3B0aW9ucykgPT4ge307XG5cblx0QGFkZFByb21pc2UoKVxuXHRsb2FkID0gKG9wdGlvbnMpID0+IHtcblx0XHRpZiAoIVN1aXRlU2NyaXB0TW9ja3Muc2VhcmNoZXMuaGFzKHsgaWQ6IG9wdGlvbnMuaWQsIHNlYXJjaElkOiBvcHRpb25zLmlkIH0pKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJzZWFyY2ggZG9lcyBub3QgZXhpc3RcIik7XG5cdFx0fVxuXHRcdHJldHVybiBTdWl0ZVNjcmlwdE1vY2tzLnNlYXJjaGVzLmdldCh7IGlkOiBvcHRpb25zLmlkLCBzZWFyY2hJZDogb3B0aW9ucy5pZCB9KTtcblx0fTtcblxuXHRAYWRkUHJvbWlzZSgpXG5cdEBvcHRpb25zKFwidHlwZVwiLCBcImlkXCIsIFwiY29sdW1uc1wiKVxuXHRsb29rdXBGaWVsZHMgPSAob3B0aW9ucykgPT4ge1xuXHRcdHJldHVybiBTdWl0ZVNjcmlwdE1vY2tzLmxvb2t1cEZpZWxkc1Jlc3VsdHMuc2hpZnQoKTtcblx0fTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2VhcmNoTW9kdWxlKCk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQU1BLFVBQVUsR0FBR0MsT0FBTyxDQUFDLDRDQUE0QyxDQUFDO0FBQ3hFLE1BQU1DLE1BQU0sR0FBR0QsT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUN0QyxNQUFNRSxNQUFNLEdBQUdGLE9BQU8sQ0FBQyxjQUFjLENBQUM7QUFDdEMsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ2xDLE1BQU1JLFNBQVMsR0FBR0osT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQzVDLE1BQU1LLFNBQVMsR0FBR0wsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQzVDLE1BQU1NLE1BQU0sR0FBR04sT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUN0QyxNQUFNTyxTQUFTLEdBQUdQLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUM1QyxNQUFNUSxNQUFNLEdBQUdSLE9BQU8sQ0FBQyxjQUFjLENBQUM7QUFDdEMsTUFBTTtFQUFFUyxPQUFPO0VBQUVDO0FBQVcsQ0FBQyxHQUFHVixPQUFPLENBQUMsbUJBQW1CLENBQUM7QUFDNUQsTUFBTVcsZ0JBQWdCLEdBQUdYLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztBQUN0RCxNQUFNO0VBQUVZO0FBQVMsQ0FBQyxHQUFHWixPQUFPLENBQUMsbUJBQW1CLENBQUM7QUFBQ2EsSUFBQSxHQWlCaERILFVBQVUsQ0FBQyxDQUFDO0FBQUFJLEtBQUEsR0FDWkYsUUFB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