@serenity-js/core 3.0.0-rc.4 → 3.0.0-rc.5
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/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.0.0-rc.5](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.4...v3.0.0-rc.5) (2022-01-07)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **core:** screenplay Adapters will now correctly proxy calls to function-specific object keys ([ad6f1e6](https://github.com/serenity-js/serenity-js/commit/ad6f1e655ca77d6efde4461854e54c4113ca8fdd))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [3.0.0-rc.4](https://github.com/serenity-js/serenity-js/compare/v3.0.0-rc.3...v3.0.0-rc.4) (2021-12-30)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -78,10 +78,11 @@ function createAdapter(question) {
|
|
|
78
78
|
}
|
|
79
79
|
exports.createAdapter = createAdapter;
|
|
80
80
|
function shouldReflect(target, key) {
|
|
81
|
+
const proxyKeys = ['arguments', 'caller', 'length', 'name'];
|
|
81
82
|
// return the actual value
|
|
82
83
|
return key in target
|
|
83
|
-
// unless target is a proxy function, because proxy function has
|
|
84
|
-
&& !(target.name === '__serenityProxy' && key
|
|
84
|
+
// unless target is a proxy function, because proxy function has built-in .length and .name attribute that could shadow Array.length of the wrapped object
|
|
85
|
+
&& !(target.name === '__serenityProxy' && (proxyKeys.includes(key)));
|
|
85
86
|
}
|
|
86
87
|
function shouldProxy(key) {
|
|
87
88
|
const prohibited = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAdapter.js","sourceRoot":"","sources":["../../../src/screenplay/model/createAdapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createAdapter.js","sourceRoot":"","sources":["../../../src/screenplay/model/createAdapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serenity-js/core",
|
|
3
|
-
"version": "3.0.0-rc.
|
|
3
|
+
"version": "3.0.0-rc.5",
|
|
4
4
|
"description": "Serenity/JS Screenplay, reporting engine and core interfaces.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jan Molak",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"cache": true,
|
|
93
93
|
"all": true
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "b63bb1465731d922fde0ade3b77ddebb96dbf990"
|
|
96
96
|
}
|
|
@@ -104,10 +104,13 @@ export function createAdapter<A, Q extends Question<A> = Question<A>>(question:
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
function shouldReflect<A, Q extends Question<A> = Question<A>>(target: Q & { name?: string }, key: string | symbol | number): boolean {
|
|
107
|
+
|
|
108
|
+
const proxyKeys: Array<string | symbol | number> = ['arguments', 'caller', 'length', 'name'];
|
|
109
|
+
|
|
107
110
|
// return the actual value
|
|
108
111
|
return key in target
|
|
109
|
-
// unless target is a proxy function, because proxy function has
|
|
110
|
-
&& !((target as any).name === '__serenityProxy' && key
|
|
112
|
+
// unless target is a proxy function, because proxy function has built-in .length and .name attribute that could shadow Array.length of the wrapped object
|
|
113
|
+
&& !((target as any).name === '__serenityProxy' && (proxyKeys.includes(key)))
|
|
111
114
|
}
|
|
112
115
|
|
|
113
116
|
function shouldProxy(key: string | symbol | number) {
|