@pokujs/dom 1.1.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/testing-core.d.ts +10 -0
- package/dist/testing-core.js +38 -5
- package/dist/testing-core.js.map +1 -1
- package/package.json +1 -1
package/dist/testing-core.d.ts
CHANGED
|
@@ -12,3 +12,13 @@ export declare const createRenderMetricsEmitter: (options: RenderMetricsEmitterO
|
|
|
12
12
|
clearMetricFlushTimer: () => void;
|
|
13
13
|
};
|
|
14
14
|
export declare const createScreen: () => Screen;
|
|
15
|
+
/**
|
|
16
|
+
* Copies all properties of `base` onto `target`, wrapping every function value
|
|
17
|
+
* with `wrapFn` so frameworks can inject their own flush/sync step (React `act`,
|
|
18
|
+
* Vue `nextTick`, etc.) without duplicating the iteration boilerplate.
|
|
19
|
+
*
|
|
20
|
+
* @param target The object to receive the wrapped methods (typically the new fireEvent function).
|
|
21
|
+
* @param base The original object whose methods should be wrapped.
|
|
22
|
+
* @param wrapFn Receives a zero-argument invoker; its return value is the new return value.
|
|
23
|
+
*/
|
|
24
|
+
export declare const wrapFireEventMethods: (target: Record<string, unknown>, base: Record<string, unknown>, wrapFn: (invoke: () => unknown) => unknown) => void;
|
package/dist/testing-core.js
CHANGED
|
@@ -101,14 +101,47 @@ export const createRenderMetricsEmitter = (options) => {
|
|
|
101
101
|
};
|
|
102
102
|
};
|
|
103
103
|
export const createScreen = () => {
|
|
104
|
+
// Cache the bound query object per document.body reference.
|
|
105
|
+
// getQueriesForElement() is not free — it traverses all bound queries.
|
|
106
|
+
// The Proxy previously called it on every single property access; caching
|
|
107
|
+
// by body reference avoids redundant work while still picking up a new body
|
|
108
|
+
// when JSDOM reinitialises it (e.g. between test files under isolation:none).
|
|
109
|
+
let cachedBody = null;
|
|
110
|
+
let cachedQueries = null;
|
|
111
|
+
const getQueries = () => {
|
|
112
|
+
const body = document.body;
|
|
113
|
+
if (body !== cachedBody) {
|
|
114
|
+
cachedBody = body;
|
|
115
|
+
cachedQueries = getQueriesForElement(body);
|
|
116
|
+
}
|
|
117
|
+
return cachedQueries;
|
|
118
|
+
};
|
|
104
119
|
return new Proxy({}, {
|
|
105
120
|
get(_target, prop) {
|
|
106
|
-
const
|
|
107
|
-
const value = Reflect.get(
|
|
108
|
-
return typeof value === 'function'
|
|
109
|
-
? value.bind(baseScreenQueries)
|
|
110
|
-
: value;
|
|
121
|
+
const boundQueries = getQueries();
|
|
122
|
+
const value = Reflect.get(boundQueries, prop, boundQueries);
|
|
123
|
+
return typeof value === 'function' ? value.bind(boundQueries) : value;
|
|
111
124
|
},
|
|
112
125
|
});
|
|
113
126
|
};
|
|
127
|
+
/**
|
|
128
|
+
* Copies all properties of `base` onto `target`, wrapping every function value
|
|
129
|
+
* with `wrapFn` so frameworks can inject their own flush/sync step (React `act`,
|
|
130
|
+
* Vue `nextTick`, etc.) without duplicating the iteration boilerplate.
|
|
131
|
+
*
|
|
132
|
+
* @param target The object to receive the wrapped methods (typically the new fireEvent function).
|
|
133
|
+
* @param base The original object whose methods should be wrapped.
|
|
134
|
+
* @param wrapFn Receives a zero-argument invoker; its return value is the new return value.
|
|
135
|
+
*/
|
|
136
|
+
export const wrapFireEventMethods = (target, base, wrapFn) => {
|
|
137
|
+
for (const key of Object.keys(base)) {
|
|
138
|
+
const value = base[key];
|
|
139
|
+
if (typeof value !== 'function') {
|
|
140
|
+
target[key] = value;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
target[key] = (...args) => wrapFn(() => Reflect.apply(value, base, args));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
114
147
|
//# sourceMappingURL=testing-core.js.map
|
package/dist/testing-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing-core.js","sourceRoot":"","sources":["../src/testing-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,CAAC,MAAM,MAAM,GACjB,OAAO,WAAW,KAAK,WAAW,IAAI,OAAO,WAAW,CAAC,GAAG,KAAK,UAAU;IACzE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IACnC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAwB1B,MAAM,sBAAsB,GAAG,CAC7B,QAAgB,EACK,EAAE;IACvB,MAAM,WAAW,GAAG,UAAgC,CAAC;IAErD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,WAAW,CAAC,QAAQ,CAAC,GAAG;YACtB,YAAY,EAAE,EAAE;YAChB,gBAAgB,EAAE,SAAS;YAC3B,oBAAoB,EAAE,KAAK;YAC3B,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC,QAAQ,CAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,OAAoC,EACpC,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC;IAC7E,MAAM,YAAY,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAE7D,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,IAAI,CAAC,YAAY,CAAC,gBAAgB;YAAE,OAAO;QAC3C,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC5C,YAAY,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,cAAc,CAAC,cAAc,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAChC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACzC,OAAO;QACT,CAAC;QAED,IACE,YAAY,CAAC,oBAAoB;YACjC,YAAY,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EACtC,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAC9C,CAAC,EACD,YAAY,CAAC,YAAY,CAAC,MAAM,CACjC,CAAC;QAEF,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACzC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,IAAI,YAAY,CAAC,gBAAgB;YAAE,OAAO;QAE1C,YAAY,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9C,YAAY,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAC1C,iBAAiB,EAAE,CAAC;QACtB,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;QAEjC,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1C,CAAC,CAAC;IAEF,IAAI,cAAc,CAAC,cAAc,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACvE,YAAY,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAExC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC5B,qBAAqB,EAAE,CAAC;YACxB,iBAAiB,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC5B,qBAAqB,EAAE,CAAC;YACxB,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,GAAG,CAAC,aAAqB,EAAE,UAAkB,EAAE,EAAE;QACrE,IACE,CAAC,cAAc,CAAC,cAAc;YAC9B,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAClC,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,IAAI,YAAY,CAAC,oBAAoB,EAAE,CAAC;YACrE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACzC,qBAAqB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAChB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,IAAI,YAAY,GAAG,cAAc,CAAC,WAAW;YAAE,OAAO;QAEtD,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC;YAC7B,aAAa;YACb,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;YACvE,qBAAqB,EAAE,CAAC;YACxB,iBAAiB,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,mBAAmB,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO;QACL,gBAAgB;QAChB,iBAAiB;QACjB,qBAAqB;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAW,EAAE;IACvC,
|
|
1
|
+
{"version":3,"file":"testing-core.js","sourceRoot":"","sources":["../src/testing-core.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,CAAC,MAAM,MAAM,GACjB,OAAO,WAAW,KAAK,WAAW,IAAI,OAAO,WAAW,CAAC,GAAG,KAAK,UAAU;IACzE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IACnC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAwB1B,MAAM,sBAAsB,GAAG,CAC7B,QAAgB,EACK,EAAE;IACvB,MAAM,WAAW,GAAG,UAAgC,CAAC;IAErD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,WAAW,CAAC,QAAQ,CAAC,GAAG;YACtB,YAAY,EAAE,EAAE;YAChB,gBAAgB,EAAE,SAAS;YAC3B,oBAAoB,EAAE,KAAK;YAC3B,mBAAmB,EAAE,KAAK;SAC3B,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC,QAAQ,CAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,OAAoC,EACpC,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC;IAC7E,MAAM,YAAY,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAE7D,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,IAAI,CAAC,YAAY,CAAC,gBAAgB;YAAE,OAAO;QAC3C,YAAY,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC5C,YAAY,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAC5C,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,cAAc,CAAC,cAAc,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YAChC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACzC,OAAO;QACT,CAAC;QAED,IACE,YAAY,CAAC,oBAAoB;YACjC,YAAY,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EACtC,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,CAC9C,CAAC,EACD,YAAY,CAAC,YAAY,CAAC,MAAM,CACjC,CAAC;QAEF,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACzC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,IAAI,YAAY,CAAC,gBAAgB;YAAE,OAAO;QAE1C,YAAY,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9C,YAAY,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAC1C,iBAAiB,EAAE,CAAC;QACtB,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;QAEjC,YAAY,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1C,CAAC,CAAC;IAEF,IAAI,cAAc,CAAC,cAAc,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACvE,YAAY,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAExC,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC5B,qBAAqB,EAAE,CAAC;YACxB,iBAAiB,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC5B,qBAAqB,EAAE,CAAC;YACxB,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,GAAG,CAAC,aAAqB,EAAE,UAAkB,EAAE,EAAE;QACrE,IACE,CAAC,cAAc,CAAC,cAAc;YAC9B,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAClC,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,IAAI,YAAY,CAAC,oBAAoB,EAAE,CAAC;YACrE,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACzC,qBAAqB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAChB,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,IAAI,YAAY,GAAG,cAAc,CAAC,WAAW;YAAE,OAAO;QAEtD,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC;YAC7B,aAAa;YACb,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,IAAI,cAAc,CAAC,eAAe,EAAE,CAAC;YACvE,qBAAqB,EAAE,CAAC;YACxB,iBAAiB,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,mBAAmB,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO;QACL,gBAAgB;QAChB,iBAAiB;QACjB,qBAAqB;KACtB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAW,EAAE;IACvC,4DAA4D;IAC5D,uEAAuE;IACvE,0EAA0E;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,IAAI,UAAU,GAAuB,IAAI,CAAC;IAC1C,IAAI,aAAa,GAAmD,IAAI,CAAC;IAEzE,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,UAAU,GAAG,IAAI,CAAC;YAClB,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,aAAc,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,EAAY,EAAE;QAC7B,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAC5D,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACxE,CAAC;KACF,CAAW,CAAC;AACf,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAA+B,EAC/B,IAA6B,EAC7B,MAA0C,EACpC,EAAE;IACR,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CACnC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
|