@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 a built-in .length attribute that could shadow Array.length of the wrapped object
84
- && !(target.name === '__serenityProxy' && key === 'length');
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":";;;AAAA,yCAA0C;AAC1C,kDAA+C;AAE/C,gDAA6C;AAC7C,0CAAuC;AAGvC,SAAgB,aAAa,CAAyC,QAAW;IAE7E,OAAO,IAAI,KAAK,CAAI,QAAQ,EAAE;QAE1B,GAAG,CAAC,MAAS,EAAE,GAA6B,EAAE,QAAa;YACvD,IAAI,GAAG,KAAK,MAAM,CAAC,WAAW,EAAE;gBAC5B,OAAO,CAAC,KAAsC,EAAE,EAAE;oBAC9C,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC7B,CAAC,CAAA;aACJ;YAED,IAAI,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;gBAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;aAC7C;YAED,IAAI,CAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,gBAAgB;gBACtC,OAAO;aACV;YAED,MAAM,gBAAgB,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3E,CAAC,CAAC,IAAK,MAAM,CAAC,GAAG,CAAE,GAAG,CAAE,cAAc;gBACtC,CAAC,CAAC,IAAK,MAAM,CAAC,GAAG,CAAE,EAAE,CAAC,CAAE,oBAAoB;YAEhD,uCAAuC;YACvC,SAAS,eAAe,CAAC,GAAG,kBAAkB;gBAE1C,MAAM,qBAAqB,GAAG;oBAC1B,GAAG;oBACH,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,qBAAS,EAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC3F,GAAG;iBACN,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEX,MAAM,eAAe,GAAG,IAAA,qBAAS,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEnF,OAAO,aAAa,CAAC,IAAI,WAAW,CAAC,eAAe,GAAG,gBAAgB,GAAG,qBAAqB,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;oBAC3G,8BAA8B;oBAC9B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAE1C,IAAI,MAAM,KAAK,SAAS,EAAE;wBACtB,MAAM,IAAI,mBAAU,CAAC,GAAI,IAAA,qBAAS,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAE,uCAAwC,MAAM,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC;qBAC9I;oBAED,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;wBACnC,MAAM,IAAI,mBAAU,CAAC,GAAI,IAAA,qBAAS,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAE,mCAAoC,MAAM,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC;qBAC1I;oBAED,6CAA6C;oBAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CACjC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;wBAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;oBAClC,CAAC,CAAC,CACL,CAAC,CAAC;oBAEH,gDAAgD;oBAChD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAA;gBACrC,CAAC,CAAC,CAAC,CAAC;YACR,CAAC;YAED,MAAM,eAAe,GAAG,IAAA,qBAAS,EAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnF,eAAe,CAAC,OAAO,GAAG,eAAe,GAAG,gBAAgB,CAAA;YAE5D,uCAAuC;YACvC,MAAM,IAAI,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAE1C,IAAI,MAAM,KAAK,SAAS,EAAE;oBACtB,MAAM,IAAI,mBAAU,CAAC,GAAI,MAAO,uCAAwC,MAAM,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC;iBAC5F;gBAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC,CAAC;YAEF,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC;YAClC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC;YAEjC,eAAe,CAAC,QAAQ,GAAG,GAAG,EAAE;gBAC5B,OAAO,eAAe,CAAC,OAAO,CAAC;YACnC,CAAC,CAAC;YAEF,eAAe,CAAC,WAAW,GAAG,CAAC,UAAkB,EAAE,EAAE;gBACjD,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC;gBAErC,OAAO,eAAe,CAAC;YAC3B,CAAC,CAAA;YAED,eAAe,CAAC,EAAE,GAAG,CAAI,OAAkC,EAAwB,EAAE;gBACjF,OAAO,mBAAQ,CAAC,KAAK,CAAa,GAAI,eAAe,CAAC,OAAQ,OAAQ,IAAA,qBAAS,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAE,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;oBACzH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;oBAClD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC3B,CAAC,CAAC,CAAC;YACP,CAAC,CAAA;YAED,OAAO,aAAa,CAAC,eAAsB,CAAC,CAAC;QACjD,CAAC;KACJ,CAA4B,CAAA;AACjC,CAAC;AAhGD,sCAgGC;AAED,SAAS,aAAa,CAAyC,MAA6B,EAAE,GAA6B;IAEvH,MAAM,SAAS,GAAoC,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE7F,0BAA0B;IAC1B,OAAO,GAAG,IAAI,MAAM;QAChB,0JAA0J;WACvJ,CAAC,CAAE,MAAc,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AACrF,CAAC;AAED,SAAS,WAAW,CAAC,GAA6B;IAC9C,MAAM,UAAU,GAAoC;QAChD,MAAM,EAAE,uBAAuB;KAClC,CAAC;IAEF,OAAO,CAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC;AAED,MAAM,WAAe,SAAQ,yBAAW;IACpC,YAAsB,OAAe,EAAU,IAAoD;QAC/F,KAAK,EAAE,CAAC;QADU,YAAO,GAAP,OAAO,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAgD;IAEnG,CAAC;IAED,UAAU,CAAC,KAAuC;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAuC;QACnD,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,EAAE,CAAI,OAA+C;QACjD,OAAO,aAAa,CAAC,IAAI,WAAW,CAAC,GAAI,IAAI,CAAC,OAAQ,OAAQ,IAAA,qBAAS,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAE,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,EAAE;YACjH,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAe,CAAC;YACxD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAyB,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serenity-js/core",
3
- "version": "3.0.0-rc.4",
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": "126a1cad42bcb1416ca68e62f54bf0d3eb3ea157"
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 a built-in .length attribute that could shadow Array.length of the wrapped object
110
- && !((target as any).name === '__serenityProxy' && key === 'length')
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) {