123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- "use strict";
- var h = Object.defineProperty;
- var O = Object.getOwnPropertyDescriptor;
- var P = Object.getOwnPropertyNames;
- var K = Object.prototype.hasOwnProperty;
- var b = (t, e) => {
- for (var n in e)
- h(t, n, { get: e[n], enumerable: !0 });
- }, M = (t, e, n, s) => {
- if (e && typeof e == "object" || typeof e == "function")
- for (let r of P(e))
- !K.call(t, r) && r !== n && h(t, r, { get: () => e[r], enumerable: !(s = O(e, r)) || s.enumerable });
- return t;
- };
- var F = (t) => M(h({}, "__esModule", { value: !0 }), t);
- // src/index.ts
- var E = {};
- b(E, {
- restoreAll: () => C,
- spies: () => g,
- spy: () => A,
- spyOn: () => I
- });
- module.exports = F(E);
- // src/utils.ts
- function d(t, e) {
- if (!t)
- throw new Error(e);
- }
- function y(t, e) {
- return typeof e === t;
- }
- function S(t) {
- return t instanceof Promise;
- }
- function f(t, e, n) {
- Object.defineProperty(t, e, n);
- }
- // src/spy.ts
- var g = /* @__PURE__ */ new Set();
- function A(t) {
- d(y("function", t) || y("undefined", t), "cannot spy on a non-function value");
- let e = function(...s) {
- if (e.called = !0, e.callCount++, e.calls.push(s), e.next) {
- let [i, l] = e.next;
- if (e.results.push(e.next), e.next = null, i === "ok")
- return l;
- throw l;
- }
- let r, o = "ok";
- if (e.impl)
- try {
- r = e.impl.apply(this, s), o = "ok";
- } catch (i) {
- throw r = i, o = "error", e.results.push([o, i]), i;
- }
- let c = [o, r];
- if (S(r)) {
- let i = r.then((l) => c[1] = l).catch((l) => {
- throw c[0] = "error", c[1] = l, l;
- });
- Object.assign(i, r), r = i;
- }
- return e.results.push(c), r;
- };
- f(e, "_isMockFunction", { get: () => !0 }), f(e, "length", { value: t ? t.length : 0 }), f(e, "returns", {
- get() {
- return this.results.map(([, s]) => s);
- }
- }), f(e, "name", { value: t && t.name || "spy" });
- let n = () => {
- e.called = !1, e.callCount = 0, e.results = [], e.calls = [];
- };
- return n(), e.impl = t, e.reset = n, e.nextError = (s) => (e.next = ["error", s], e), e.nextResult = (s) => (e.next = ["ok", s], e), e;
- }
- // src/spyOn.ts
- var v = (t, e) => Object.getOwnPropertyDescriptor(t, e);
- function I(t, e, n) {
- d(!y("undefined", t), "spyOn could not find an object to spy upon"), d(y("object", t) || y("function", t), "cannot spyOn on a primitive value");
- let s = () => {
- if (typeof e != "object")
- return [e, "value"];
- if ("getter" in e && "setter" in e)
- throw new Error("cannot spy on both getter and setter");
- if ("getter" in e)
- return [e.getter, "get"];
- if ("setter" in e)
- return [e.setter, "set"];
- throw new Error("specify getter or setter to spy on");
- }, [r, o] = s(), c = v(t, r), i = Object.getPrototypeOf(t), l = i && v(i, r), a = c || l;
- d(a || r in t, `${String(r)} does not exist`);
- let R = !1;
- o === "value" && a && !a.value && a.get && (o = "get", R = !0, n = a.get());
- let u;
- a ? u = a[o] : o !== "value" ? u = () => t[r] : u = t[r], n || (n = u);
- let p = A(n), w = (T) => {
- let { value: G, ...m } = a || {
- configurable: !0,
- writable: !0
- };
- o !== "value" && delete m.writable, m[o] = T, f(t, r, m);
- }, k = () => w(u);
- return p.restore = k, p.getOriginal = () => R ? u() : u, p.willCall = (T) => (p.impl = T, p), w(R ? () => p : p), g.add(p), p;
- }
- // src/restoreAll.ts
- function C() {
- for (let t of g)
- t.restore();
- g.clear();
- }
- // Annotate the CommonJS export names for ESM import in node:
- 0 && (module.exports = {
- restoreAll,
- spies,
- spy,
- spyOn
- });
|